├── .gitignore ├── LICENSE ├── README.md ├── components ├── Chat │ ├── Chat.tsx │ └── index.tsx ├── Head │ ├── Head.tsx │ └── index.tsx └── Main │ ├── Main.tsx │ └── index.tsx ├── libs └── openai.ts ├── next-env.d.ts ├── next.config.js ├── package.json ├── pages ├── _app.tsx ├── _document.tsx └── index.tsx ├── pnpm-lock.yaml ├── postcss.config.js ├── public └── favicon.ico ├── reactflow.options.ts ├── styles └── globals.css ├── tailwind.config.js ├── tsconfig.json ├── type.d.ts ├── types.d.ts └── utils.ts /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # next.js 12 | /.next/ 13 | /out/ 14 | 15 | # production 16 | /build 17 | 18 | # misc 19 | .DS_Store 20 | *.pem 21 | 22 | # debug 23 | npm-debug.log* 24 | yarn-debug.log* 25 | yarn-error.log* 26 | .pnpm-debug.log* 27 | 28 | # local env files 29 | .env*.local 30 | 31 | # vercel 32 | .vercel 33 | 34 | # typescript 35 | *.tsbuildinfo 36 | next-env.d.ts 37 | .env 38 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 3, 29 June 2007 3 | 4 | Copyright (C) 2007 Free Software Foundation, Inc. 5 | Everyone is permitted to copy and distribute verbatim copies 6 | of this license document, but changing it is not allowed. 7 | 8 | Preamble 9 | 10 | The GNU General Public License is a free, copyleft license for 11 | software and other kinds of works. 12 | 13 | The licenses for most software and other practical works are designed 14 | to take away your freedom to share and change the works. By contrast, 15 | the GNU General Public License is intended to guarantee your freedom to 16 | share and change all versions of a program--to make sure it remains free 17 | software for all its users. We, the Free Software Foundation, use the 18 | GNU General Public License for most of our software; it applies also to 19 | any other work released this way by its authors. You can apply it to 20 | your programs, too. 21 | 22 | When we speak of free software, we are referring to freedom, not 23 | price. Our General Public Licenses are designed to make sure that you 24 | have the freedom to distribute copies of free software (and charge for 25 | them if you wish), that you receive source code or can get it if you 26 | want it, that you can change the software or use pieces of it in new 27 | free programs, and that you know you can do these things. 28 | 29 | To protect your rights, we need to prevent others from denying you 30 | these rights or asking you to surrender the rights. Therefore, you have 31 | certain responsibilities if you distribute copies of the software, or if 32 | you modify it: responsibilities to respect the freedom of others. 33 | 34 | For example, if you distribute copies of such a program, whether 35 | gratis or for a fee, you must pass on to the recipients the same 36 | freedoms that you received. You must make sure that they, too, receive 37 | or can get the source code. And you must show them these terms so they 38 | know their rights. 39 | 40 | Developers that use the GNU GPL protect your rights with two steps: 41 | (1) assert copyright on the software, and (2) offer you this License 42 | giving you legal permission to copy, distribute and/or modify it. 43 | 44 | For the developers' and authors' protection, the GPL clearly explains 45 | that there is no warranty for this free software. For both users' and 46 | authors' sake, the GPL requires that modified versions be marked as 47 | changed, so that their problems will not be attributed erroneously to 48 | authors of previous versions. 49 | 50 | Some devices are designed to deny users access to install or run 51 | modified versions of the software inside them, although the manufacturer 52 | can do so. This is fundamentally incompatible with the aim of 53 | protecting users' freedom to change the software. The systematic 54 | pattern of such abuse occurs in the area of products for individuals to 55 | use, which is precisely where it is most unacceptable. Therefore, we 56 | have designed this version of the GPL to prohibit the practice for those 57 | products. If such problems arise substantially in other domains, we 58 | stand ready to extend this provision to those domains in future versions 59 | of the GPL, as needed to protect the freedom of users. 60 | 61 | Finally, every program is threatened constantly by software patents. 62 | States should not allow patents to restrict development and use of 63 | software on general-purpose computers, but in those that do, we wish to 64 | avoid the special danger that patents applied to a free program could 65 | make it effectively proprietary. To prevent this, the GPL assures that 66 | patents cannot be used to render the program non-free. 67 | 68 | The precise terms and conditions for copying, distribution and 69 | modification follow. 70 | 71 | TERMS AND CONDITIONS 72 | 73 | 0. Definitions. 74 | 75 | "This License" refers to version 3 of the GNU General Public License. 76 | 77 | "Copyright" also means copyright-like laws that apply to other kinds of 78 | works, such as semiconductor masks. 79 | 80 | "The Program" refers to any copyrightable work licensed under this 81 | License. Each licensee is addressed as "you". "Licensees" and 82 | "recipients" may be individuals or organizations. 83 | 84 | To "modify" a work means to copy from or adapt all or part of the work 85 | in a fashion requiring copyright permission, other than the making of an 86 | exact copy. The resulting work is called a "modified version" of the 87 | earlier work or a work "based on" the earlier work. 88 | 89 | A "covered work" means either the unmodified Program or a work based 90 | on the Program. 91 | 92 | To "propagate" a work means to do anything with it that, without 93 | permission, would make you directly or secondarily liable for 94 | infringement under applicable copyright law, except executing it on a 95 | computer or modifying a private copy. Propagation includes copying, 96 | distribution (with or without modification), making available to the 97 | public, and in some countries other activities as well. 98 | 99 | To "convey" a work means any kind of propagation that enables other 100 | parties to make or receive copies. Mere interaction with a user through 101 | a computer network, with no transfer of a copy, is not conveying. 102 | 103 | An interactive user interface displays "Appropriate Legal Notices" 104 | to the extent that it includes a convenient and prominently visible 105 | feature that (1) displays an appropriate copyright notice, and (2) 106 | tells the user that there is no warranty for the work (except to the 107 | extent that warranties are provided), that licensees may convey the 108 | work under this License, and how to view a copy of this License. If 109 | the interface presents a list of user commands or options, such as a 110 | menu, a prominent item in the list meets this criterion. 111 | 112 | 1. Source Code. 113 | 114 | The "source code" for a work means the preferred form of the work 115 | for making modifications to it. "Object code" means any non-source 116 | form of a work. 117 | 118 | A "Standard Interface" means an interface that either is an official 119 | standard defined by a recognized standards body, or, in the case of 120 | interfaces specified for a particular programming language, one that 121 | is widely used among developers working in that language. 122 | 123 | The "System Libraries" of an executable work include anything, other 124 | than the work as a whole, that (a) is included in the normal form of 125 | packaging a Major Component, but which is not part of that Major 126 | Component, and (b) serves only to enable use of the work with that 127 | Major Component, or to implement a Standard Interface for which an 128 | implementation is available to the public in source code form. A 129 | "Major Component", in this context, means a major essential component 130 | (kernel, window system, and so on) of the specific operating system 131 | (if any) on which the executable work runs, or a compiler used to 132 | produce the work, or an object code interpreter used to run it. 133 | 134 | The "Corresponding Source" for a work in object code form means all 135 | the source code needed to generate, install, and (for an executable 136 | work) run the object code and to modify the work, including scripts to 137 | control those activities. However, it does not include the work's 138 | System Libraries, or general-purpose tools or generally available free 139 | programs which are used unmodified in performing those activities but 140 | which are not part of the work. For example, Corresponding Source 141 | includes interface definition files associated with source files for 142 | the work, and the source code for shared libraries and dynamically 143 | linked subprograms that the work is specifically designed to require, 144 | such as by intimate data communication or control flow between those 145 | subprograms and other parts of the work. 146 | 147 | The Corresponding Source need not include anything that users 148 | can regenerate automatically from other parts of the Corresponding 149 | Source. 150 | 151 | The Corresponding Source for a work in source code form is that 152 | same work. 153 | 154 | 2. Basic Permissions. 155 | 156 | All rights granted under this License are granted for the term of 157 | copyright on the Program, and are irrevocable provided the stated 158 | conditions are met. This License explicitly affirms your unlimited 159 | permission to run the unmodified Program. The output from running a 160 | covered work is covered by this License only if the output, given its 161 | content, constitutes a covered work. This License acknowledges your 162 | rights of fair use or other equivalent, as provided by copyright law. 163 | 164 | You may make, run and propagate covered works that you do not 165 | convey, without conditions so long as your license otherwise remains 166 | in force. You may convey covered works to others for the sole purpose 167 | of having them make modifications exclusively for you, or provide you 168 | with facilities for running those works, provided that you comply with 169 | the terms of this License in conveying all material for which you do 170 | not control copyright. Those thus making or running the covered works 171 | for you must do so exclusively on your behalf, under your direction 172 | and control, on terms that prohibit them from making any copies of 173 | your copyrighted material outside their relationship with you. 174 | 175 | Conveying under any other circumstances is permitted solely under 176 | the conditions stated below. Sublicensing is not allowed; section 10 177 | makes it unnecessary. 178 | 179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law. 180 | 181 | No covered work shall be deemed part of an effective technological 182 | measure under any applicable law fulfilling obligations under article 183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or 184 | similar laws prohibiting or restricting circumvention of such 185 | measures. 186 | 187 | When you convey a covered work, you waive any legal power to forbid 188 | circumvention of technological measures to the extent such circumvention 189 | is effected by exercising rights under this License with respect to 190 | the covered work, and you disclaim any intention to limit operation or 191 | modification of the work as a means of enforcing, against the work's 192 | users, your or third parties' legal rights to forbid circumvention of 193 | technological measures. 194 | 195 | 4. Conveying Verbatim Copies. 196 | 197 | You may convey verbatim copies of the Program's source code as you 198 | receive it, in any medium, provided that you conspicuously and 199 | appropriately publish on each copy an appropriate copyright notice; 200 | keep intact all notices stating that this License and any 201 | non-permissive terms added in accord with section 7 apply to the code; 202 | keep intact all notices of the absence of any warranty; and give all 203 | recipients a copy of this License along with the Program. 204 | 205 | You may charge any price or no price for each copy that you convey, 206 | and you may offer support or warranty protection for a fee. 207 | 208 | 5. Conveying Modified Source Versions. 209 | 210 | You may convey a work based on the Program, or the modifications to 211 | produce it from the Program, in the form of source code under the 212 | terms of section 4, provided that you also meet all of these conditions: 213 | 214 | a) The work must carry prominent notices stating that you modified 215 | it, and giving a relevant date. 216 | 217 | b) The work must carry prominent notices stating that it is 218 | released under this License and any conditions added under section 219 | 7. This requirement modifies the requirement in section 4 to 220 | "keep intact all notices". 221 | 222 | c) You must license the entire work, as a whole, under this 223 | License to anyone who comes into possession of a copy. This 224 | License will therefore apply, along with any applicable section 7 225 | additional terms, to the whole of the work, and all its parts, 226 | regardless of how they are packaged. This License gives no 227 | permission to license the work in any other way, but it does not 228 | invalidate such permission if you have separately received it. 229 | 230 | d) If the work has interactive user interfaces, each must display 231 | Appropriate Legal Notices; however, if the Program has interactive 232 | interfaces that do not display Appropriate Legal Notices, your 233 | work need not make them do so. 234 | 235 | A compilation of a covered work with other separate and independent 236 | works, which are not by their nature extensions of the covered work, 237 | and which are not combined with it such as to form a larger program, 238 | in or on a volume of a storage or distribution medium, is called an 239 | "aggregate" if the compilation and its resulting copyright are not 240 | used to limit the access or legal rights of the compilation's users 241 | beyond what the individual works permit. Inclusion of a covered work 242 | in an aggregate does not cause this License to apply to the other 243 | parts of the aggregate. 244 | 245 | 6. Conveying Non-Source Forms. 246 | 247 | You may convey a covered work in object code form under the terms 248 | of sections 4 and 5, provided that you also convey the 249 | machine-readable Corresponding Source under the terms of this License, 250 | in one of these ways: 251 | 252 | a) Convey the object code in, or embodied in, a physical product 253 | (including a physical distribution medium), accompanied by the 254 | Corresponding Source fixed on a durable physical medium 255 | customarily used for software interchange. 256 | 257 | b) Convey the object code in, or embodied in, a physical product 258 | (including a physical distribution medium), accompanied by a 259 | written offer, valid for at least three years and valid for as 260 | long as you offer spare parts or customer support for that product 261 | model, to give anyone who possesses the object code either (1) a 262 | copy of the Corresponding Source for all the software in the 263 | product that is covered by this License, on a durable physical 264 | medium customarily used for software interchange, for a price no 265 | more than your reasonable cost of physically performing this 266 | conveying of source, or (2) access to copy the 267 | Corresponding Source from a network server at no charge. 268 | 269 | c) Convey individual copies of the object code with a copy of the 270 | written offer to provide the Corresponding Source. This 271 | alternative is allowed only occasionally and noncommercially, and 272 | only if you received the object code with such an offer, in accord 273 | with subsection 6b. 274 | 275 | d) Convey the object code by offering access from a designated 276 | place (gratis or for a charge), and offer equivalent access to the 277 | Corresponding Source in the same way through the same place at no 278 | further charge. You need not require recipients to copy the 279 | Corresponding Source along with the object code. If the place to 280 | copy the object code is a network server, the Corresponding Source 281 | may be on a different server (operated by you or a third party) 282 | that supports equivalent copying facilities, provided you maintain 283 | clear directions next to the object code saying where to find the 284 | Corresponding Source. Regardless of what server hosts the 285 | Corresponding Source, you remain obligated to ensure that it is 286 | available for as long as needed to satisfy these requirements. 287 | 288 | e) Convey the object code using peer-to-peer transmission, provided 289 | you inform other peers where the object code and Corresponding 290 | Source of the work are being offered to the general public at no 291 | charge under subsection 6d. 292 | 293 | A separable portion of the object code, whose source code is excluded 294 | from the Corresponding Source as a System Library, need not be 295 | included in conveying the object code work. 296 | 297 | A "User Product" is either (1) a "consumer product", which means any 298 | tangible personal property which is normally used for personal, family, 299 | or household purposes, or (2) anything designed or sold for incorporation 300 | into a dwelling. In determining whether a product is a consumer product, 301 | doubtful cases shall be resolved in favor of coverage. For a particular 302 | product received by a particular user, "normally used" refers to a 303 | typical or common use of that class of product, regardless of the status 304 | of the particular user or of the way in which the particular user 305 | actually uses, or expects or is expected to use, the product. A product 306 | is a consumer product regardless of whether the product has substantial 307 | commercial, industrial or non-consumer uses, unless such uses represent 308 | the only significant mode of use of the product. 309 | 310 | "Installation Information" for a User Product means any methods, 311 | procedures, authorization keys, or other information required to install 312 | and execute modified versions of a covered work in that User Product from 313 | a modified version of its Corresponding Source. The information must 314 | suffice to ensure that the continued functioning of the modified object 315 | code is in no case prevented or interfered with solely because 316 | modification has been made. 317 | 318 | If you convey an object code work under this section in, or with, or 319 | specifically for use in, a User Product, and the conveying occurs as 320 | part of a transaction in which the right of possession and use of the 321 | User Product is transferred to the recipient in perpetuity or for a 322 | fixed term (regardless of how the transaction is characterized), the 323 | Corresponding Source conveyed under this section must be accompanied 324 | by the Installation Information. But this requirement does not apply 325 | if neither you nor any third party retains the ability to install 326 | modified object code on the User Product (for example, the work has 327 | been installed in ROM). 328 | 329 | The requirement to provide Installation Information does not include a 330 | requirement to continue to provide support service, warranty, or updates 331 | for a work that has been modified or installed by the recipient, or for 332 | the User Product in which it has been modified or installed. Access to a 333 | network may be denied when the modification itself materially and 334 | adversely affects the operation of the network or violates the rules and 335 | protocols for communication across the network. 336 | 337 | Corresponding Source conveyed, and Installation Information provided, 338 | in accord with this section must be in a format that is publicly 339 | documented (and with an implementation available to the public in 340 | source code form), and must require no special password or key for 341 | unpacking, reading or copying. 342 | 343 | 7. Additional Terms. 344 | 345 | "Additional permissions" are terms that supplement the terms of this 346 | License by making exceptions from one or more of its conditions. 347 | Additional permissions that are applicable to the entire Program shall 348 | be treated as though they were included in this License, to the extent 349 | that they are valid under applicable law. If additional permissions 350 | apply only to part of the Program, that part may be used separately 351 | under those permissions, but the entire Program remains governed by 352 | this License without regard to the additional permissions. 353 | 354 | When you convey a copy of a covered work, you may at your option 355 | remove any additional permissions from that copy, or from any part of 356 | it. (Additional permissions may be written to require their own 357 | removal in certain cases when you modify the work.) You may place 358 | additional permissions on material, added by you to a covered work, 359 | for which you have or can give appropriate copyright permission. 360 | 361 | Notwithstanding any other provision of this License, for material you 362 | add to a covered work, you may (if authorized by the copyright holders of 363 | that material) supplement the terms of this License with terms: 364 | 365 | a) Disclaiming warranty or limiting liability differently from the 366 | terms of sections 15 and 16 of this License; or 367 | 368 | b) Requiring preservation of specified reasonable legal notices or 369 | author attributions in that material or in the Appropriate Legal 370 | Notices displayed by works containing it; or 371 | 372 | c) Prohibiting misrepresentation of the origin of that material, or 373 | requiring that modified versions of such material be marked in 374 | reasonable ways as different from the original version; or 375 | 376 | d) Limiting the use for publicity purposes of names of licensors or 377 | authors of the material; or 378 | 379 | e) Declining to grant rights under trademark law for use of some 380 | trade names, trademarks, or service marks; or 381 | 382 | f) Requiring indemnification of licensors and authors of that 383 | material by anyone who conveys the material (or modified versions of 384 | it) with contractual assumptions of liability to the recipient, for 385 | any liability that these contractual assumptions directly impose on 386 | those licensors and authors. 387 | 388 | All other non-permissive additional terms are considered "further 389 | restrictions" within the meaning of section 10. If the Program as you 390 | received it, or any part of it, contains a notice stating that it is 391 | governed by this License along with a term that is a further 392 | restriction, you may remove that term. If a license document contains 393 | a further restriction but permits relicensing or conveying under this 394 | License, you may add to a covered work material governed by the terms 395 | of that license document, provided that the further restriction does 396 | not survive such relicensing or conveying. 397 | 398 | If you add terms to a covered work in accord with this section, you 399 | must place, in the relevant source files, a statement of the 400 | additional terms that apply to those files, or a notice indicating 401 | where to find the applicable terms. 402 | 403 | Additional terms, permissive or non-permissive, may be stated in the 404 | form of a separately written license, or stated as exceptions; 405 | the above requirements apply either way. 406 | 407 | 8. Termination. 408 | 409 | You may not propagate or modify a covered work except as expressly 410 | provided under this License. Any attempt otherwise to propagate or 411 | modify it is void, and will automatically terminate your rights under 412 | this License (including any patent licenses granted under the third 413 | paragraph of section 11). 414 | 415 | However, if you cease all violation of this License, then your 416 | license from a particular copyright holder is reinstated (a) 417 | provisionally, unless and until the copyright holder explicitly and 418 | finally terminates your license, and (b) permanently, if the copyright 419 | holder fails to notify you of the violation by some reasonable means 420 | prior to 60 days after the cessation. 421 | 422 | Moreover, your license from a particular copyright holder is 423 | reinstated permanently if the copyright holder notifies you of the 424 | violation by some reasonable means, this is the first time you have 425 | received notice of violation of this License (for any work) from that 426 | copyright holder, and you cure the violation prior to 30 days after 427 | your receipt of the notice. 428 | 429 | Termination of your rights under this section does not terminate the 430 | licenses of parties who have received copies or rights from you under 431 | this License. If your rights have been terminated and not permanently 432 | reinstated, you do not qualify to receive new licenses for the same 433 | material under section 10. 434 | 435 | 9. Acceptance Not Required for Having Copies. 436 | 437 | You are not required to accept this License in order to receive or 438 | run a copy of the Program. Ancillary propagation of a covered work 439 | occurring solely as a consequence of using peer-to-peer transmission 440 | to receive a copy likewise does not require acceptance. However, 441 | nothing other than this License grants you permission to propagate or 442 | modify any covered work. These actions infringe copyright if you do 443 | not accept this License. Therefore, by modifying or propagating a 444 | covered work, you indicate your acceptance of this License to do so. 445 | 446 | 10. Automatic Licensing of Downstream Recipients. 447 | 448 | Each time you convey a covered work, the recipient automatically 449 | receives a license from the original licensors, to run, modify and 450 | propagate that work, subject to this License. You are not responsible 451 | for enforcing compliance by third parties with this License. 452 | 453 | An "entity transaction" is a transaction transferring control of an 454 | organization, or substantially all assets of one, or subdividing an 455 | organization, or merging organizations. If propagation of a covered 456 | work results from an entity transaction, each party to that 457 | transaction who receives a copy of the work also receives whatever 458 | licenses to the work the party's predecessor in interest had or could 459 | give under the previous paragraph, plus a right to possession of the 460 | Corresponding Source of the work from the predecessor in interest, if 461 | the predecessor has it or can get it with reasonable efforts. 462 | 463 | You may not impose any further restrictions on the exercise of the 464 | rights granted or affirmed under this License. For example, you may 465 | not impose a license fee, royalty, or other charge for exercise of 466 | rights granted under this License, and you may not initiate litigation 467 | (including a cross-claim or counterclaim in a lawsuit) alleging that 468 | any patent claim is infringed by making, using, selling, offering for 469 | sale, or importing the Program or any portion of it. 470 | 471 | 11. Patents. 472 | 473 | A "contributor" is a copyright holder who authorizes use under this 474 | License of the Program or a work on which the Program is based. The 475 | work thus licensed is called the contributor's "contributor version". 476 | 477 | A contributor's "essential patent claims" are all patent claims 478 | owned or controlled by the contributor, whether already acquired or 479 | hereafter acquired, that would be infringed by some manner, permitted 480 | by this License, of making, using, or selling its contributor version, 481 | but do not include claims that would be infringed only as a 482 | consequence of further modification of the contributor version. For 483 | purposes of this definition, "control" includes the right to grant 484 | patent sublicenses in a manner consistent with the requirements of 485 | this License. 486 | 487 | Each contributor grants you a non-exclusive, worldwide, royalty-free 488 | patent license under the contributor's essential patent claims, to 489 | make, use, sell, offer for sale, import and otherwise run, modify and 490 | propagate the contents of its contributor version. 491 | 492 | In the following three paragraphs, a "patent license" is any express 493 | agreement or commitment, however denominated, not to enforce a patent 494 | (such as an express permission to practice a patent or covenant not to 495 | sue for patent infringement). To "grant" such a patent license to a 496 | party means to make such an agreement or commitment not to enforce a 497 | patent against the party. 498 | 499 | If you convey a covered work, knowingly relying on a patent license, 500 | and the Corresponding Source of the work is not available for anyone 501 | to copy, free of charge and under the terms of this License, through a 502 | publicly available network server or other readily accessible means, 503 | then you must either (1) cause the Corresponding Source to be so 504 | available, or (2) arrange to deprive yourself of the benefit of the 505 | patent license for this particular work, or (3) arrange, in a manner 506 | consistent with the requirements of this License, to extend the patent 507 | license to downstream recipients. "Knowingly relying" means you have 508 | actual knowledge that, but for the patent license, your conveying the 509 | covered work in a country, or your recipient's use of the covered work 510 | in a country, would infringe one or more identifiable patents in that 511 | country that you have reason to believe are valid. 512 | 513 | If, pursuant to or in connection with a single transaction or 514 | arrangement, you convey, or propagate by procuring conveyance of, a 515 | covered work, and grant a patent license to some of the parties 516 | receiving the covered work authorizing them to use, propagate, modify 517 | or convey a specific copy of the covered work, then the patent license 518 | you grant is automatically extended to all recipients of the covered 519 | work and works based on it. 520 | 521 | A patent license is "discriminatory" if it does not include within 522 | the scope of its coverage, prohibits the exercise of, or is 523 | conditioned on the non-exercise of one or more of the rights that are 524 | specifically granted under this License. You may not convey a covered 525 | work if you are a party to an arrangement with a third party that is 526 | in the business of distributing software, under which you make payment 527 | to the third party based on the extent of your activity of conveying 528 | the work, and under which the third party grants, to any of the 529 | parties who would receive the covered work from you, a discriminatory 530 | patent license (a) in connection with copies of the covered work 531 | conveyed by you (or copies made from those copies), or (b) primarily 532 | for and in connection with specific products or compilations that 533 | contain the covered work, unless you entered into that arrangement, 534 | or that patent license was granted, prior to 28 March 2007. 535 | 536 | Nothing in this License shall be construed as excluding or limiting 537 | any implied license or other defenses to infringement that may 538 | otherwise be available to you under applicable patent law. 539 | 540 | 12. No Surrender of Others' Freedom. 541 | 542 | If conditions are imposed on you (whether by court order, agreement or 543 | otherwise) that contradict the conditions of this License, they do not 544 | excuse you from the conditions of this License. If you cannot convey a 545 | covered work so as to satisfy simultaneously your obligations under this 546 | License and any other pertinent obligations, then as a consequence you may 547 | not convey it at all. For example, if you agree to terms that obligate you 548 | to collect a royalty for further conveying from those to whom you convey 549 | the Program, the only way you could satisfy both those terms and this 550 | License would be to refrain entirely from conveying the Program. 551 | 552 | 13. Use with the GNU Affero General Public License. 553 | 554 | Notwithstanding any other provision of this License, you have 555 | permission to link or combine any covered work with a work licensed 556 | under version 3 of the GNU Affero General Public License into a single 557 | combined work, and to convey the resulting work. The terms of this 558 | License will continue to apply to the part which is the covered work, 559 | but the special requirements of the GNU Affero General Public License, 560 | section 13, concerning interaction through a network will apply to the 561 | combination as such. 562 | 563 | 14. Revised Versions of this License. 564 | 565 | The Free Software Foundation may publish revised and/or new versions of 566 | the GNU General Public License from time to time. Such new versions will 567 | be similar in spirit to the present version, but may differ in detail to 568 | address new problems or concerns. 569 | 570 | Each version is given a distinguishing version number. If the 571 | Program specifies that a certain numbered version of the GNU General 572 | Public License "or any later version" applies to it, you have the 573 | option of following the terms and conditions either of that numbered 574 | version or of any later version published by the Free Software 575 | Foundation. If the Program does not specify a version number of the 576 | GNU General Public License, you may choose any version ever published 577 | by the Free Software Foundation. 578 | 579 | If the Program specifies that a proxy can decide which future 580 | versions of the GNU General Public License can be used, that proxy's 581 | public statement of acceptance of a version permanently authorizes you 582 | to choose that version for the Program. 583 | 584 | Later license versions may give you additional or different 585 | permissions. However, no additional obligations are imposed on any 586 | author or copyright holder as a result of your choosing to follow a 587 | later version. 588 | 589 | 15. Disclaimer of Warranty. 590 | 591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY 592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT 593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY 594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM 597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF 598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 599 | 600 | 16. Limitation of Liability. 601 | 602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 603 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 604 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY 605 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE 606 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF 607 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 608 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 609 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF 610 | SUCH DAMAGES. 611 | 612 | 17. Interpretation of Sections 15 and 16. 613 | 614 | If the disclaimer of warranty and limitation of liability provided 615 | above cannot be given local legal effect according to their terms, 616 | reviewing courts shall apply local law that most closely approximates 617 | an absolute waiver of all civil liability in connection with the 618 | Program, unless a warranty or assumption of liability accompanies a 619 | copy of the Program in return for a fee. 620 | 621 | END OF TERMS AND CONDITIONS 622 | 623 | How to Apply These Terms to Your New Programs 624 | 625 | If you develop a new program, and you want it to be of the greatest 626 | possible use to the public, the best way to achieve this is to make it 627 | free software which everyone can redistribute and change under these terms. 628 | 629 | To do so, attach the following notices to the program. It is safest 630 | to attach them to the start of each source file to most effectively 631 | state the exclusion of warranty; and each file should have at least 632 | the "copyright" line and a pointer to where the full notice is found. 633 | 634 | 635 | Copyright (C) 636 | 637 | This program is free software: you can redistribute it and/or modify 638 | it under the terms of the GNU General Public License as published by 639 | the Free Software Foundation, either version 3 of the License, or 640 | (at your option) any later version. 641 | 642 | This program is distributed in the hope that it will be useful, 643 | but WITHOUT ANY WARRANTY; without even the implied warranty of 644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 645 | GNU General Public License for more details. 646 | 647 | You should have received a copy of the GNU General Public License 648 | along with this program. If not, see . 649 | 650 | Also add information on how to contact you by electronic and paper mail. 651 | 652 | If the program does terminal interaction, make it output a short 653 | notice like this when it starts in an interactive mode: 654 | 655 | Copyright (C) 656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 657 | This is free software, and you are welcome to redistribute it 658 | under certain conditions; type `show c' for details. 659 | 660 | The hypothetical commands `show w' and `show c' should show the appropriate 661 | parts of the General Public License. Of course, your program's commands 662 | might be different; for a GUI interface, you would use an "about box". 663 | 664 | You should also get your employer (if you work as a programmer) or school, 665 | if any, to sign a "copyright disclaimer" for the program, if necessary. 666 | For more information on this, and how to apply and follow the GNU GPL, see 667 | . 668 | 669 | The GNU General Public License does not permit incorporating your program 670 | into proprietary programs. If your program is a subroutine library, you 671 | may consider it more useful to permit linking proprietary applications with 672 | the library. If this is what you want to do, use the GNU Lesser General 673 | Public License instead of this License. But first, please read 674 | . 675 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Flowchat 2 | 3 | An unique approach to interact with ChatGPT by OpenAI by using a flowchart-style powered by [react-flow](https://reactflow.dev/). Quick demo and code explanation video can be viewed [here](https://drive.google.com/file/d/1tR-Dxf3X05aHhOt1wGP1d5Zn3DMMm496/view). 4 | 5 | ![Demo](https://user-images.githubusercontent.com/7030944/235475302-4266a521-19cc-4417-a5ff-0beb17f8e87d.png) 6 | -------------------------------------------------------------------------------- /components/Chat/Chat.tsx: -------------------------------------------------------------------------------- 1 | import { nanoid } from "nanoid" 2 | import { memo, useCallback, useEffect, useState } from "react" 3 | import { 4 | Handle, 5 | Node, 6 | NodeProps, 7 | Position, 8 | useNodeId, 9 | useReactFlow, 10 | useStoreApi, 11 | } from "reactflow" 12 | import { baseChat } from "reactflow.options" 13 | import { IChat } from "type" 14 | import { askAI, nodeChainTransformer } from "utils" 15 | import { 16 | FocusIcon, 17 | GripVerticalIcon, 18 | Loader2Icon, 19 | PlusIcon, 20 | TrashIcon, 21 | } from "lucide-react" 22 | 23 | const Chat = ({ 24 | data, 25 | isConnectable, 26 | targetPosition = Position.Top, 27 | sourcePosition = Position.Bottom, 28 | }: NodeProps) => { 29 | const [question, setQuestion] = useState("") 30 | const [isLoading, setIsLoading] = useState(false) 31 | const appInstance = useReactFlow() 32 | const nodeId = useNodeId() 33 | const { getState } = useStoreApi() 34 | const { nodeInternals } = getState() 35 | const allNodes = Array.from(nodeInternals).map(([, node]) => node) 36 | 37 | const isFirstNode = allNodes[0].id === nodeId 38 | 39 | const onSubmit = async ( 40 | e: React.FormEvent 41 | ): Promise => { 42 | e.preventDefault() 43 | if (!nodeId) return 44 | setIsLoading(true) 45 | const messages = nodeChainTransformer( 46 | allNodes, 47 | appInstance.getEdges(), 48 | nodeId 49 | ) 50 | console.log(messages) 51 | const answer = await askAI(messages, question) 52 | if (question === "") return 53 | appInstance.setNodes((prevNodes) => { 54 | const newNodes = [...prevNodes] 55 | const nodeIndex = newNodes.findIndex((node) => node.id === nodeId) 56 | newNodes[nodeIndex].data = { 57 | ...newNodes[nodeIndex].data, 58 | question, 59 | answer, 60 | } 61 | return newNodes 62 | }) 63 | setIsLoading(false) 64 | } 65 | 66 | const onFocusNode = useCallback(() => { 67 | if (!nodeId) return 68 | if (allNodes.length > 0) { 69 | const node = allNodes.find((node) => node.id === nodeId) 70 | 71 | if (!node) return 72 | 73 | /* TODO: Centerize when zoom */ 74 | appInstance.setCenter(node.position.x * 1.35, node.position.y, { 75 | zoom: 1.85, 76 | duration: 1000, 77 | }) 78 | } 79 | }, [appInstance]) 80 | 81 | const onDeleteNode = useCallback(() => { 82 | if (!nodeId) return 83 | const node = allNodes.find((node) => node.id === nodeId) 84 | if (!node) return 85 | const edges = appInstance.getEdges() 86 | const connectedEdges = edges.filter( 87 | (edge) => edge.source === nodeId || edge.target === nodeId 88 | ) 89 | 90 | appInstance.deleteElements({ nodes: [node], edges: connectedEdges }) 91 | }, [appInstance]) 92 | 93 | const onCreateNewNode = useCallback(() => { 94 | if (!nodeId) return 95 | const selectedNode = allNodes?.find((node) => node.id === nodeId) 96 | if (!selectedNode) return 97 | const newNode: Node = { 98 | ...baseChat, 99 | id: nanoid(), 100 | position: { 101 | x: 0, 102 | y: 300, 103 | }, 104 | } 105 | appInstance.setNodes((nds) => nds.concat(newNode)) 106 | 107 | appInstance.setCenter(newNode.position.x, newNode.position.y, { 108 | zoom: 1.5, 109 | duration: 1000, 110 | }) 111 | 112 | if (selectedNode) { 113 | appInstance.setEdges((els) => 114 | els.concat({ 115 | id: `reactflow__edge-${nodeId}-${newNode.id}`, 116 | source: nodeId, 117 | target: newNode.id, 118 | }) 119 | ) 120 | } 121 | }, [appInstance]) 122 | 123 | return ( 124 | <> 125 | {!isFirstNode && ( 126 | 131 | )} 132 |
133 | #{allNodes.findIndex((node) => node.id === nodeId) + 1} 134 |
135 | {isLoading && ( 136 | 140 | )} 141 | 144 | 147 |
148 |
149 |
150 | {data.question?.length === 0 ? ( 151 |
152 | setQuestion(e.target.value)} 155 | placeholder="What's your question?" 156 | className="text-[12px] outline-transparent border-[0px] w-full" 157 | /> 158 |
159 | ) : ( 160 |

{data.question}

161 | )} 162 | {data.answer && data.answer.length > 0 && ( 163 |

{data.answer}

164 | )} 165 |
166 | 171 | 172 | ) 173 | } 174 | 175 | export default memo(Chat) 176 | -------------------------------------------------------------------------------- /components/Chat/index.tsx: -------------------------------------------------------------------------------- 1 | export { default } from "./Chat" 2 | -------------------------------------------------------------------------------- /components/Head/Head.tsx: -------------------------------------------------------------------------------- 1 | import NextHead from "next/head" 2 | import { useRouter } from "next/router" 3 | 4 | interface HeadProps { 5 | title?: string 6 | description?: string 7 | keywords?: string 8 | img?: string 9 | url?: string 10 | author?: string 11 | favicon?: string 12 | theme?: string 13 | } 14 | 15 | const Head = (props: HeadProps) => { 16 | const { title, description, keywords, img, url, author, favicon, theme } = 17 | props 18 | const router = useRouter() 19 | return ( 20 | 21 | 22 | {title} 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 35 | 36 | 37 | 38 | 39 | ) 40 | } 41 | 42 | export default Head 43 | -------------------------------------------------------------------------------- /components/Head/index.tsx: -------------------------------------------------------------------------------- 1 | export { default } from "./Head" 2 | -------------------------------------------------------------------------------- /components/Main/Main.tsx: -------------------------------------------------------------------------------- 1 | const Main = ({ children }: { children: React.ReactNode }) => ( 2 |
3 |
4 | {children} 5 |
6 |
7 | ) 8 | 9 | export default Main 10 | -------------------------------------------------------------------------------- /components/Main/index.tsx: -------------------------------------------------------------------------------- 1 | export { default } from "./Main" 2 | -------------------------------------------------------------------------------- /libs/openai.ts: -------------------------------------------------------------------------------- 1 | import { Configuration, OpenAIApi } from "openai" 2 | 3 | export const useOpenAI = (): OpenAIApi => { 4 | const config = new Configuration({ 5 | apiKey: process.env.NEXT_PUBLIC_OPENAI_API_KEY, 6 | }) 7 | 8 | return new OpenAIApi(config) 9 | } 10 | -------------------------------------------------------------------------------- /next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | // NOTE: This file should not be edited 5 | // see https://nextjs.org/docs/basic-features/typescript for more information. 6 | -------------------------------------------------------------------------------- /next.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = { 3 | reactStrictMode: false, 4 | swcMinify: true, 5 | images: { 6 | domains: [""], // Add your CDN image url here 7 | }, 8 | } 9 | 10 | module.exports = nextConfig 11 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "web", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "dev": "next dev", 7 | "build": "next build", 8 | "start": "next start", 9 | "lint": "next lint" 10 | }, 11 | "dependencies": { 12 | "@types/node": "18.11.17", 13 | "@types/react": "18.0.26", 14 | "@types/react-dom": "18.0.9", 15 | "eslint": "8.30.0", 16 | "eslint-config-next": "13.0.7", 17 | "lucide-react": "^0.190.0", 18 | "nanoid": "^4.0.0", 19 | "next": "13.2.4", 20 | "openai": "^3.2.1", 21 | "react": "18.2.0", 22 | "react-dom": "18.2.0", 23 | "reactflow": "^11.7.0", 24 | "typescript": "4.9.4" 25 | }, 26 | "devDependencies": { 27 | "@tailwindcss/forms": "^0.5.3", 28 | "autoprefixer": "^10.4.13", 29 | "postcss": "^8.4.20", 30 | "tailwindcss": "^3.3.1" 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /pages/_app.tsx: -------------------------------------------------------------------------------- 1 | import type { AppProps } from "next/app" 2 | import { ReactFlowProvider } from "reactflow" 3 | import "../styles/globals.css" 4 | 5 | export default function App({ Component, pageProps }: AppProps) { 6 | return ( 7 | 8 | 9 | 10 | ) 11 | } 12 | -------------------------------------------------------------------------------- /pages/_document.tsx: -------------------------------------------------------------------------------- 1 | import { Html, Head, Main, NextScript } from 'next/document' 2 | 3 | export default function Document() { 4 | return ( 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | ) 13 | } 14 | -------------------------------------------------------------------------------- /pages/index.tsx: -------------------------------------------------------------------------------- 1 | import { useCallback, useEffect, useRef, useState } from "react" 2 | import ReactFlow, { 3 | Background, 4 | Connection, 5 | Controls, 6 | Edge, 7 | Node, 8 | Panel, 9 | ReactFlowInstance, 10 | addEdge, 11 | useEdgesState, 12 | useNodesState, 13 | useReactFlow, 14 | useStoreApi, 15 | } from "reactflow" 16 | import "reactflow/dist/style.css" 17 | 18 | import { nanoid } from "nanoid" 19 | import { baseChat, fitViewOptions, nodeTypes } from "reactflow.options" 20 | import Head from "components/Head" 21 | 22 | export default function Main() { 23 | const [appInstance, setAppInstance] = useState() 24 | const [nodes, setNodes, onNodesChange] = useNodesState([]) 25 | const [edges, setEdges, onEdgesChange] = useEdgesState([]) 26 | const { getState } = useStoreApi() 27 | const { setViewport, setCenter } = useReactFlow() 28 | 29 | const appWrapper = useRef(null) 30 | 31 | /* Load state from localStorage */ 32 | useEffect(() => { 33 | const storedState = localStorage.getItem("flowchat") 34 | 35 | if (!storedState) return 36 | 37 | const initialState = JSON.parse(storedState) 38 | 39 | if (initialState) { 40 | const { x = 0, y = 0, zoom = 1 } = initialState.viewport 41 | setNodes(initialState.nodes) 42 | setEdges(initialState.edges) 43 | setViewport({ x, y, zoom }) 44 | if (initialState.nodes.length === 0) { 45 | onCreateNewNode() 46 | } 47 | } 48 | }, []) 49 | 50 | /* Save state to localStorage */ 51 | useEffect(() => { 52 | if (appInstance) { 53 | const appState = appInstance.toObject() 54 | if (!appState) return 55 | localStorage.setItem("flowchat", JSON.stringify(appState)) 56 | } 57 | }, [nodes, edges, appInstance]) 58 | 59 | /* Create new chat node on "n" keydown */ 60 | useEffect(() => { 61 | const handleKeyDown = (e: KeyboardEvent) => { 62 | /* Prevent creating new node when typing in input */ 63 | if (e.key === "n" && document.activeElement === document.body) { 64 | onCreateNewNode() 65 | } 66 | } 67 | document.addEventListener("keydown", handleKeyDown) 68 | return () => document.removeEventListener("keydown", handleKeyDown) 69 | }, []) 70 | 71 | const onConnect = useCallback( 72 | (params: Edge | Connection) => setEdges((els) => addEdge(params, els)), 73 | [setEdges] 74 | ) 75 | 76 | const onCreateNewNode = useCallback(() => { 77 | const allNodes = Array.from(getState().nodeInternals).map( 78 | ([, node]) => node 79 | ) 80 | const latestNode = allNodes?.[allNodes?.length! - 1] ?? null 81 | const newNode: Node = { 82 | ...baseChat, 83 | id: nanoid(), 84 | position: { 85 | x: latestNode ? latestNode.position.x : 0, 86 | y: latestNode ? latestNode.position.y + latestNode.height! + 50 : 0, 87 | }, 88 | } 89 | setNodes((nds) => nds.concat(newNode)) 90 | setCenter(newNode.position.x, newNode.position.y, { 91 | zoom: 1.5, 92 | duration: 1000, 93 | }) 94 | }, [nodes, appInstance]) 95 | 96 | return ( 97 | <> 98 | 99 |
100 | 112 | 116 |

Shortcuts

117 |
118 |
119 |

Create node

120 | 121 | n 122 | 123 |
124 |
125 |
126 | 127 | 128 |
129 |
130 | 131 | ) 132 | } 133 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | dependencies: 4 | '@types/node': 5 | specifier: 18.11.17 6 | version: 18.11.17 7 | '@types/react': 8 | specifier: 18.0.26 9 | version: 18.0.26 10 | '@types/react-dom': 11 | specifier: 18.0.9 12 | version: 18.0.9 13 | eslint: 14 | specifier: 8.30.0 15 | version: 8.30.0 16 | eslint-config-next: 17 | specifier: 13.0.7 18 | version: 13.0.7(eslint@8.30.0)(typescript@4.9.4) 19 | lucide-react: 20 | specifier: ^0.190.0 21 | version: 0.190.0(react@18.2.0) 22 | nanoid: 23 | specifier: ^4.0.0 24 | version: 4.0.2 25 | next: 26 | specifier: 13.2.4 27 | version: 13.2.4(react-dom@18.2.0)(react@18.2.0) 28 | openai: 29 | specifier: ^3.2.1 30 | version: 3.2.1 31 | react: 32 | specifier: 18.2.0 33 | version: 18.2.0 34 | react-dom: 35 | specifier: 18.2.0 36 | version: 18.2.0(react@18.2.0) 37 | reactflow: 38 | specifier: ^11.7.0 39 | version: 11.7.0(react-dom@18.2.0)(react@18.2.0) 40 | typescript: 41 | specifier: 4.9.4 42 | version: 4.9.4 43 | 44 | devDependencies: 45 | '@tailwindcss/forms': 46 | specifier: ^0.5.3 47 | version: 0.5.3(tailwindcss@3.3.1) 48 | autoprefixer: 49 | specifier: ^10.4.13 50 | version: 10.4.14(postcss@8.4.21) 51 | postcss: 52 | specifier: ^8.4.20 53 | version: 8.4.21 54 | tailwindcss: 55 | specifier: ^3.3.1 56 | version: 3.3.1(postcss@8.4.21) 57 | 58 | packages: 59 | 60 | /@babel/runtime@7.21.0: 61 | resolution: {integrity: sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==} 62 | engines: {node: '>=6.9.0'} 63 | dependencies: 64 | regenerator-runtime: 0.13.11 65 | dev: false 66 | 67 | /@eslint/eslintrc@1.4.1: 68 | resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==} 69 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 70 | dependencies: 71 | ajv: 6.12.6 72 | debug: 4.3.4 73 | espree: 9.5.1 74 | globals: 13.20.0 75 | ignore: 5.2.4 76 | import-fresh: 3.3.0 77 | js-yaml: 4.1.0 78 | minimatch: 3.1.2 79 | strip-json-comments: 3.1.1 80 | transitivePeerDependencies: 81 | - supports-color 82 | dev: false 83 | 84 | /@humanwhocodes/config-array@0.11.8: 85 | resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} 86 | engines: {node: '>=10.10.0'} 87 | dependencies: 88 | '@humanwhocodes/object-schema': 1.2.1 89 | debug: 4.3.4 90 | minimatch: 3.1.2 91 | transitivePeerDependencies: 92 | - supports-color 93 | dev: false 94 | 95 | /@humanwhocodes/module-importer@1.0.1: 96 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 97 | engines: {node: '>=12.22'} 98 | dev: false 99 | 100 | /@humanwhocodes/object-schema@1.2.1: 101 | resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} 102 | dev: false 103 | 104 | /@next/env@13.2.4: 105 | resolution: {integrity: sha512-+Mq3TtpkeeKFZanPturjcXt+KHfKYnLlX6jMLyCrmpq6OOs4i1GqBOAauSkii9QeKCMTYzGppar21JU57b/GEA==} 106 | dev: false 107 | 108 | /@next/eslint-plugin-next@13.0.7: 109 | resolution: {integrity: sha512-Q/Z0V3D3UpKhhzFU6/s17wD4rqJ+ZDGded8UpqNyzX1nUdD+/PnsZexPhSIZ2Yf/c8QESeirmJVRb3eAfCQkRQ==} 110 | dependencies: 111 | glob: 7.1.7 112 | dev: false 113 | 114 | /@next/swc-android-arm-eabi@13.2.4: 115 | resolution: {integrity: sha512-DWlalTSkLjDU11MY11jg17O1gGQzpRccM9Oes2yTqj2DpHndajrXHGxj9HGtJ+idq2k7ImUdJVWS2h2l/EDJOw==} 116 | engines: {node: '>= 10'} 117 | cpu: [arm] 118 | os: [android] 119 | requiresBuild: true 120 | dev: false 121 | optional: true 122 | 123 | /@next/swc-android-arm64@13.2.4: 124 | resolution: {integrity: sha512-sRavmUImUCf332Gy+PjIfLkMhiRX1Ez4SI+3vFDRs1N5eXp+uNzjFUK/oLMMOzk6KFSkbiK/3Wt8+dHQR/flNg==} 125 | engines: {node: '>= 10'} 126 | cpu: [arm64] 127 | os: [android] 128 | requiresBuild: true 129 | dev: false 130 | optional: true 131 | 132 | /@next/swc-darwin-arm64@13.2.4: 133 | resolution: {integrity: sha512-S6vBl+OrInP47TM3LlYx65betocKUUlTZDDKzTiRDbsRESeyIkBtZ6Qi5uT2zQs4imqllJznVjFd1bXLx3Aa6A==} 134 | engines: {node: '>= 10'} 135 | cpu: [arm64] 136 | os: [darwin] 137 | requiresBuild: true 138 | dev: false 139 | optional: true 140 | 141 | /@next/swc-darwin-x64@13.2.4: 142 | resolution: {integrity: sha512-a6LBuoYGcFOPGd4o8TPo7wmv5FnMr+Prz+vYHopEDuhDoMSHOnC+v+Ab4D7F0NMZkvQjEJQdJS3rqgFhlZmKlw==} 143 | engines: {node: '>= 10'} 144 | cpu: [x64] 145 | os: [darwin] 146 | requiresBuild: true 147 | dev: false 148 | optional: true 149 | 150 | /@next/swc-freebsd-x64@13.2.4: 151 | resolution: {integrity: sha512-kkbzKVZGPaXRBPisoAQkh3xh22r+TD+5HwoC5bOkALraJ0dsOQgSMAvzMXKsN3tMzJUPS0tjtRf1cTzrQ0I5vQ==} 152 | engines: {node: '>= 10'} 153 | cpu: [x64] 154 | os: [freebsd] 155 | requiresBuild: true 156 | dev: false 157 | optional: true 158 | 159 | /@next/swc-linux-arm-gnueabihf@13.2.4: 160 | resolution: {integrity: sha512-7qA1++UY0fjprqtjBZaOA6cas/7GekpjVsZn/0uHvquuITFCdKGFCsKNBx3S0Rpxmx6WYo0GcmhNRM9ru08BGg==} 161 | engines: {node: '>= 10'} 162 | cpu: [arm] 163 | os: [linux] 164 | requiresBuild: true 165 | dev: false 166 | optional: true 167 | 168 | /@next/swc-linux-arm64-gnu@13.2.4: 169 | resolution: {integrity: sha512-xzYZdAeq883MwXgcwc72hqo/F/dwUxCukpDOkx/j1HTq/J0wJthMGjinN9wH5bPR98Mfeh1MZJ91WWPnZOedOg==} 170 | engines: {node: '>= 10'} 171 | cpu: [arm64] 172 | os: [linux] 173 | requiresBuild: true 174 | dev: false 175 | optional: true 176 | 177 | /@next/swc-linux-arm64-musl@13.2.4: 178 | resolution: {integrity: sha512-8rXr3WfmqSiYkb71qzuDP6I6R2T2tpkmf83elDN8z783N9nvTJf2E7eLx86wu2OJCi4T05nuxCsh4IOU3LQ5xw==} 179 | engines: {node: '>= 10'} 180 | cpu: [arm64] 181 | os: [linux] 182 | requiresBuild: true 183 | dev: false 184 | optional: true 185 | 186 | /@next/swc-linux-x64-gnu@13.2.4: 187 | resolution: {integrity: sha512-Ngxh51zGSlYJ4EfpKG4LI6WfquulNdtmHg1yuOYlaAr33KyPJp4HeN/tivBnAHcZkoNy0hh/SbwDyCnz5PFJQQ==} 188 | engines: {node: '>= 10'} 189 | cpu: [x64] 190 | os: [linux] 191 | requiresBuild: true 192 | dev: false 193 | optional: true 194 | 195 | /@next/swc-linux-x64-musl@13.2.4: 196 | resolution: {integrity: sha512-gOvwIYoSxd+j14LOcvJr+ekd9fwYT1RyMAHOp7znA10+l40wkFiMONPLWiZuHxfRk+Dy7YdNdDh3ImumvL6VwA==} 197 | engines: {node: '>= 10'} 198 | cpu: [x64] 199 | os: [linux] 200 | requiresBuild: true 201 | dev: false 202 | optional: true 203 | 204 | /@next/swc-win32-arm64-msvc@13.2.4: 205 | resolution: {integrity: sha512-q3NJzcfClgBm4HvdcnoEncmztxrA5GXqKeiZ/hADvC56pwNALt3ngDC6t6qr1YW9V/EPDxCYeaX4zYxHciW4Dw==} 206 | engines: {node: '>= 10'} 207 | cpu: [arm64] 208 | os: [win32] 209 | requiresBuild: true 210 | dev: false 211 | optional: true 212 | 213 | /@next/swc-win32-ia32-msvc@13.2.4: 214 | resolution: {integrity: sha512-/eZ5ncmHUYtD2fc6EUmAIZlAJnVT2YmxDsKs1Ourx0ttTtvtma/WKlMV5NoUsyOez0f9ExLyOpeCoz5aj+MPXw==} 215 | engines: {node: '>= 10'} 216 | cpu: [ia32] 217 | os: [win32] 218 | requiresBuild: true 219 | dev: false 220 | optional: true 221 | 222 | /@next/swc-win32-x64-msvc@13.2.4: 223 | resolution: {integrity: sha512-0MffFmyv7tBLlji01qc0IaPP/LVExzvj7/R5x1Jph1bTAIj4Vu81yFQWHHQAP6r4ff9Ukj1mBK6MDNVXm7Tcvw==} 224 | engines: {node: '>= 10'} 225 | cpu: [x64] 226 | os: [win32] 227 | requiresBuild: true 228 | dev: false 229 | optional: true 230 | 231 | /@nodelib/fs.scandir@2.1.5: 232 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 233 | engines: {node: '>= 8'} 234 | dependencies: 235 | '@nodelib/fs.stat': 2.0.5 236 | run-parallel: 1.2.0 237 | 238 | /@nodelib/fs.stat@2.0.5: 239 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 240 | engines: {node: '>= 8'} 241 | 242 | /@nodelib/fs.walk@1.2.8: 243 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 244 | engines: {node: '>= 8'} 245 | dependencies: 246 | '@nodelib/fs.scandir': 2.1.5 247 | fastq: 1.15.0 248 | 249 | /@pkgr/utils@2.3.1: 250 | resolution: {integrity: sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw==} 251 | engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} 252 | dependencies: 253 | cross-spawn: 7.0.3 254 | is-glob: 4.0.3 255 | open: 8.4.2 256 | picocolors: 1.0.0 257 | tiny-glob: 0.2.9 258 | tslib: 2.5.0 259 | dev: false 260 | 261 | /@reactflow/background@11.2.0(react-dom@18.2.0)(react@18.2.0): 262 | resolution: {integrity: sha512-Fd8Few2JsLuE/2GaIM6fkxEBaAJvfzi2Lc106HKi/ddX+dZs8NUsSwMsJy1Ajs8b4GbiX8v8axfKpbK6qFMV8w==} 263 | peerDependencies: 264 | react: '>=17' 265 | react-dom: '>=17' 266 | dependencies: 267 | '@reactflow/core': 11.7.0(react-dom@18.2.0)(react@18.2.0) 268 | classcat: 5.0.4 269 | react: 18.2.0 270 | react-dom: 18.2.0(react@18.2.0) 271 | zustand: 4.3.7(react@18.2.0) 272 | transitivePeerDependencies: 273 | - immer 274 | dev: false 275 | 276 | /@reactflow/controls@11.1.11(react-dom@18.2.0)(react@18.2.0): 277 | resolution: {integrity: sha512-g6WrsszhNkQjzkJ9HbVUBkGGoUy2z8dQVgH6CYQEjuoonD15cWAPGvjyg8vx8oGG7CuktUhWu5JPivL6qjECow==} 278 | peerDependencies: 279 | react: '>=17' 280 | react-dom: '>=17' 281 | dependencies: 282 | '@reactflow/core': 11.7.0(react-dom@18.2.0)(react@18.2.0) 283 | classcat: 5.0.4 284 | react: 18.2.0 285 | react-dom: 18.2.0(react@18.2.0) 286 | transitivePeerDependencies: 287 | - immer 288 | dev: false 289 | 290 | /@reactflow/core@11.7.0(react-dom@18.2.0)(react@18.2.0): 291 | resolution: {integrity: sha512-UJcpbNRSupSSoMWh5UmRp6UUr0ug7xVKmMvadnkKKiNi9584q57nz4HMfkqwN3/ESbre7LD043yh2n678d/5FQ==} 292 | peerDependencies: 293 | react: '>=17' 294 | react-dom: '>=17' 295 | dependencies: 296 | '@types/d3': 7.4.0 297 | '@types/d3-drag': 3.0.2 298 | '@types/d3-selection': 3.0.5 299 | '@types/d3-zoom': 3.0.2 300 | classcat: 5.0.4 301 | d3-drag: 3.0.0 302 | d3-selection: 3.0.0 303 | d3-zoom: 3.0.0 304 | react: 18.2.0 305 | react-dom: 18.2.0(react@18.2.0) 306 | zustand: 4.3.7(react@18.2.0) 307 | transitivePeerDependencies: 308 | - immer 309 | dev: false 310 | 311 | /@reactflow/minimap@11.5.0(react-dom@18.2.0)(react@18.2.0): 312 | resolution: {integrity: sha512-n/3tlaknLpi3zaqCC+tDDPvUTOjd6jglto9V3RB1F2wlaUEbCwmuoR2GYTkiRyZMvuskKyAoQW8+0DX0+cWwsA==} 313 | peerDependencies: 314 | react: '>=17' 315 | react-dom: '>=17' 316 | dependencies: 317 | '@reactflow/core': 11.7.0(react-dom@18.2.0)(react@18.2.0) 318 | '@types/d3-selection': 3.0.5 319 | '@types/d3-zoom': 3.0.2 320 | classcat: 5.0.4 321 | d3-selection: 3.0.0 322 | d3-zoom: 3.0.0 323 | react: 18.2.0 324 | react-dom: 18.2.0(react@18.2.0) 325 | zustand: 4.3.7(react@18.2.0) 326 | transitivePeerDependencies: 327 | - immer 328 | dev: false 329 | 330 | /@reactflow/node-resizer@2.1.0(react-dom@18.2.0)(react@18.2.0): 331 | resolution: {integrity: sha512-DVL8nnWsltP8/iANadAcTaDB4wsEkx2mOLlBEPNE3yc5loSm3u9l5m4enXRcBym61MiMuTtDPzZMyYYQUjuYIg==} 332 | peerDependencies: 333 | react: '>=17' 334 | react-dom: '>=17' 335 | dependencies: 336 | '@reactflow/core': 11.7.0(react-dom@18.2.0)(react@18.2.0) 337 | classcat: 5.0.4 338 | d3-drag: 3.0.0 339 | d3-selection: 3.0.0 340 | react: 18.2.0 341 | react-dom: 18.2.0(react@18.2.0) 342 | zustand: 4.3.7(react@18.2.0) 343 | transitivePeerDependencies: 344 | - immer 345 | dev: false 346 | 347 | /@reactflow/node-toolbar@1.1.11(react-dom@18.2.0)(react@18.2.0): 348 | resolution: {integrity: sha512-+hKtx+cvXwfCa9paGxE+G34rWRIIVEh68ZOqAtivClVmfqGzH/sEoGWtIOUyg9OEDNE1nEmZ1NrnpBGSmHHXFg==} 349 | peerDependencies: 350 | react: '>=17' 351 | react-dom: '>=17' 352 | dependencies: 353 | '@reactflow/core': 11.7.0(react-dom@18.2.0)(react@18.2.0) 354 | classcat: 5.0.4 355 | react: 18.2.0 356 | react-dom: 18.2.0(react@18.2.0) 357 | zustand: 4.3.7(react@18.2.0) 358 | transitivePeerDependencies: 359 | - immer 360 | dev: false 361 | 362 | /@rushstack/eslint-patch@1.2.0: 363 | resolution: {integrity: sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==} 364 | dev: false 365 | 366 | /@swc/helpers@0.4.14: 367 | resolution: {integrity: sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==} 368 | dependencies: 369 | tslib: 2.5.0 370 | dev: false 371 | 372 | /@tailwindcss/forms@0.5.3(tailwindcss@3.3.1): 373 | resolution: {integrity: sha512-y5mb86JUoiUgBjY/o6FJSFZSEttfb3Q5gllE4xoKjAAD+vBrnIhE4dViwUuow3va8mpH4s9jyUbUbrRGoRdc2Q==} 374 | peerDependencies: 375 | tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1' 376 | dependencies: 377 | mini-svg-data-uri: 1.4.4 378 | tailwindcss: 3.3.1(postcss@8.4.21) 379 | dev: true 380 | 381 | /@types/d3-array@3.0.4: 382 | resolution: {integrity: sha512-nwvEkG9vYOc0Ic7G7kwgviY4AQlTfYGIZ0fqB7CQHXGyYM6nO7kJh5EguSNA3jfh4rq7Sb7eMVq8isuvg2/miQ==} 383 | dev: false 384 | 385 | /@types/d3-axis@3.0.2: 386 | resolution: {integrity: sha512-uGC7DBh0TZrU/LY43Fd8Qr+2ja1FKmH07q2FoZFHo1eYl8aj87GhfVoY1saJVJiq24rp1+wpI6BvQJMKgQm8oA==} 387 | dependencies: 388 | '@types/d3-selection': 3.0.5 389 | dev: false 390 | 391 | /@types/d3-brush@3.0.2: 392 | resolution: {integrity: sha512-2TEm8KzUG3N7z0TrSKPmbxByBx54M+S9lHoP2J55QuLU0VSQ9mE96EJSAOVNEqd1bbynMjeTS9VHmz8/bSw8rA==} 393 | dependencies: 394 | '@types/d3-selection': 3.0.5 395 | dev: false 396 | 397 | /@types/d3-chord@3.0.2: 398 | resolution: {integrity: sha512-abT/iLHD3sGZwqMTX1TYCMEulr+wBd0SzyOQnjYNLp7sngdOHYtNkMRI5v3w5thoN+BWtlHVDx2Osvq6fxhZWw==} 399 | dev: false 400 | 401 | /@types/d3-color@3.1.0: 402 | resolution: {integrity: sha512-HKuicPHJuvPgCD+np6Se9MQvS6OCbJmOjGvylzMJRlDwUXjKTTXs6Pwgk79O09Vj/ho3u1ofXnhFOaEWWPrlwA==} 403 | dev: false 404 | 405 | /@types/d3-contour@3.0.2: 406 | resolution: {integrity: sha512-k6/bGDoAGJZnZWaKzeB+9glgXCYGvh6YlluxzBREiVo8f/X2vpTEdgPy9DN7Z2i42PZOZ4JDhVdlTSTSkLDPlQ==} 407 | dependencies: 408 | '@types/d3-array': 3.0.4 409 | '@types/geojson': 7946.0.10 410 | dev: false 411 | 412 | /@types/d3-delaunay@6.0.1: 413 | resolution: {integrity: sha512-tLxQ2sfT0p6sxdG75c6f/ekqxjyYR0+LwPrsO1mbC9YDBzPJhs2HbJJRrn8Ez1DBoHRo2yx7YEATI+8V1nGMnQ==} 414 | dev: false 415 | 416 | /@types/d3-dispatch@3.0.2: 417 | resolution: {integrity: sha512-rxN6sHUXEZYCKV05MEh4z4WpPSqIw+aP7n9ZN6WYAAvZoEAghEK1WeVZMZcHRBwyaKflU43PCUAJNjFxCzPDjg==} 418 | dev: false 419 | 420 | /@types/d3-drag@3.0.2: 421 | resolution: {integrity: sha512-qmODKEDvyKWVHcWWCOVcuVcOwikLVsyc4q4EBJMREsoQnR2Qoc2cZQUyFUPgO9q4S3qdSqJKBsuefv+h0Qy+tw==} 422 | dependencies: 423 | '@types/d3-selection': 3.0.5 424 | dev: false 425 | 426 | /@types/d3-dsv@3.0.1: 427 | resolution: {integrity: sha512-76pBHCMTvPLt44wFOieouXcGXWOF0AJCceUvaFkxSZEu4VDUdv93JfpMa6VGNFs01FHfuP4a5Ou68eRG1KBfTw==} 428 | dev: false 429 | 430 | /@types/d3-ease@3.0.0: 431 | resolution: {integrity: sha512-aMo4eaAOijJjA6uU+GIeW018dvy9+oH5Y2VPPzjjfxevvGQ/oRDs+tfYC9b50Q4BygRR8yE2QCLsrT0WtAVseA==} 432 | dev: false 433 | 434 | /@types/d3-fetch@3.0.2: 435 | resolution: {integrity: sha512-gllwYWozWfbep16N9fByNBDTkJW/SyhH6SGRlXloR7WdtAaBui4plTP+gbUgiEot7vGw/ZZop1yDZlgXXSuzjA==} 436 | dependencies: 437 | '@types/d3-dsv': 3.0.1 438 | dev: false 439 | 440 | /@types/d3-force@3.0.4: 441 | resolution: {integrity: sha512-q7xbVLrWcXvSBBEoadowIUJ7sRpS1yvgMWnzHJggFy5cUZBq2HZL5k/pBSm0GdYWS1vs5/EDwMjSKF55PDY4Aw==} 442 | dev: false 443 | 444 | /@types/d3-format@3.0.1: 445 | resolution: {integrity: sha512-5KY70ifCCzorkLuIkDe0Z9YTf9RR2CjBX1iaJG+rgM/cPP+sO+q9YdQ9WdhQcgPj1EQiJ2/0+yUkkziTG6Lubg==} 446 | dev: false 447 | 448 | /@types/d3-geo@3.0.3: 449 | resolution: {integrity: sha512-bK9uZJS3vuDCNeeXQ4z3u0E7OeJZXjUgzFdSOtNtMCJCLvDtWDwfpRVWlyt3y8EvRzI0ccOu9xlMVirawolSCw==} 450 | dependencies: 451 | '@types/geojson': 7946.0.10 452 | dev: false 453 | 454 | /@types/d3-hierarchy@3.1.2: 455 | resolution: {integrity: sha512-9hjRTVoZjRFR6xo8igAJyNXQyPX6Aq++Nhb5ebrUF414dv4jr2MitM2fWiOY475wa3Za7TOS2Gh9fmqEhLTt0A==} 456 | dev: false 457 | 458 | /@types/d3-interpolate@3.0.1: 459 | resolution: {integrity: sha512-jx5leotSeac3jr0RePOH1KdR9rISG91QIE4Q2PYTu4OymLTZfA3SrnURSLzKH48HmXVUru50b8nje4E79oQSQw==} 460 | dependencies: 461 | '@types/d3-color': 3.1.0 462 | dev: false 463 | 464 | /@types/d3-path@3.0.0: 465 | resolution: {integrity: sha512-0g/A+mZXgFkQxN3HniRDbXMN79K3CdTpLsevj+PXiTcb2hVyvkZUBg37StmgCQkaD84cUJ4uaDAWq7UJOQy2Tg==} 466 | dev: false 467 | 468 | /@types/d3-polygon@3.0.0: 469 | resolution: {integrity: sha512-D49z4DyzTKXM0sGKVqiTDTYr+DHg/uxsiWDAkNrwXYuiZVd9o9wXZIo+YsHkifOiyBkmSWlEngHCQme54/hnHw==} 470 | dev: false 471 | 472 | /@types/d3-quadtree@3.0.2: 473 | resolution: {integrity: sha512-QNcK8Jguvc8lU+4OfeNx+qnVy7c0VrDJ+CCVFS9srBo2GL9Y18CnIxBdTF3v38flrGy5s1YggcoAiu6s4fLQIw==} 474 | dev: false 475 | 476 | /@types/d3-random@3.0.1: 477 | resolution: {integrity: sha512-IIE6YTekGczpLYo/HehAy3JGF1ty7+usI97LqraNa8IiDur+L44d0VOjAvFQWJVdZOJHukUJw+ZdZBlgeUsHOQ==} 478 | dev: false 479 | 480 | /@types/d3-scale-chromatic@3.0.0: 481 | resolution: {integrity: sha512-dsoJGEIShosKVRBZB0Vo3C8nqSDqVGujJU6tPznsBJxNJNwMF8utmS83nvCBKQYPpjCzaaHcrf66iTRpZosLPw==} 482 | dev: false 483 | 484 | /@types/d3-scale@4.0.3: 485 | resolution: {integrity: sha512-PATBiMCpvHJSMtZAMEhc2WyL+hnzarKzI6wAHYjhsonjWJYGq5BXTzQjv4l8m2jO183/4wZ90rKvSeT7o72xNQ==} 486 | dependencies: 487 | '@types/d3-time': 3.0.0 488 | dev: false 489 | 490 | /@types/d3-selection@3.0.5: 491 | resolution: {integrity: sha512-xCB0z3Hi8eFIqyja3vW8iV01+OHGYR2di/+e+AiOcXIOrY82lcvWW8Ke1DYE/EUVMsBl4Db9RppSBS3X1U6J0w==} 492 | dev: false 493 | 494 | /@types/d3-shape@3.1.1: 495 | resolution: {integrity: sha512-6Uh86YFF7LGg4PQkuO2oG6EMBRLuW9cbavUW46zkIO5kuS2PfTqo2o9SkgtQzguBHbLgNnU90UNsITpsX1My+A==} 496 | dependencies: 497 | '@types/d3-path': 3.0.0 498 | dev: false 499 | 500 | /@types/d3-time-format@4.0.0: 501 | resolution: {integrity: sha512-yjfBUe6DJBsDin2BMIulhSHmr5qNR5Pxs17+oW4DoVPyVIXZ+m6bs7j1UVKP08Emv6jRmYrYqxYzO63mQxy1rw==} 502 | dev: false 503 | 504 | /@types/d3-time@3.0.0: 505 | resolution: {integrity: sha512-sZLCdHvBUcNby1cB6Fd3ZBrABbjz3v1Vm90nysCQ6Vt7vd6e/h9Lt7SiJUoEX0l4Dzc7P5llKyhqSi1ycSf1Hg==} 506 | dev: false 507 | 508 | /@types/d3-timer@3.0.0: 509 | resolution: {integrity: sha512-HNB/9GHqu7Fo8AQiugyJbv6ZxYz58wef0esl4Mv828w1ZKpAshw/uFWVDUcIB9KKFeFKoxS3cHY07FFgtTRZ1g==} 510 | dev: false 511 | 512 | /@types/d3-transition@3.0.3: 513 | resolution: {integrity: sha512-/S90Od8Id1wgQNvIA8iFv9jRhCiZcGhPd2qX0bKF/PS+y0W5CrXKgIiELd2CvG1mlQrWK/qlYh3VxicqG1ZvgA==} 514 | dependencies: 515 | '@types/d3-selection': 3.0.5 516 | dev: false 517 | 518 | /@types/d3-zoom@3.0.2: 519 | resolution: {integrity: sha512-t09DDJVBI6AkM7N8kuPsnq/3d/ehtRKBN1xSiYjjMCgbiw6HM6Ged5VhvswmhprfKyGvzeTEL/4WBaK9llWvlA==} 520 | dependencies: 521 | '@types/d3-interpolate': 3.0.1 522 | '@types/d3-selection': 3.0.5 523 | dev: false 524 | 525 | /@types/d3@7.4.0: 526 | resolution: {integrity: sha512-jIfNVK0ZlxcuRDKtRS/SypEyOQ6UHaFQBKv032X45VvxSJ6Yi5G9behy9h6tNTHTDGh5Vq+KbmBjUWLgY4meCA==} 527 | dependencies: 528 | '@types/d3-array': 3.0.4 529 | '@types/d3-axis': 3.0.2 530 | '@types/d3-brush': 3.0.2 531 | '@types/d3-chord': 3.0.2 532 | '@types/d3-color': 3.1.0 533 | '@types/d3-contour': 3.0.2 534 | '@types/d3-delaunay': 6.0.1 535 | '@types/d3-dispatch': 3.0.2 536 | '@types/d3-drag': 3.0.2 537 | '@types/d3-dsv': 3.0.1 538 | '@types/d3-ease': 3.0.0 539 | '@types/d3-fetch': 3.0.2 540 | '@types/d3-force': 3.0.4 541 | '@types/d3-format': 3.0.1 542 | '@types/d3-geo': 3.0.3 543 | '@types/d3-hierarchy': 3.1.2 544 | '@types/d3-interpolate': 3.0.1 545 | '@types/d3-path': 3.0.0 546 | '@types/d3-polygon': 3.0.0 547 | '@types/d3-quadtree': 3.0.2 548 | '@types/d3-random': 3.0.1 549 | '@types/d3-scale': 4.0.3 550 | '@types/d3-scale-chromatic': 3.0.0 551 | '@types/d3-selection': 3.0.5 552 | '@types/d3-shape': 3.1.1 553 | '@types/d3-time': 3.0.0 554 | '@types/d3-time-format': 4.0.0 555 | '@types/d3-timer': 3.0.0 556 | '@types/d3-transition': 3.0.3 557 | '@types/d3-zoom': 3.0.2 558 | dev: false 559 | 560 | /@types/geojson@7946.0.10: 561 | resolution: {integrity: sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA==} 562 | dev: false 563 | 564 | /@types/json5@0.0.29: 565 | resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} 566 | dev: false 567 | 568 | /@types/node@18.11.17: 569 | resolution: {integrity: sha512-HJSUJmni4BeDHhfzn6nF0sVmd1SMezP7/4F0Lq+aXzmp2xm9O7WXrUtHW/CHlYVtZUbByEvWidHqRtcJXGF2Ng==} 570 | dev: false 571 | 572 | /@types/prop-types@15.7.5: 573 | resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} 574 | dev: false 575 | 576 | /@types/react-dom@18.0.9: 577 | resolution: {integrity: sha512-qnVvHxASt/H7i+XG1U1xMiY5t+IHcPGUK7TDMDzom08xa7e86eCeKOiLZezwCKVxJn6NEiiy2ekgX8aQssjIKg==} 578 | dependencies: 579 | '@types/react': 18.0.26 580 | dev: false 581 | 582 | /@types/react@18.0.26: 583 | resolution: {integrity: sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug==} 584 | dependencies: 585 | '@types/prop-types': 15.7.5 586 | '@types/scheduler': 0.16.3 587 | csstype: 3.1.2 588 | dev: false 589 | 590 | /@types/scheduler@0.16.3: 591 | resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} 592 | dev: false 593 | 594 | /@typescript-eslint/parser@5.57.1(eslint@8.30.0)(typescript@4.9.4): 595 | resolution: {integrity: sha512-hlA0BLeVSA/wBPKdPGxoVr9Pp6GutGoY380FEhbVi0Ph4WNe8kLvqIRx76RSQt1lynZKfrXKs0/XeEk4zZycuA==} 596 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 597 | peerDependencies: 598 | eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 599 | typescript: '*' 600 | peerDependenciesMeta: 601 | typescript: 602 | optional: true 603 | dependencies: 604 | '@typescript-eslint/scope-manager': 5.57.1 605 | '@typescript-eslint/types': 5.57.1 606 | '@typescript-eslint/typescript-estree': 5.57.1(typescript@4.9.4) 607 | debug: 4.3.4 608 | eslint: 8.30.0 609 | typescript: 4.9.4 610 | transitivePeerDependencies: 611 | - supports-color 612 | dev: false 613 | 614 | /@typescript-eslint/scope-manager@5.57.1: 615 | resolution: {integrity: sha512-N/RrBwEUKMIYxSKl0oDK5sFVHd6VI7p9K5MyUlVYAY6dyNb/wHUqndkTd3XhpGlXgnQsBkRZuu4f9kAHghvgPw==} 616 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 617 | dependencies: 618 | '@typescript-eslint/types': 5.57.1 619 | '@typescript-eslint/visitor-keys': 5.57.1 620 | dev: false 621 | 622 | /@typescript-eslint/types@5.57.1: 623 | resolution: {integrity: sha512-bSs4LOgyV3bJ08F5RDqO2KXqg3WAdwHCu06zOqcQ6vqbTJizyBhuh1o1ImC69X4bV2g1OJxbH71PJqiO7Y1RuA==} 624 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 625 | dev: false 626 | 627 | /@typescript-eslint/typescript-estree@5.57.1(typescript@4.9.4): 628 | resolution: {integrity: sha512-A2MZqD8gNT0qHKbk2wRspg7cHbCDCk2tcqt6ScCFLr5Ru8cn+TCfM786DjPhqwseiS+PrYwcXht5ztpEQ6TFTw==} 629 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 630 | peerDependencies: 631 | typescript: '*' 632 | peerDependenciesMeta: 633 | typescript: 634 | optional: true 635 | dependencies: 636 | '@typescript-eslint/types': 5.57.1 637 | '@typescript-eslint/visitor-keys': 5.57.1 638 | debug: 4.3.4 639 | globby: 11.1.0 640 | is-glob: 4.0.3 641 | semver: 7.3.8 642 | tsutils: 3.21.0(typescript@4.9.4) 643 | typescript: 4.9.4 644 | transitivePeerDependencies: 645 | - supports-color 646 | dev: false 647 | 648 | /@typescript-eslint/visitor-keys@5.57.1: 649 | resolution: {integrity: sha512-RjQrAniDU0CEk5r7iphkm731zKlFiUjvcBS2yHAg8WWqFMCaCrD0rKEVOMUyMMcbGPZ0bPp56srkGWrgfZqLRA==} 650 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 651 | dependencies: 652 | '@typescript-eslint/types': 5.57.1 653 | eslint-visitor-keys: 3.4.0 654 | dev: false 655 | 656 | /acorn-jsx@5.3.2(acorn@8.8.2): 657 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 658 | peerDependencies: 659 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 660 | dependencies: 661 | acorn: 8.8.2 662 | dev: false 663 | 664 | /acorn@8.8.2: 665 | resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} 666 | engines: {node: '>=0.4.0'} 667 | hasBin: true 668 | dev: false 669 | 670 | /ajv@6.12.6: 671 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 672 | dependencies: 673 | fast-deep-equal: 3.1.3 674 | fast-json-stable-stringify: 2.1.0 675 | json-schema-traverse: 0.4.1 676 | uri-js: 4.4.1 677 | dev: false 678 | 679 | /ansi-regex@5.0.1: 680 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 681 | engines: {node: '>=8'} 682 | dev: false 683 | 684 | /ansi-styles@4.3.0: 685 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 686 | engines: {node: '>=8'} 687 | dependencies: 688 | color-convert: 2.0.1 689 | dev: false 690 | 691 | /any-promise@1.3.0: 692 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 693 | dev: true 694 | 695 | /anymatch@3.1.3: 696 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 697 | engines: {node: '>= 8'} 698 | dependencies: 699 | normalize-path: 3.0.0 700 | picomatch: 2.3.1 701 | dev: true 702 | 703 | /arg@5.0.2: 704 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} 705 | dev: true 706 | 707 | /argparse@2.0.1: 708 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 709 | dev: false 710 | 711 | /aria-query@5.1.3: 712 | resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} 713 | dependencies: 714 | deep-equal: 2.2.0 715 | dev: false 716 | 717 | /array-buffer-byte-length@1.0.0: 718 | resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} 719 | dependencies: 720 | call-bind: 1.0.2 721 | is-array-buffer: 3.0.2 722 | dev: false 723 | 724 | /array-includes@3.1.6: 725 | resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==} 726 | engines: {node: '>= 0.4'} 727 | dependencies: 728 | call-bind: 1.0.2 729 | define-properties: 1.2.0 730 | es-abstract: 1.21.2 731 | get-intrinsic: 1.2.0 732 | is-string: 1.0.7 733 | dev: false 734 | 735 | /array-union@2.1.0: 736 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 737 | engines: {node: '>=8'} 738 | dev: false 739 | 740 | /array.prototype.flat@1.3.1: 741 | resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} 742 | engines: {node: '>= 0.4'} 743 | dependencies: 744 | call-bind: 1.0.2 745 | define-properties: 1.2.0 746 | es-abstract: 1.21.2 747 | es-shim-unscopables: 1.0.0 748 | dev: false 749 | 750 | /array.prototype.flatmap@1.3.1: 751 | resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==} 752 | engines: {node: '>= 0.4'} 753 | dependencies: 754 | call-bind: 1.0.2 755 | define-properties: 1.2.0 756 | es-abstract: 1.21.2 757 | es-shim-unscopables: 1.0.0 758 | dev: false 759 | 760 | /array.prototype.tosorted@1.1.1: 761 | resolution: {integrity: sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==} 762 | dependencies: 763 | call-bind: 1.0.2 764 | define-properties: 1.2.0 765 | es-abstract: 1.21.2 766 | es-shim-unscopables: 1.0.0 767 | get-intrinsic: 1.2.0 768 | dev: false 769 | 770 | /ast-types-flow@0.0.7: 771 | resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} 772 | dev: false 773 | 774 | /asynckit@0.4.0: 775 | resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} 776 | dev: false 777 | 778 | /autoprefixer@10.4.14(postcss@8.4.21): 779 | resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==} 780 | engines: {node: ^10 || ^12 || >=14} 781 | hasBin: true 782 | peerDependencies: 783 | postcss: ^8.1.0 784 | dependencies: 785 | browserslist: 4.21.5 786 | caniuse-lite: 1.0.30001474 787 | fraction.js: 4.2.0 788 | normalize-range: 0.1.2 789 | picocolors: 1.0.0 790 | postcss: 8.4.21 791 | postcss-value-parser: 4.2.0 792 | dev: true 793 | 794 | /available-typed-arrays@1.0.5: 795 | resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} 796 | engines: {node: '>= 0.4'} 797 | dev: false 798 | 799 | /axe-core@4.6.3: 800 | resolution: {integrity: sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg==} 801 | engines: {node: '>=4'} 802 | dev: false 803 | 804 | /axios@0.26.1: 805 | resolution: {integrity: sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==} 806 | dependencies: 807 | follow-redirects: 1.15.2 808 | transitivePeerDependencies: 809 | - debug 810 | dev: false 811 | 812 | /axobject-query@3.1.1: 813 | resolution: {integrity: sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==} 814 | dependencies: 815 | deep-equal: 2.2.0 816 | dev: false 817 | 818 | /balanced-match@1.0.2: 819 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 820 | 821 | /binary-extensions@2.2.0: 822 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 823 | engines: {node: '>=8'} 824 | dev: true 825 | 826 | /brace-expansion@1.1.11: 827 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 828 | dependencies: 829 | balanced-match: 1.0.2 830 | concat-map: 0.0.1 831 | 832 | /braces@3.0.2: 833 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 834 | engines: {node: '>=8'} 835 | dependencies: 836 | fill-range: 7.0.1 837 | 838 | /browserslist@4.21.5: 839 | resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==} 840 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 841 | hasBin: true 842 | dependencies: 843 | caniuse-lite: 1.0.30001474 844 | electron-to-chromium: 1.4.352 845 | node-releases: 2.0.10 846 | update-browserslist-db: 1.0.10(browserslist@4.21.5) 847 | dev: true 848 | 849 | /call-bind@1.0.2: 850 | resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} 851 | dependencies: 852 | function-bind: 1.1.1 853 | get-intrinsic: 1.2.0 854 | dev: false 855 | 856 | /callsites@3.1.0: 857 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 858 | engines: {node: '>=6'} 859 | dev: false 860 | 861 | /camelcase-css@2.0.1: 862 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} 863 | engines: {node: '>= 6'} 864 | dev: true 865 | 866 | /caniuse-lite@1.0.30001474: 867 | resolution: {integrity: sha512-iaIZ8gVrWfemh5DG3T9/YqarVZoYf0r188IjaGwx68j4Pf0SGY6CQkmJUIE+NZHkkecQGohzXmBGEwWDr9aM3Q==} 868 | 869 | /chalk@4.1.2: 870 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 871 | engines: {node: '>=10'} 872 | dependencies: 873 | ansi-styles: 4.3.0 874 | supports-color: 7.2.0 875 | dev: false 876 | 877 | /chokidar@3.5.3: 878 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 879 | engines: {node: '>= 8.10.0'} 880 | dependencies: 881 | anymatch: 3.1.3 882 | braces: 3.0.2 883 | glob-parent: 5.1.2 884 | is-binary-path: 2.1.0 885 | is-glob: 4.0.3 886 | normalize-path: 3.0.0 887 | readdirp: 3.6.0 888 | optionalDependencies: 889 | fsevents: 2.3.2 890 | dev: true 891 | 892 | /classcat@5.0.4: 893 | resolution: {integrity: sha512-sbpkOw6z413p+HDGcBENe498WM9woqWHiJxCq7nvmxe9WmrUmqfAcxpIwAiMtM5Q3AhYkzXcNQHqsWq0mND51g==} 894 | dev: false 895 | 896 | /client-only@0.0.1: 897 | resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} 898 | dev: false 899 | 900 | /color-convert@2.0.1: 901 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 902 | engines: {node: '>=7.0.0'} 903 | dependencies: 904 | color-name: 1.1.4 905 | dev: false 906 | 907 | /color-name@1.1.4: 908 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 909 | 910 | /combined-stream@1.0.8: 911 | resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} 912 | engines: {node: '>= 0.8'} 913 | dependencies: 914 | delayed-stream: 1.0.0 915 | dev: false 916 | 917 | /commander@4.1.1: 918 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 919 | engines: {node: '>= 6'} 920 | dev: true 921 | 922 | /concat-map@0.0.1: 923 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 924 | 925 | /cross-spawn@7.0.3: 926 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 927 | engines: {node: '>= 8'} 928 | dependencies: 929 | path-key: 3.1.1 930 | shebang-command: 2.0.0 931 | which: 2.0.2 932 | dev: false 933 | 934 | /cssesc@3.0.0: 935 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 936 | engines: {node: '>=4'} 937 | hasBin: true 938 | dev: true 939 | 940 | /csstype@3.1.2: 941 | resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} 942 | dev: false 943 | 944 | /d3-color@3.1.0: 945 | resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} 946 | engines: {node: '>=12'} 947 | dev: false 948 | 949 | /d3-dispatch@3.0.1: 950 | resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} 951 | engines: {node: '>=12'} 952 | dev: false 953 | 954 | /d3-drag@3.0.0: 955 | resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} 956 | engines: {node: '>=12'} 957 | dependencies: 958 | d3-dispatch: 3.0.1 959 | d3-selection: 3.0.0 960 | dev: false 961 | 962 | /d3-ease@3.0.1: 963 | resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} 964 | engines: {node: '>=12'} 965 | dev: false 966 | 967 | /d3-interpolate@3.0.1: 968 | resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} 969 | engines: {node: '>=12'} 970 | dependencies: 971 | d3-color: 3.1.0 972 | dev: false 973 | 974 | /d3-selection@3.0.0: 975 | resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} 976 | engines: {node: '>=12'} 977 | dev: false 978 | 979 | /d3-timer@3.0.1: 980 | resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} 981 | engines: {node: '>=12'} 982 | dev: false 983 | 984 | /d3-transition@3.0.1(d3-selection@3.0.0): 985 | resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} 986 | engines: {node: '>=12'} 987 | peerDependencies: 988 | d3-selection: 2 - 3 989 | dependencies: 990 | d3-color: 3.1.0 991 | d3-dispatch: 3.0.1 992 | d3-ease: 3.0.1 993 | d3-interpolate: 3.0.1 994 | d3-selection: 3.0.0 995 | d3-timer: 3.0.1 996 | dev: false 997 | 998 | /d3-zoom@3.0.0: 999 | resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} 1000 | engines: {node: '>=12'} 1001 | dependencies: 1002 | d3-dispatch: 3.0.1 1003 | d3-drag: 3.0.0 1004 | d3-interpolate: 3.0.1 1005 | d3-selection: 3.0.0 1006 | d3-transition: 3.0.1(d3-selection@3.0.0) 1007 | dev: false 1008 | 1009 | /damerau-levenshtein@1.0.8: 1010 | resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} 1011 | dev: false 1012 | 1013 | /debug@3.2.7: 1014 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} 1015 | peerDependencies: 1016 | supports-color: '*' 1017 | peerDependenciesMeta: 1018 | supports-color: 1019 | optional: true 1020 | dependencies: 1021 | ms: 2.1.3 1022 | dev: false 1023 | 1024 | /debug@4.3.4: 1025 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 1026 | engines: {node: '>=6.0'} 1027 | peerDependencies: 1028 | supports-color: '*' 1029 | peerDependenciesMeta: 1030 | supports-color: 1031 | optional: true 1032 | dependencies: 1033 | ms: 2.1.2 1034 | dev: false 1035 | 1036 | /deep-equal@2.2.0: 1037 | resolution: {integrity: sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==} 1038 | dependencies: 1039 | call-bind: 1.0.2 1040 | es-get-iterator: 1.1.3 1041 | get-intrinsic: 1.2.0 1042 | is-arguments: 1.1.1 1043 | is-array-buffer: 3.0.2 1044 | is-date-object: 1.0.5 1045 | is-regex: 1.1.4 1046 | is-shared-array-buffer: 1.0.2 1047 | isarray: 2.0.5 1048 | object-is: 1.1.5 1049 | object-keys: 1.1.1 1050 | object.assign: 4.1.4 1051 | regexp.prototype.flags: 1.4.3 1052 | side-channel: 1.0.4 1053 | which-boxed-primitive: 1.0.2 1054 | which-collection: 1.0.1 1055 | which-typed-array: 1.1.9 1056 | dev: false 1057 | 1058 | /deep-is@0.1.4: 1059 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 1060 | dev: false 1061 | 1062 | /define-lazy-prop@2.0.0: 1063 | resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} 1064 | engines: {node: '>=8'} 1065 | dev: false 1066 | 1067 | /define-properties@1.2.0: 1068 | resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} 1069 | engines: {node: '>= 0.4'} 1070 | dependencies: 1071 | has-property-descriptors: 1.0.0 1072 | object-keys: 1.1.1 1073 | dev: false 1074 | 1075 | /delayed-stream@1.0.0: 1076 | resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} 1077 | engines: {node: '>=0.4.0'} 1078 | dev: false 1079 | 1080 | /didyoumean@1.2.2: 1081 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} 1082 | dev: true 1083 | 1084 | /dir-glob@3.0.1: 1085 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 1086 | engines: {node: '>=8'} 1087 | dependencies: 1088 | path-type: 4.0.0 1089 | dev: false 1090 | 1091 | /dlv@1.1.3: 1092 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 1093 | dev: true 1094 | 1095 | /doctrine@2.1.0: 1096 | resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} 1097 | engines: {node: '>=0.10.0'} 1098 | dependencies: 1099 | esutils: 2.0.3 1100 | dev: false 1101 | 1102 | /doctrine@3.0.0: 1103 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 1104 | engines: {node: '>=6.0.0'} 1105 | dependencies: 1106 | esutils: 2.0.3 1107 | dev: false 1108 | 1109 | /electron-to-chromium@1.4.352: 1110 | resolution: {integrity: sha512-ikFUEyu5/q+wJpMOxWxTaEVk2M1qKqTGKKyfJmod1CPZxKfYnxVS41/GCBQg21ItBpZybyN8sNpRqCUGm+Zc4Q==} 1111 | dev: true 1112 | 1113 | /emoji-regex@9.2.2: 1114 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 1115 | dev: false 1116 | 1117 | /enhanced-resolve@5.12.0: 1118 | resolution: {integrity: sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==} 1119 | engines: {node: '>=10.13.0'} 1120 | dependencies: 1121 | graceful-fs: 4.2.11 1122 | tapable: 2.2.1 1123 | dev: false 1124 | 1125 | /es-abstract@1.21.2: 1126 | resolution: {integrity: sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==} 1127 | engines: {node: '>= 0.4'} 1128 | dependencies: 1129 | array-buffer-byte-length: 1.0.0 1130 | available-typed-arrays: 1.0.5 1131 | call-bind: 1.0.2 1132 | es-set-tostringtag: 2.0.1 1133 | es-to-primitive: 1.2.1 1134 | function.prototype.name: 1.1.5 1135 | get-intrinsic: 1.2.0 1136 | get-symbol-description: 1.0.0 1137 | globalthis: 1.0.3 1138 | gopd: 1.0.1 1139 | has: 1.0.3 1140 | has-property-descriptors: 1.0.0 1141 | has-proto: 1.0.1 1142 | has-symbols: 1.0.3 1143 | internal-slot: 1.0.5 1144 | is-array-buffer: 3.0.2 1145 | is-callable: 1.2.7 1146 | is-negative-zero: 2.0.2 1147 | is-regex: 1.1.4 1148 | is-shared-array-buffer: 1.0.2 1149 | is-string: 1.0.7 1150 | is-typed-array: 1.1.10 1151 | is-weakref: 1.0.2 1152 | object-inspect: 1.12.3 1153 | object-keys: 1.1.1 1154 | object.assign: 4.1.4 1155 | regexp.prototype.flags: 1.4.3 1156 | safe-regex-test: 1.0.0 1157 | string.prototype.trim: 1.2.7 1158 | string.prototype.trimend: 1.0.6 1159 | string.prototype.trimstart: 1.0.6 1160 | typed-array-length: 1.0.4 1161 | unbox-primitive: 1.0.2 1162 | which-typed-array: 1.1.9 1163 | dev: false 1164 | 1165 | /es-get-iterator@1.1.3: 1166 | resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} 1167 | dependencies: 1168 | call-bind: 1.0.2 1169 | get-intrinsic: 1.2.0 1170 | has-symbols: 1.0.3 1171 | is-arguments: 1.1.1 1172 | is-map: 2.0.2 1173 | is-set: 2.0.2 1174 | is-string: 1.0.7 1175 | isarray: 2.0.5 1176 | stop-iteration-iterator: 1.0.0 1177 | dev: false 1178 | 1179 | /es-set-tostringtag@2.0.1: 1180 | resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} 1181 | engines: {node: '>= 0.4'} 1182 | dependencies: 1183 | get-intrinsic: 1.2.0 1184 | has: 1.0.3 1185 | has-tostringtag: 1.0.0 1186 | dev: false 1187 | 1188 | /es-shim-unscopables@1.0.0: 1189 | resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} 1190 | dependencies: 1191 | has: 1.0.3 1192 | dev: false 1193 | 1194 | /es-to-primitive@1.2.1: 1195 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} 1196 | engines: {node: '>= 0.4'} 1197 | dependencies: 1198 | is-callable: 1.2.7 1199 | is-date-object: 1.0.5 1200 | is-symbol: 1.0.4 1201 | dev: false 1202 | 1203 | /escalade@3.1.1: 1204 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 1205 | engines: {node: '>=6'} 1206 | dev: true 1207 | 1208 | /escape-string-regexp@4.0.0: 1209 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 1210 | engines: {node: '>=10'} 1211 | dev: false 1212 | 1213 | /eslint-config-next@13.0.7(eslint@8.30.0)(typescript@4.9.4): 1214 | resolution: {integrity: sha512-X7DB7iDJ9iHi5DAZbnFdWm4M0dwarj5h5y6Vpm9INCYzFgAwSWslq3v0qjYEjtUO5IQ8n1WK6IU5FkOQ2HBhOA==} 1215 | peerDependencies: 1216 | eslint: ^7.23.0 || ^8.0.0 1217 | typescript: '>=3.3.1' 1218 | peerDependenciesMeta: 1219 | typescript: 1220 | optional: true 1221 | dependencies: 1222 | '@next/eslint-plugin-next': 13.0.7 1223 | '@rushstack/eslint-patch': 1.2.0 1224 | '@typescript-eslint/parser': 5.57.1(eslint@8.30.0)(typescript@4.9.4) 1225 | eslint: 8.30.0 1226 | eslint-import-resolver-node: 0.3.7 1227 | eslint-import-resolver-typescript: 3.5.4(eslint-plugin-import@2.27.5)(eslint@8.30.0) 1228 | eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.57.1)(eslint-import-resolver-typescript@3.5.4)(eslint@8.30.0) 1229 | eslint-plugin-jsx-a11y: 6.7.1(eslint@8.30.0) 1230 | eslint-plugin-react: 7.32.2(eslint@8.30.0) 1231 | eslint-plugin-react-hooks: 4.6.0(eslint@8.30.0) 1232 | typescript: 4.9.4 1233 | transitivePeerDependencies: 1234 | - eslint-import-resolver-webpack 1235 | - supports-color 1236 | dev: false 1237 | 1238 | /eslint-import-resolver-node@0.3.7: 1239 | resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} 1240 | dependencies: 1241 | debug: 3.2.7 1242 | is-core-module: 2.11.0 1243 | resolve: 1.22.1 1244 | transitivePeerDependencies: 1245 | - supports-color 1246 | dev: false 1247 | 1248 | /eslint-import-resolver-typescript@3.5.4(eslint-plugin-import@2.27.5)(eslint@8.30.0): 1249 | resolution: {integrity: sha512-9xUpnedEmSfG57sN1UvWPiEhfJ8bPt0Wg2XysA7Mlc79iFGhmJtRUg9LxtkK81FhMUui0YuR2E8iUsVhePkh4A==} 1250 | engines: {node: ^14.18.0 || >=16.0.0} 1251 | peerDependencies: 1252 | eslint: '*' 1253 | eslint-plugin-import: '*' 1254 | dependencies: 1255 | debug: 4.3.4 1256 | enhanced-resolve: 5.12.0 1257 | eslint: 8.30.0 1258 | eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.57.1)(eslint-import-resolver-typescript@3.5.4)(eslint@8.30.0) 1259 | get-tsconfig: 4.5.0 1260 | globby: 13.1.3 1261 | is-core-module: 2.11.0 1262 | is-glob: 4.0.3 1263 | synckit: 0.8.5 1264 | transitivePeerDependencies: 1265 | - supports-color 1266 | dev: false 1267 | 1268 | /eslint-module-utils@2.7.4(@typescript-eslint/parser@5.57.1)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.4)(eslint@8.30.0): 1269 | resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} 1270 | engines: {node: '>=4'} 1271 | peerDependencies: 1272 | '@typescript-eslint/parser': '*' 1273 | eslint: '*' 1274 | eslint-import-resolver-node: '*' 1275 | eslint-import-resolver-typescript: '*' 1276 | eslint-import-resolver-webpack: '*' 1277 | peerDependenciesMeta: 1278 | '@typescript-eslint/parser': 1279 | optional: true 1280 | eslint: 1281 | optional: true 1282 | eslint-import-resolver-node: 1283 | optional: true 1284 | eslint-import-resolver-typescript: 1285 | optional: true 1286 | eslint-import-resolver-webpack: 1287 | optional: true 1288 | dependencies: 1289 | '@typescript-eslint/parser': 5.57.1(eslint@8.30.0)(typescript@4.9.4) 1290 | debug: 3.2.7 1291 | eslint: 8.30.0 1292 | eslint-import-resolver-node: 0.3.7 1293 | eslint-import-resolver-typescript: 3.5.4(eslint-plugin-import@2.27.5)(eslint@8.30.0) 1294 | transitivePeerDependencies: 1295 | - supports-color 1296 | dev: false 1297 | 1298 | /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.57.1)(eslint-import-resolver-typescript@3.5.4)(eslint@8.30.0): 1299 | resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} 1300 | engines: {node: '>=4'} 1301 | peerDependencies: 1302 | '@typescript-eslint/parser': '*' 1303 | eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 1304 | peerDependenciesMeta: 1305 | '@typescript-eslint/parser': 1306 | optional: true 1307 | dependencies: 1308 | '@typescript-eslint/parser': 5.57.1(eslint@8.30.0)(typescript@4.9.4) 1309 | array-includes: 3.1.6 1310 | array.prototype.flat: 1.3.1 1311 | array.prototype.flatmap: 1.3.1 1312 | debug: 3.2.7 1313 | doctrine: 2.1.0 1314 | eslint: 8.30.0 1315 | eslint-import-resolver-node: 0.3.7 1316 | eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.57.1)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.4)(eslint@8.30.0) 1317 | has: 1.0.3 1318 | is-core-module: 2.11.0 1319 | is-glob: 4.0.3 1320 | minimatch: 3.1.2 1321 | object.values: 1.1.6 1322 | resolve: 1.22.1 1323 | semver: 6.3.0 1324 | tsconfig-paths: 3.14.2 1325 | transitivePeerDependencies: 1326 | - eslint-import-resolver-typescript 1327 | - eslint-import-resolver-webpack 1328 | - supports-color 1329 | dev: false 1330 | 1331 | /eslint-plugin-jsx-a11y@6.7.1(eslint@8.30.0): 1332 | resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} 1333 | engines: {node: '>=4.0'} 1334 | peerDependencies: 1335 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 1336 | dependencies: 1337 | '@babel/runtime': 7.21.0 1338 | aria-query: 5.1.3 1339 | array-includes: 3.1.6 1340 | array.prototype.flatmap: 1.3.1 1341 | ast-types-flow: 0.0.7 1342 | axe-core: 4.6.3 1343 | axobject-query: 3.1.1 1344 | damerau-levenshtein: 1.0.8 1345 | emoji-regex: 9.2.2 1346 | eslint: 8.30.0 1347 | has: 1.0.3 1348 | jsx-ast-utils: 3.3.3 1349 | language-tags: 1.0.5 1350 | minimatch: 3.1.2 1351 | object.entries: 1.1.6 1352 | object.fromentries: 2.0.6 1353 | semver: 6.3.0 1354 | dev: false 1355 | 1356 | /eslint-plugin-react-hooks@4.6.0(eslint@8.30.0): 1357 | resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} 1358 | engines: {node: '>=10'} 1359 | peerDependencies: 1360 | eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 1361 | dependencies: 1362 | eslint: 8.30.0 1363 | dev: false 1364 | 1365 | /eslint-plugin-react@7.32.2(eslint@8.30.0): 1366 | resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} 1367 | engines: {node: '>=4'} 1368 | peerDependencies: 1369 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 1370 | dependencies: 1371 | array-includes: 3.1.6 1372 | array.prototype.flatmap: 1.3.1 1373 | array.prototype.tosorted: 1.1.1 1374 | doctrine: 2.1.0 1375 | eslint: 8.30.0 1376 | estraverse: 5.3.0 1377 | jsx-ast-utils: 3.3.3 1378 | minimatch: 3.1.2 1379 | object.entries: 1.1.6 1380 | object.fromentries: 2.0.6 1381 | object.hasown: 1.1.2 1382 | object.values: 1.1.6 1383 | prop-types: 15.8.1 1384 | resolve: 2.0.0-next.4 1385 | semver: 6.3.0 1386 | string.prototype.matchall: 4.0.8 1387 | dev: false 1388 | 1389 | /eslint-scope@7.1.1: 1390 | resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} 1391 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1392 | dependencies: 1393 | esrecurse: 4.3.0 1394 | estraverse: 5.3.0 1395 | dev: false 1396 | 1397 | /eslint-utils@3.0.0(eslint@8.30.0): 1398 | resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} 1399 | engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} 1400 | peerDependencies: 1401 | eslint: '>=5' 1402 | dependencies: 1403 | eslint: 8.30.0 1404 | eslint-visitor-keys: 2.1.0 1405 | dev: false 1406 | 1407 | /eslint-visitor-keys@2.1.0: 1408 | resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} 1409 | engines: {node: '>=10'} 1410 | dev: false 1411 | 1412 | /eslint-visitor-keys@3.4.0: 1413 | resolution: {integrity: sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==} 1414 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1415 | dev: false 1416 | 1417 | /eslint@8.30.0: 1418 | resolution: {integrity: sha512-MGADB39QqYuzEGov+F/qb18r4i7DohCDOfatHaxI2iGlPuC65bwG2gxgO+7DkyL38dRFaRH7RaRAgU6JKL9rMQ==} 1419 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1420 | hasBin: true 1421 | dependencies: 1422 | '@eslint/eslintrc': 1.4.1 1423 | '@humanwhocodes/config-array': 0.11.8 1424 | '@humanwhocodes/module-importer': 1.0.1 1425 | '@nodelib/fs.walk': 1.2.8 1426 | ajv: 6.12.6 1427 | chalk: 4.1.2 1428 | cross-spawn: 7.0.3 1429 | debug: 4.3.4 1430 | doctrine: 3.0.0 1431 | escape-string-regexp: 4.0.0 1432 | eslint-scope: 7.1.1 1433 | eslint-utils: 3.0.0(eslint@8.30.0) 1434 | eslint-visitor-keys: 3.4.0 1435 | espree: 9.5.1 1436 | esquery: 1.5.0 1437 | esutils: 2.0.3 1438 | fast-deep-equal: 3.1.3 1439 | file-entry-cache: 6.0.1 1440 | find-up: 5.0.0 1441 | glob-parent: 6.0.2 1442 | globals: 13.20.0 1443 | grapheme-splitter: 1.0.4 1444 | ignore: 5.2.4 1445 | import-fresh: 3.3.0 1446 | imurmurhash: 0.1.4 1447 | is-glob: 4.0.3 1448 | is-path-inside: 3.0.3 1449 | js-sdsl: 4.4.0 1450 | js-yaml: 4.1.0 1451 | json-stable-stringify-without-jsonify: 1.0.1 1452 | levn: 0.4.1 1453 | lodash.merge: 4.6.2 1454 | minimatch: 3.1.2 1455 | natural-compare: 1.4.0 1456 | optionator: 0.9.1 1457 | regexpp: 3.2.0 1458 | strip-ansi: 6.0.1 1459 | strip-json-comments: 3.1.1 1460 | text-table: 0.2.0 1461 | transitivePeerDependencies: 1462 | - supports-color 1463 | dev: false 1464 | 1465 | /espree@9.5.1: 1466 | resolution: {integrity: sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==} 1467 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1468 | dependencies: 1469 | acorn: 8.8.2 1470 | acorn-jsx: 5.3.2(acorn@8.8.2) 1471 | eslint-visitor-keys: 3.4.0 1472 | dev: false 1473 | 1474 | /esquery@1.5.0: 1475 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} 1476 | engines: {node: '>=0.10'} 1477 | dependencies: 1478 | estraverse: 5.3.0 1479 | dev: false 1480 | 1481 | /esrecurse@4.3.0: 1482 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 1483 | engines: {node: '>=4.0'} 1484 | dependencies: 1485 | estraverse: 5.3.0 1486 | dev: false 1487 | 1488 | /estraverse@5.3.0: 1489 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 1490 | engines: {node: '>=4.0'} 1491 | dev: false 1492 | 1493 | /esutils@2.0.3: 1494 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 1495 | engines: {node: '>=0.10.0'} 1496 | dev: false 1497 | 1498 | /fast-deep-equal@3.1.3: 1499 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1500 | dev: false 1501 | 1502 | /fast-glob@3.2.12: 1503 | resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} 1504 | engines: {node: '>=8.6.0'} 1505 | dependencies: 1506 | '@nodelib/fs.stat': 2.0.5 1507 | '@nodelib/fs.walk': 1.2.8 1508 | glob-parent: 5.1.2 1509 | merge2: 1.4.1 1510 | micromatch: 4.0.5 1511 | 1512 | /fast-json-stable-stringify@2.1.0: 1513 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1514 | dev: false 1515 | 1516 | /fast-levenshtein@2.0.6: 1517 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 1518 | dev: false 1519 | 1520 | /fastq@1.15.0: 1521 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} 1522 | dependencies: 1523 | reusify: 1.0.4 1524 | 1525 | /file-entry-cache@6.0.1: 1526 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 1527 | engines: {node: ^10.12.0 || >=12.0.0} 1528 | dependencies: 1529 | flat-cache: 3.0.4 1530 | dev: false 1531 | 1532 | /fill-range@7.0.1: 1533 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 1534 | engines: {node: '>=8'} 1535 | dependencies: 1536 | to-regex-range: 5.0.1 1537 | 1538 | /find-up@5.0.0: 1539 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 1540 | engines: {node: '>=10'} 1541 | dependencies: 1542 | locate-path: 6.0.0 1543 | path-exists: 4.0.0 1544 | dev: false 1545 | 1546 | /flat-cache@3.0.4: 1547 | resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} 1548 | engines: {node: ^10.12.0 || >=12.0.0} 1549 | dependencies: 1550 | flatted: 3.2.7 1551 | rimraf: 3.0.2 1552 | dev: false 1553 | 1554 | /flatted@3.2.7: 1555 | resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} 1556 | dev: false 1557 | 1558 | /follow-redirects@1.15.2: 1559 | resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} 1560 | engines: {node: '>=4.0'} 1561 | peerDependencies: 1562 | debug: '*' 1563 | peerDependenciesMeta: 1564 | debug: 1565 | optional: true 1566 | dev: false 1567 | 1568 | /for-each@0.3.3: 1569 | resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} 1570 | dependencies: 1571 | is-callable: 1.2.7 1572 | dev: false 1573 | 1574 | /form-data@4.0.0: 1575 | resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} 1576 | engines: {node: '>= 6'} 1577 | dependencies: 1578 | asynckit: 0.4.0 1579 | combined-stream: 1.0.8 1580 | mime-types: 2.1.35 1581 | dev: false 1582 | 1583 | /fraction.js@4.2.0: 1584 | resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} 1585 | dev: true 1586 | 1587 | /fs.realpath@1.0.0: 1588 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 1589 | 1590 | /fsevents@2.3.2: 1591 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 1592 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1593 | os: [darwin] 1594 | requiresBuild: true 1595 | dev: true 1596 | optional: true 1597 | 1598 | /function-bind@1.1.1: 1599 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 1600 | 1601 | /function.prototype.name@1.1.5: 1602 | resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} 1603 | engines: {node: '>= 0.4'} 1604 | dependencies: 1605 | call-bind: 1.0.2 1606 | define-properties: 1.2.0 1607 | es-abstract: 1.21.2 1608 | functions-have-names: 1.2.3 1609 | dev: false 1610 | 1611 | /functions-have-names@1.2.3: 1612 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 1613 | dev: false 1614 | 1615 | /get-intrinsic@1.2.0: 1616 | resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==} 1617 | dependencies: 1618 | function-bind: 1.1.1 1619 | has: 1.0.3 1620 | has-symbols: 1.0.3 1621 | dev: false 1622 | 1623 | /get-symbol-description@1.0.0: 1624 | resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} 1625 | engines: {node: '>= 0.4'} 1626 | dependencies: 1627 | call-bind: 1.0.2 1628 | get-intrinsic: 1.2.0 1629 | dev: false 1630 | 1631 | /get-tsconfig@4.5.0: 1632 | resolution: {integrity: sha512-MjhiaIWCJ1sAU4pIQ5i5OfOuHHxVo1oYeNsWTON7jxYkod8pHocXeh+SSbmu5OZZZK73B6cbJ2XADzXehLyovQ==} 1633 | dev: false 1634 | 1635 | /glob-parent@5.1.2: 1636 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1637 | engines: {node: '>= 6'} 1638 | dependencies: 1639 | is-glob: 4.0.3 1640 | 1641 | /glob-parent@6.0.2: 1642 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 1643 | engines: {node: '>=10.13.0'} 1644 | dependencies: 1645 | is-glob: 4.0.3 1646 | 1647 | /glob@7.1.6: 1648 | resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} 1649 | dependencies: 1650 | fs.realpath: 1.0.0 1651 | inflight: 1.0.6 1652 | inherits: 2.0.4 1653 | minimatch: 3.1.2 1654 | once: 1.4.0 1655 | path-is-absolute: 1.0.1 1656 | dev: true 1657 | 1658 | /glob@7.1.7: 1659 | resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} 1660 | dependencies: 1661 | fs.realpath: 1.0.0 1662 | inflight: 1.0.6 1663 | inherits: 2.0.4 1664 | minimatch: 3.1.2 1665 | once: 1.4.0 1666 | path-is-absolute: 1.0.1 1667 | dev: false 1668 | 1669 | /glob@7.2.3: 1670 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 1671 | dependencies: 1672 | fs.realpath: 1.0.0 1673 | inflight: 1.0.6 1674 | inherits: 2.0.4 1675 | minimatch: 3.1.2 1676 | once: 1.4.0 1677 | path-is-absolute: 1.0.1 1678 | dev: false 1679 | 1680 | /globals@13.20.0: 1681 | resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} 1682 | engines: {node: '>=8'} 1683 | dependencies: 1684 | type-fest: 0.20.2 1685 | dev: false 1686 | 1687 | /globalthis@1.0.3: 1688 | resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} 1689 | engines: {node: '>= 0.4'} 1690 | dependencies: 1691 | define-properties: 1.2.0 1692 | dev: false 1693 | 1694 | /globalyzer@0.1.0: 1695 | resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} 1696 | dev: false 1697 | 1698 | /globby@11.1.0: 1699 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 1700 | engines: {node: '>=10'} 1701 | dependencies: 1702 | array-union: 2.1.0 1703 | dir-glob: 3.0.1 1704 | fast-glob: 3.2.12 1705 | ignore: 5.2.4 1706 | merge2: 1.4.1 1707 | slash: 3.0.0 1708 | dev: false 1709 | 1710 | /globby@13.1.3: 1711 | resolution: {integrity: sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==} 1712 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1713 | dependencies: 1714 | dir-glob: 3.0.1 1715 | fast-glob: 3.2.12 1716 | ignore: 5.2.4 1717 | merge2: 1.4.1 1718 | slash: 4.0.0 1719 | dev: false 1720 | 1721 | /globrex@0.1.2: 1722 | resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} 1723 | dev: false 1724 | 1725 | /gopd@1.0.1: 1726 | resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} 1727 | dependencies: 1728 | get-intrinsic: 1.2.0 1729 | dev: false 1730 | 1731 | /graceful-fs@4.2.11: 1732 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 1733 | dev: false 1734 | 1735 | /grapheme-splitter@1.0.4: 1736 | resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} 1737 | dev: false 1738 | 1739 | /has-bigints@1.0.2: 1740 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} 1741 | dev: false 1742 | 1743 | /has-flag@4.0.0: 1744 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1745 | engines: {node: '>=8'} 1746 | dev: false 1747 | 1748 | /has-property-descriptors@1.0.0: 1749 | resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} 1750 | dependencies: 1751 | get-intrinsic: 1.2.0 1752 | dev: false 1753 | 1754 | /has-proto@1.0.1: 1755 | resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} 1756 | engines: {node: '>= 0.4'} 1757 | dev: false 1758 | 1759 | /has-symbols@1.0.3: 1760 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 1761 | engines: {node: '>= 0.4'} 1762 | dev: false 1763 | 1764 | /has-tostringtag@1.0.0: 1765 | resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} 1766 | engines: {node: '>= 0.4'} 1767 | dependencies: 1768 | has-symbols: 1.0.3 1769 | dev: false 1770 | 1771 | /has@1.0.3: 1772 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 1773 | engines: {node: '>= 0.4.0'} 1774 | dependencies: 1775 | function-bind: 1.1.1 1776 | 1777 | /ignore@5.2.4: 1778 | resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} 1779 | engines: {node: '>= 4'} 1780 | dev: false 1781 | 1782 | /import-fresh@3.3.0: 1783 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 1784 | engines: {node: '>=6'} 1785 | dependencies: 1786 | parent-module: 1.0.1 1787 | resolve-from: 4.0.0 1788 | dev: false 1789 | 1790 | /imurmurhash@0.1.4: 1791 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 1792 | engines: {node: '>=0.8.19'} 1793 | dev: false 1794 | 1795 | /inflight@1.0.6: 1796 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1797 | dependencies: 1798 | once: 1.4.0 1799 | wrappy: 1.0.2 1800 | 1801 | /inherits@2.0.4: 1802 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1803 | 1804 | /internal-slot@1.0.5: 1805 | resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} 1806 | engines: {node: '>= 0.4'} 1807 | dependencies: 1808 | get-intrinsic: 1.2.0 1809 | has: 1.0.3 1810 | side-channel: 1.0.4 1811 | dev: false 1812 | 1813 | /is-arguments@1.1.1: 1814 | resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} 1815 | engines: {node: '>= 0.4'} 1816 | dependencies: 1817 | call-bind: 1.0.2 1818 | has-tostringtag: 1.0.0 1819 | dev: false 1820 | 1821 | /is-array-buffer@3.0.2: 1822 | resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} 1823 | dependencies: 1824 | call-bind: 1.0.2 1825 | get-intrinsic: 1.2.0 1826 | is-typed-array: 1.1.10 1827 | dev: false 1828 | 1829 | /is-bigint@1.0.4: 1830 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} 1831 | dependencies: 1832 | has-bigints: 1.0.2 1833 | dev: false 1834 | 1835 | /is-binary-path@2.1.0: 1836 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 1837 | engines: {node: '>=8'} 1838 | dependencies: 1839 | binary-extensions: 2.2.0 1840 | dev: true 1841 | 1842 | /is-boolean-object@1.1.2: 1843 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} 1844 | engines: {node: '>= 0.4'} 1845 | dependencies: 1846 | call-bind: 1.0.2 1847 | has-tostringtag: 1.0.0 1848 | dev: false 1849 | 1850 | /is-callable@1.2.7: 1851 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} 1852 | engines: {node: '>= 0.4'} 1853 | dev: false 1854 | 1855 | /is-core-module@2.11.0: 1856 | resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} 1857 | dependencies: 1858 | has: 1.0.3 1859 | 1860 | /is-date-object@1.0.5: 1861 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} 1862 | engines: {node: '>= 0.4'} 1863 | dependencies: 1864 | has-tostringtag: 1.0.0 1865 | dev: false 1866 | 1867 | /is-docker@2.2.1: 1868 | resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} 1869 | engines: {node: '>=8'} 1870 | hasBin: true 1871 | dev: false 1872 | 1873 | /is-extglob@2.1.1: 1874 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1875 | engines: {node: '>=0.10.0'} 1876 | 1877 | /is-glob@4.0.3: 1878 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1879 | engines: {node: '>=0.10.0'} 1880 | dependencies: 1881 | is-extglob: 2.1.1 1882 | 1883 | /is-map@2.0.2: 1884 | resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} 1885 | dev: false 1886 | 1887 | /is-negative-zero@2.0.2: 1888 | resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} 1889 | engines: {node: '>= 0.4'} 1890 | dev: false 1891 | 1892 | /is-number-object@1.0.7: 1893 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} 1894 | engines: {node: '>= 0.4'} 1895 | dependencies: 1896 | has-tostringtag: 1.0.0 1897 | dev: false 1898 | 1899 | /is-number@7.0.0: 1900 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1901 | engines: {node: '>=0.12.0'} 1902 | 1903 | /is-path-inside@3.0.3: 1904 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 1905 | engines: {node: '>=8'} 1906 | dev: false 1907 | 1908 | /is-regex@1.1.4: 1909 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} 1910 | engines: {node: '>= 0.4'} 1911 | dependencies: 1912 | call-bind: 1.0.2 1913 | has-tostringtag: 1.0.0 1914 | dev: false 1915 | 1916 | /is-set@2.0.2: 1917 | resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} 1918 | dev: false 1919 | 1920 | /is-shared-array-buffer@1.0.2: 1921 | resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} 1922 | dependencies: 1923 | call-bind: 1.0.2 1924 | dev: false 1925 | 1926 | /is-string@1.0.7: 1927 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} 1928 | engines: {node: '>= 0.4'} 1929 | dependencies: 1930 | has-tostringtag: 1.0.0 1931 | dev: false 1932 | 1933 | /is-symbol@1.0.4: 1934 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} 1935 | engines: {node: '>= 0.4'} 1936 | dependencies: 1937 | has-symbols: 1.0.3 1938 | dev: false 1939 | 1940 | /is-typed-array@1.1.10: 1941 | resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} 1942 | engines: {node: '>= 0.4'} 1943 | dependencies: 1944 | available-typed-arrays: 1.0.5 1945 | call-bind: 1.0.2 1946 | for-each: 0.3.3 1947 | gopd: 1.0.1 1948 | has-tostringtag: 1.0.0 1949 | dev: false 1950 | 1951 | /is-weakmap@2.0.1: 1952 | resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} 1953 | dev: false 1954 | 1955 | /is-weakref@1.0.2: 1956 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} 1957 | dependencies: 1958 | call-bind: 1.0.2 1959 | dev: false 1960 | 1961 | /is-weakset@2.0.2: 1962 | resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} 1963 | dependencies: 1964 | call-bind: 1.0.2 1965 | get-intrinsic: 1.2.0 1966 | dev: false 1967 | 1968 | /is-wsl@2.2.0: 1969 | resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} 1970 | engines: {node: '>=8'} 1971 | dependencies: 1972 | is-docker: 2.2.1 1973 | dev: false 1974 | 1975 | /isarray@2.0.5: 1976 | resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} 1977 | dev: false 1978 | 1979 | /isexe@2.0.0: 1980 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1981 | dev: false 1982 | 1983 | /jiti@1.18.2: 1984 | resolution: {integrity: sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==} 1985 | hasBin: true 1986 | dev: true 1987 | 1988 | /js-sdsl@4.4.0: 1989 | resolution: {integrity: sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==} 1990 | dev: false 1991 | 1992 | /js-tokens@4.0.0: 1993 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1994 | dev: false 1995 | 1996 | /js-yaml@4.1.0: 1997 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1998 | hasBin: true 1999 | dependencies: 2000 | argparse: 2.0.1 2001 | dev: false 2002 | 2003 | /json-schema-traverse@0.4.1: 2004 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 2005 | dev: false 2006 | 2007 | /json-stable-stringify-without-jsonify@1.0.1: 2008 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 2009 | dev: false 2010 | 2011 | /json5@1.0.2: 2012 | resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} 2013 | hasBin: true 2014 | dependencies: 2015 | minimist: 1.2.8 2016 | dev: false 2017 | 2018 | /jsx-ast-utils@3.3.3: 2019 | resolution: {integrity: sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==} 2020 | engines: {node: '>=4.0'} 2021 | dependencies: 2022 | array-includes: 3.1.6 2023 | object.assign: 4.1.4 2024 | dev: false 2025 | 2026 | /language-subtag-registry@0.3.22: 2027 | resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} 2028 | dev: false 2029 | 2030 | /language-tags@1.0.5: 2031 | resolution: {integrity: sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==} 2032 | dependencies: 2033 | language-subtag-registry: 0.3.22 2034 | dev: false 2035 | 2036 | /levn@0.4.1: 2037 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 2038 | engines: {node: '>= 0.8.0'} 2039 | dependencies: 2040 | prelude-ls: 1.2.1 2041 | type-check: 0.4.0 2042 | dev: false 2043 | 2044 | /lilconfig@2.1.0: 2045 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} 2046 | engines: {node: '>=10'} 2047 | dev: true 2048 | 2049 | /lines-and-columns@1.2.4: 2050 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 2051 | dev: true 2052 | 2053 | /locate-path@6.0.0: 2054 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 2055 | engines: {node: '>=10'} 2056 | dependencies: 2057 | p-locate: 5.0.0 2058 | dev: false 2059 | 2060 | /lodash.merge@4.6.2: 2061 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 2062 | dev: false 2063 | 2064 | /loose-envify@1.4.0: 2065 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 2066 | hasBin: true 2067 | dependencies: 2068 | js-tokens: 4.0.0 2069 | dev: false 2070 | 2071 | /lru-cache@6.0.0: 2072 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 2073 | engines: {node: '>=10'} 2074 | dependencies: 2075 | yallist: 4.0.0 2076 | dev: false 2077 | 2078 | /lucide-react@0.190.0(react@18.2.0): 2079 | resolution: {integrity: sha512-a3usWP+PuTBOL2Py8jduu1CnHm6eF2FJWt4gLqsu3/tDgJKnQ/Q/3iaNveqPXUYVg9Akn8Gp14ydPf23QaOqhw==} 2080 | peerDependencies: 2081 | react: ^16.5.1 || ^17.0.0 || ^18.0.0 2082 | dependencies: 2083 | react: 18.2.0 2084 | dev: false 2085 | 2086 | /merge2@1.4.1: 2087 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 2088 | engines: {node: '>= 8'} 2089 | 2090 | /micromatch@4.0.5: 2091 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 2092 | engines: {node: '>=8.6'} 2093 | dependencies: 2094 | braces: 3.0.2 2095 | picomatch: 2.3.1 2096 | 2097 | /mime-db@1.52.0: 2098 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 2099 | engines: {node: '>= 0.6'} 2100 | dev: false 2101 | 2102 | /mime-types@2.1.35: 2103 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 2104 | engines: {node: '>= 0.6'} 2105 | dependencies: 2106 | mime-db: 1.52.0 2107 | dev: false 2108 | 2109 | /mini-svg-data-uri@1.4.4: 2110 | resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==} 2111 | hasBin: true 2112 | dev: true 2113 | 2114 | /minimatch@3.1.2: 2115 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 2116 | dependencies: 2117 | brace-expansion: 1.1.11 2118 | 2119 | /minimist@1.2.8: 2120 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 2121 | dev: false 2122 | 2123 | /ms@2.1.2: 2124 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 2125 | dev: false 2126 | 2127 | /ms@2.1.3: 2128 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 2129 | dev: false 2130 | 2131 | /mz@2.7.0: 2132 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 2133 | dependencies: 2134 | any-promise: 1.3.0 2135 | object-assign: 4.1.1 2136 | thenify-all: 1.6.0 2137 | dev: true 2138 | 2139 | /nanoid@3.3.6: 2140 | resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} 2141 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 2142 | hasBin: true 2143 | 2144 | /nanoid@4.0.2: 2145 | resolution: {integrity: sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==} 2146 | engines: {node: ^14 || ^16 || >=18} 2147 | hasBin: true 2148 | dev: false 2149 | 2150 | /natural-compare@1.4.0: 2151 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 2152 | dev: false 2153 | 2154 | /next@13.2.4(react-dom@18.2.0)(react@18.2.0): 2155 | resolution: {integrity: sha512-g1I30317cThkEpvzfXujf0O4wtaQHtDCLhlivwlTJ885Ld+eOgcz7r3TGQzeU+cSRoNHtD8tsJgzxVdYojFssw==} 2156 | engines: {node: '>=14.6.0'} 2157 | hasBin: true 2158 | peerDependencies: 2159 | '@opentelemetry/api': ^1.4.0 2160 | fibers: '>= 3.1.0' 2161 | node-sass: ^6.0.0 || ^7.0.0 2162 | react: ^18.2.0 2163 | react-dom: ^18.2.0 2164 | sass: ^1.3.0 2165 | peerDependenciesMeta: 2166 | '@opentelemetry/api': 2167 | optional: true 2168 | fibers: 2169 | optional: true 2170 | node-sass: 2171 | optional: true 2172 | sass: 2173 | optional: true 2174 | dependencies: 2175 | '@next/env': 13.2.4 2176 | '@swc/helpers': 0.4.14 2177 | caniuse-lite: 1.0.30001474 2178 | postcss: 8.4.14 2179 | react: 18.2.0 2180 | react-dom: 18.2.0(react@18.2.0) 2181 | styled-jsx: 5.1.1(react@18.2.0) 2182 | optionalDependencies: 2183 | '@next/swc-android-arm-eabi': 13.2.4 2184 | '@next/swc-android-arm64': 13.2.4 2185 | '@next/swc-darwin-arm64': 13.2.4 2186 | '@next/swc-darwin-x64': 13.2.4 2187 | '@next/swc-freebsd-x64': 13.2.4 2188 | '@next/swc-linux-arm-gnueabihf': 13.2.4 2189 | '@next/swc-linux-arm64-gnu': 13.2.4 2190 | '@next/swc-linux-arm64-musl': 13.2.4 2191 | '@next/swc-linux-x64-gnu': 13.2.4 2192 | '@next/swc-linux-x64-musl': 13.2.4 2193 | '@next/swc-win32-arm64-msvc': 13.2.4 2194 | '@next/swc-win32-ia32-msvc': 13.2.4 2195 | '@next/swc-win32-x64-msvc': 13.2.4 2196 | transitivePeerDependencies: 2197 | - '@babel/core' 2198 | - babel-plugin-macros 2199 | dev: false 2200 | 2201 | /node-releases@2.0.10: 2202 | resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==} 2203 | dev: true 2204 | 2205 | /normalize-path@3.0.0: 2206 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 2207 | engines: {node: '>=0.10.0'} 2208 | dev: true 2209 | 2210 | /normalize-range@0.1.2: 2211 | resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} 2212 | engines: {node: '>=0.10.0'} 2213 | dev: true 2214 | 2215 | /object-assign@4.1.1: 2216 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 2217 | engines: {node: '>=0.10.0'} 2218 | 2219 | /object-hash@3.0.0: 2220 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} 2221 | engines: {node: '>= 6'} 2222 | dev: true 2223 | 2224 | /object-inspect@1.12.3: 2225 | resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} 2226 | dev: false 2227 | 2228 | /object-is@1.1.5: 2229 | resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} 2230 | engines: {node: '>= 0.4'} 2231 | dependencies: 2232 | call-bind: 1.0.2 2233 | define-properties: 1.2.0 2234 | dev: false 2235 | 2236 | /object-keys@1.1.1: 2237 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 2238 | engines: {node: '>= 0.4'} 2239 | dev: false 2240 | 2241 | /object.assign@4.1.4: 2242 | resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} 2243 | engines: {node: '>= 0.4'} 2244 | dependencies: 2245 | call-bind: 1.0.2 2246 | define-properties: 1.2.0 2247 | has-symbols: 1.0.3 2248 | object-keys: 1.1.1 2249 | dev: false 2250 | 2251 | /object.entries@1.1.6: 2252 | resolution: {integrity: sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==} 2253 | engines: {node: '>= 0.4'} 2254 | dependencies: 2255 | call-bind: 1.0.2 2256 | define-properties: 1.2.0 2257 | es-abstract: 1.21.2 2258 | dev: false 2259 | 2260 | /object.fromentries@2.0.6: 2261 | resolution: {integrity: sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==} 2262 | engines: {node: '>= 0.4'} 2263 | dependencies: 2264 | call-bind: 1.0.2 2265 | define-properties: 1.2.0 2266 | es-abstract: 1.21.2 2267 | dev: false 2268 | 2269 | /object.hasown@1.1.2: 2270 | resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==} 2271 | dependencies: 2272 | define-properties: 1.2.0 2273 | es-abstract: 1.21.2 2274 | dev: false 2275 | 2276 | /object.values@1.1.6: 2277 | resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==} 2278 | engines: {node: '>= 0.4'} 2279 | dependencies: 2280 | call-bind: 1.0.2 2281 | define-properties: 1.2.0 2282 | es-abstract: 1.21.2 2283 | dev: false 2284 | 2285 | /once@1.4.0: 2286 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 2287 | dependencies: 2288 | wrappy: 1.0.2 2289 | 2290 | /open@8.4.2: 2291 | resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} 2292 | engines: {node: '>=12'} 2293 | dependencies: 2294 | define-lazy-prop: 2.0.0 2295 | is-docker: 2.2.1 2296 | is-wsl: 2.2.0 2297 | dev: false 2298 | 2299 | /openai@3.2.1: 2300 | resolution: {integrity: sha512-762C9BNlJPbjjlWZi4WYK9iM2tAVAv0uUp1UmI34vb0CN5T2mjB/qM6RYBmNKMh/dN9fC+bxqPwWJZUTWW052A==} 2301 | dependencies: 2302 | axios: 0.26.1 2303 | form-data: 4.0.0 2304 | transitivePeerDependencies: 2305 | - debug 2306 | dev: false 2307 | 2308 | /optionator@0.9.1: 2309 | resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} 2310 | engines: {node: '>= 0.8.0'} 2311 | dependencies: 2312 | deep-is: 0.1.4 2313 | fast-levenshtein: 2.0.6 2314 | levn: 0.4.1 2315 | prelude-ls: 1.2.1 2316 | type-check: 0.4.0 2317 | word-wrap: 1.2.3 2318 | dev: false 2319 | 2320 | /p-limit@3.1.0: 2321 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 2322 | engines: {node: '>=10'} 2323 | dependencies: 2324 | yocto-queue: 0.1.0 2325 | dev: false 2326 | 2327 | /p-locate@5.0.0: 2328 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 2329 | engines: {node: '>=10'} 2330 | dependencies: 2331 | p-limit: 3.1.0 2332 | dev: false 2333 | 2334 | /parent-module@1.0.1: 2335 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 2336 | engines: {node: '>=6'} 2337 | dependencies: 2338 | callsites: 3.1.0 2339 | dev: false 2340 | 2341 | /path-exists@4.0.0: 2342 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 2343 | engines: {node: '>=8'} 2344 | dev: false 2345 | 2346 | /path-is-absolute@1.0.1: 2347 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 2348 | engines: {node: '>=0.10.0'} 2349 | 2350 | /path-key@3.1.1: 2351 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 2352 | engines: {node: '>=8'} 2353 | dev: false 2354 | 2355 | /path-parse@1.0.7: 2356 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 2357 | 2358 | /path-type@4.0.0: 2359 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 2360 | engines: {node: '>=8'} 2361 | dev: false 2362 | 2363 | /picocolors@1.0.0: 2364 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 2365 | 2366 | /picomatch@2.3.1: 2367 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 2368 | engines: {node: '>=8.6'} 2369 | 2370 | /pify@2.3.0: 2371 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} 2372 | engines: {node: '>=0.10.0'} 2373 | dev: true 2374 | 2375 | /pirates@4.0.5: 2376 | resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} 2377 | engines: {node: '>= 6'} 2378 | dev: true 2379 | 2380 | /postcss-import@14.1.0(postcss@8.4.21): 2381 | resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==} 2382 | engines: {node: '>=10.0.0'} 2383 | peerDependencies: 2384 | postcss: ^8.0.0 2385 | dependencies: 2386 | postcss: 8.4.21 2387 | postcss-value-parser: 4.2.0 2388 | read-cache: 1.0.0 2389 | resolve: 1.22.1 2390 | dev: true 2391 | 2392 | /postcss-js@4.0.1(postcss@8.4.21): 2393 | resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} 2394 | engines: {node: ^12 || ^14 || >= 16} 2395 | peerDependencies: 2396 | postcss: ^8.4.21 2397 | dependencies: 2398 | camelcase-css: 2.0.1 2399 | postcss: 8.4.21 2400 | dev: true 2401 | 2402 | /postcss-load-config@3.1.4(postcss@8.4.21): 2403 | resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} 2404 | engines: {node: '>= 10'} 2405 | peerDependencies: 2406 | postcss: '>=8.0.9' 2407 | ts-node: '>=9.0.0' 2408 | peerDependenciesMeta: 2409 | postcss: 2410 | optional: true 2411 | ts-node: 2412 | optional: true 2413 | dependencies: 2414 | lilconfig: 2.1.0 2415 | postcss: 8.4.21 2416 | yaml: 1.10.2 2417 | dev: true 2418 | 2419 | /postcss-nested@6.0.0(postcss@8.4.21): 2420 | resolution: {integrity: sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==} 2421 | engines: {node: '>=12.0'} 2422 | peerDependencies: 2423 | postcss: ^8.2.14 2424 | dependencies: 2425 | postcss: 8.4.21 2426 | postcss-selector-parser: 6.0.11 2427 | dev: true 2428 | 2429 | /postcss-selector-parser@6.0.11: 2430 | resolution: {integrity: sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==} 2431 | engines: {node: '>=4'} 2432 | dependencies: 2433 | cssesc: 3.0.0 2434 | util-deprecate: 1.0.2 2435 | dev: true 2436 | 2437 | /postcss-value-parser@4.2.0: 2438 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} 2439 | dev: true 2440 | 2441 | /postcss@8.4.14: 2442 | resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} 2443 | engines: {node: ^10 || ^12 || >=14} 2444 | dependencies: 2445 | nanoid: 3.3.6 2446 | picocolors: 1.0.0 2447 | source-map-js: 1.0.2 2448 | dev: false 2449 | 2450 | /postcss@8.4.21: 2451 | resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} 2452 | engines: {node: ^10 || ^12 || >=14} 2453 | dependencies: 2454 | nanoid: 3.3.6 2455 | picocolors: 1.0.0 2456 | source-map-js: 1.0.2 2457 | dev: true 2458 | 2459 | /prelude-ls@1.2.1: 2460 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 2461 | engines: {node: '>= 0.8.0'} 2462 | dev: false 2463 | 2464 | /prop-types@15.8.1: 2465 | resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} 2466 | dependencies: 2467 | loose-envify: 1.4.0 2468 | object-assign: 4.1.1 2469 | react-is: 16.13.1 2470 | dev: false 2471 | 2472 | /punycode@2.3.0: 2473 | resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} 2474 | engines: {node: '>=6'} 2475 | dev: false 2476 | 2477 | /queue-microtask@1.2.3: 2478 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 2479 | 2480 | /quick-lru@5.1.1: 2481 | resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} 2482 | engines: {node: '>=10'} 2483 | dev: true 2484 | 2485 | /react-dom@18.2.0(react@18.2.0): 2486 | resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} 2487 | peerDependencies: 2488 | react: ^18.2.0 2489 | dependencies: 2490 | loose-envify: 1.4.0 2491 | react: 18.2.0 2492 | scheduler: 0.23.0 2493 | dev: false 2494 | 2495 | /react-is@16.13.1: 2496 | resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} 2497 | dev: false 2498 | 2499 | /react@18.2.0: 2500 | resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} 2501 | engines: {node: '>=0.10.0'} 2502 | dependencies: 2503 | loose-envify: 1.4.0 2504 | dev: false 2505 | 2506 | /reactflow@11.7.0(react-dom@18.2.0)(react@18.2.0): 2507 | resolution: {integrity: sha512-bjfJV1iQZ+VwIlvsnd4TbXNs6kuJ5ONscud6fNkF8RY/oU2VUZpdjA3q1zwmgnjmJcIhxuBiBI5VLGajYx/Ozg==} 2508 | peerDependencies: 2509 | react: '>=17' 2510 | react-dom: '>=17' 2511 | dependencies: 2512 | '@reactflow/background': 11.2.0(react-dom@18.2.0)(react@18.2.0) 2513 | '@reactflow/controls': 11.1.11(react-dom@18.2.0)(react@18.2.0) 2514 | '@reactflow/core': 11.7.0(react-dom@18.2.0)(react@18.2.0) 2515 | '@reactflow/minimap': 11.5.0(react-dom@18.2.0)(react@18.2.0) 2516 | '@reactflow/node-resizer': 2.1.0(react-dom@18.2.0)(react@18.2.0) 2517 | '@reactflow/node-toolbar': 1.1.11(react-dom@18.2.0)(react@18.2.0) 2518 | react: 18.2.0 2519 | react-dom: 18.2.0(react@18.2.0) 2520 | transitivePeerDependencies: 2521 | - immer 2522 | dev: false 2523 | 2524 | /read-cache@1.0.0: 2525 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} 2526 | dependencies: 2527 | pify: 2.3.0 2528 | dev: true 2529 | 2530 | /readdirp@3.6.0: 2531 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 2532 | engines: {node: '>=8.10.0'} 2533 | dependencies: 2534 | picomatch: 2.3.1 2535 | dev: true 2536 | 2537 | /regenerator-runtime@0.13.11: 2538 | resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} 2539 | dev: false 2540 | 2541 | /regexp.prototype.flags@1.4.3: 2542 | resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} 2543 | engines: {node: '>= 0.4'} 2544 | dependencies: 2545 | call-bind: 1.0.2 2546 | define-properties: 1.2.0 2547 | functions-have-names: 1.2.3 2548 | dev: false 2549 | 2550 | /regexpp@3.2.0: 2551 | resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} 2552 | engines: {node: '>=8'} 2553 | dev: false 2554 | 2555 | /resolve-from@4.0.0: 2556 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 2557 | engines: {node: '>=4'} 2558 | dev: false 2559 | 2560 | /resolve@1.22.1: 2561 | resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} 2562 | hasBin: true 2563 | dependencies: 2564 | is-core-module: 2.11.0 2565 | path-parse: 1.0.7 2566 | supports-preserve-symlinks-flag: 1.0.0 2567 | 2568 | /resolve@2.0.0-next.4: 2569 | resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} 2570 | hasBin: true 2571 | dependencies: 2572 | is-core-module: 2.11.0 2573 | path-parse: 1.0.7 2574 | supports-preserve-symlinks-flag: 1.0.0 2575 | dev: false 2576 | 2577 | /reusify@1.0.4: 2578 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 2579 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 2580 | 2581 | /rimraf@3.0.2: 2582 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 2583 | hasBin: true 2584 | dependencies: 2585 | glob: 7.2.3 2586 | dev: false 2587 | 2588 | /run-parallel@1.2.0: 2589 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 2590 | dependencies: 2591 | queue-microtask: 1.2.3 2592 | 2593 | /safe-regex-test@1.0.0: 2594 | resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} 2595 | dependencies: 2596 | call-bind: 1.0.2 2597 | get-intrinsic: 1.2.0 2598 | is-regex: 1.1.4 2599 | dev: false 2600 | 2601 | /scheduler@0.23.0: 2602 | resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} 2603 | dependencies: 2604 | loose-envify: 1.4.0 2605 | dev: false 2606 | 2607 | /semver@6.3.0: 2608 | resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} 2609 | hasBin: true 2610 | dev: false 2611 | 2612 | /semver@7.3.8: 2613 | resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} 2614 | engines: {node: '>=10'} 2615 | hasBin: true 2616 | dependencies: 2617 | lru-cache: 6.0.0 2618 | dev: false 2619 | 2620 | /shebang-command@2.0.0: 2621 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 2622 | engines: {node: '>=8'} 2623 | dependencies: 2624 | shebang-regex: 3.0.0 2625 | dev: false 2626 | 2627 | /shebang-regex@3.0.0: 2628 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 2629 | engines: {node: '>=8'} 2630 | dev: false 2631 | 2632 | /side-channel@1.0.4: 2633 | resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} 2634 | dependencies: 2635 | call-bind: 1.0.2 2636 | get-intrinsic: 1.2.0 2637 | object-inspect: 1.12.3 2638 | dev: false 2639 | 2640 | /slash@3.0.0: 2641 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 2642 | engines: {node: '>=8'} 2643 | dev: false 2644 | 2645 | /slash@4.0.0: 2646 | resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} 2647 | engines: {node: '>=12'} 2648 | dev: false 2649 | 2650 | /source-map-js@1.0.2: 2651 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 2652 | engines: {node: '>=0.10.0'} 2653 | 2654 | /stop-iteration-iterator@1.0.0: 2655 | resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} 2656 | engines: {node: '>= 0.4'} 2657 | dependencies: 2658 | internal-slot: 1.0.5 2659 | dev: false 2660 | 2661 | /string.prototype.matchall@4.0.8: 2662 | resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} 2663 | dependencies: 2664 | call-bind: 1.0.2 2665 | define-properties: 1.2.0 2666 | es-abstract: 1.21.2 2667 | get-intrinsic: 1.2.0 2668 | has-symbols: 1.0.3 2669 | internal-slot: 1.0.5 2670 | regexp.prototype.flags: 1.4.3 2671 | side-channel: 1.0.4 2672 | dev: false 2673 | 2674 | /string.prototype.trim@1.2.7: 2675 | resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} 2676 | engines: {node: '>= 0.4'} 2677 | dependencies: 2678 | call-bind: 1.0.2 2679 | define-properties: 1.2.0 2680 | es-abstract: 1.21.2 2681 | dev: false 2682 | 2683 | /string.prototype.trimend@1.0.6: 2684 | resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} 2685 | dependencies: 2686 | call-bind: 1.0.2 2687 | define-properties: 1.2.0 2688 | es-abstract: 1.21.2 2689 | dev: false 2690 | 2691 | /string.prototype.trimstart@1.0.6: 2692 | resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} 2693 | dependencies: 2694 | call-bind: 1.0.2 2695 | define-properties: 1.2.0 2696 | es-abstract: 1.21.2 2697 | dev: false 2698 | 2699 | /strip-ansi@6.0.1: 2700 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 2701 | engines: {node: '>=8'} 2702 | dependencies: 2703 | ansi-regex: 5.0.1 2704 | dev: false 2705 | 2706 | /strip-bom@3.0.0: 2707 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 2708 | engines: {node: '>=4'} 2709 | dev: false 2710 | 2711 | /strip-json-comments@3.1.1: 2712 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 2713 | engines: {node: '>=8'} 2714 | dev: false 2715 | 2716 | /styled-jsx@5.1.1(react@18.2.0): 2717 | resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} 2718 | engines: {node: '>= 12.0.0'} 2719 | peerDependencies: 2720 | '@babel/core': '*' 2721 | babel-plugin-macros: '*' 2722 | react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' 2723 | peerDependenciesMeta: 2724 | '@babel/core': 2725 | optional: true 2726 | babel-plugin-macros: 2727 | optional: true 2728 | dependencies: 2729 | client-only: 0.0.1 2730 | react: 18.2.0 2731 | dev: false 2732 | 2733 | /sucrase@3.31.0: 2734 | resolution: {integrity: sha512-6QsHnkqyVEzYcaiHsOKkzOtOgdJcb8i54x6AV2hDwyZcY9ZyykGZVw6L/YN98xC0evwTP6utsWWrKRaa8QlfEQ==} 2735 | engines: {node: '>=8'} 2736 | hasBin: true 2737 | dependencies: 2738 | commander: 4.1.1 2739 | glob: 7.1.6 2740 | lines-and-columns: 1.2.4 2741 | mz: 2.7.0 2742 | pirates: 4.0.5 2743 | ts-interface-checker: 0.1.13 2744 | dev: true 2745 | 2746 | /supports-color@7.2.0: 2747 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 2748 | engines: {node: '>=8'} 2749 | dependencies: 2750 | has-flag: 4.0.0 2751 | dev: false 2752 | 2753 | /supports-preserve-symlinks-flag@1.0.0: 2754 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 2755 | engines: {node: '>= 0.4'} 2756 | 2757 | /synckit@0.8.5: 2758 | resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} 2759 | engines: {node: ^14.18.0 || >=16.0.0} 2760 | dependencies: 2761 | '@pkgr/utils': 2.3.1 2762 | tslib: 2.5.0 2763 | dev: false 2764 | 2765 | /tailwindcss@3.3.1(postcss@8.4.21): 2766 | resolution: {integrity: sha512-Vkiouc41d4CEq0ujXl6oiGFQ7bA3WEhUZdTgXAhtKxSy49OmKs8rEfQmupsfF0IGW8fv2iQkp1EVUuapCFrZ9g==} 2767 | engines: {node: '>=12.13.0'} 2768 | hasBin: true 2769 | peerDependencies: 2770 | postcss: ^8.0.9 2771 | dependencies: 2772 | arg: 5.0.2 2773 | chokidar: 3.5.3 2774 | color-name: 1.1.4 2775 | didyoumean: 1.2.2 2776 | dlv: 1.1.3 2777 | fast-glob: 3.2.12 2778 | glob-parent: 6.0.2 2779 | is-glob: 4.0.3 2780 | jiti: 1.18.2 2781 | lilconfig: 2.1.0 2782 | micromatch: 4.0.5 2783 | normalize-path: 3.0.0 2784 | object-hash: 3.0.0 2785 | picocolors: 1.0.0 2786 | postcss: 8.4.21 2787 | postcss-import: 14.1.0(postcss@8.4.21) 2788 | postcss-js: 4.0.1(postcss@8.4.21) 2789 | postcss-load-config: 3.1.4(postcss@8.4.21) 2790 | postcss-nested: 6.0.0(postcss@8.4.21) 2791 | postcss-selector-parser: 6.0.11 2792 | postcss-value-parser: 4.2.0 2793 | quick-lru: 5.1.1 2794 | resolve: 1.22.1 2795 | sucrase: 3.31.0 2796 | transitivePeerDependencies: 2797 | - ts-node 2798 | dev: true 2799 | 2800 | /tapable@2.2.1: 2801 | resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} 2802 | engines: {node: '>=6'} 2803 | dev: false 2804 | 2805 | /text-table@0.2.0: 2806 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 2807 | dev: false 2808 | 2809 | /thenify-all@1.6.0: 2810 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 2811 | engines: {node: '>=0.8'} 2812 | dependencies: 2813 | thenify: 3.3.1 2814 | dev: true 2815 | 2816 | /thenify@3.3.1: 2817 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 2818 | dependencies: 2819 | any-promise: 1.3.0 2820 | dev: true 2821 | 2822 | /tiny-glob@0.2.9: 2823 | resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} 2824 | dependencies: 2825 | globalyzer: 0.1.0 2826 | globrex: 0.1.2 2827 | dev: false 2828 | 2829 | /to-regex-range@5.0.1: 2830 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 2831 | engines: {node: '>=8.0'} 2832 | dependencies: 2833 | is-number: 7.0.0 2834 | 2835 | /ts-interface-checker@0.1.13: 2836 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 2837 | dev: true 2838 | 2839 | /tsconfig-paths@3.14.2: 2840 | resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} 2841 | dependencies: 2842 | '@types/json5': 0.0.29 2843 | json5: 1.0.2 2844 | minimist: 1.2.8 2845 | strip-bom: 3.0.0 2846 | dev: false 2847 | 2848 | /tslib@1.14.1: 2849 | resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} 2850 | dev: false 2851 | 2852 | /tslib@2.5.0: 2853 | resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} 2854 | dev: false 2855 | 2856 | /tsutils@3.21.0(typescript@4.9.4): 2857 | resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} 2858 | engines: {node: '>= 6'} 2859 | peerDependencies: 2860 | typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' 2861 | dependencies: 2862 | tslib: 1.14.1 2863 | typescript: 4.9.4 2864 | dev: false 2865 | 2866 | /type-check@0.4.0: 2867 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 2868 | engines: {node: '>= 0.8.0'} 2869 | dependencies: 2870 | prelude-ls: 1.2.1 2871 | dev: false 2872 | 2873 | /type-fest@0.20.2: 2874 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 2875 | engines: {node: '>=10'} 2876 | dev: false 2877 | 2878 | /typed-array-length@1.0.4: 2879 | resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} 2880 | dependencies: 2881 | call-bind: 1.0.2 2882 | for-each: 0.3.3 2883 | is-typed-array: 1.1.10 2884 | dev: false 2885 | 2886 | /typescript@4.9.4: 2887 | resolution: {integrity: sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==} 2888 | engines: {node: '>=4.2.0'} 2889 | hasBin: true 2890 | dev: false 2891 | 2892 | /unbox-primitive@1.0.2: 2893 | resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} 2894 | dependencies: 2895 | call-bind: 1.0.2 2896 | has-bigints: 1.0.2 2897 | has-symbols: 1.0.3 2898 | which-boxed-primitive: 1.0.2 2899 | dev: false 2900 | 2901 | /update-browserslist-db@1.0.10(browserslist@4.21.5): 2902 | resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} 2903 | hasBin: true 2904 | peerDependencies: 2905 | browserslist: '>= 4.21.0' 2906 | dependencies: 2907 | browserslist: 4.21.5 2908 | escalade: 3.1.1 2909 | picocolors: 1.0.0 2910 | dev: true 2911 | 2912 | /uri-js@4.4.1: 2913 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 2914 | dependencies: 2915 | punycode: 2.3.0 2916 | dev: false 2917 | 2918 | /use-sync-external-store@1.2.0(react@18.2.0): 2919 | resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} 2920 | peerDependencies: 2921 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 2922 | dependencies: 2923 | react: 18.2.0 2924 | dev: false 2925 | 2926 | /util-deprecate@1.0.2: 2927 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 2928 | dev: true 2929 | 2930 | /which-boxed-primitive@1.0.2: 2931 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} 2932 | dependencies: 2933 | is-bigint: 1.0.4 2934 | is-boolean-object: 1.1.2 2935 | is-number-object: 1.0.7 2936 | is-string: 1.0.7 2937 | is-symbol: 1.0.4 2938 | dev: false 2939 | 2940 | /which-collection@1.0.1: 2941 | resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} 2942 | dependencies: 2943 | is-map: 2.0.2 2944 | is-set: 2.0.2 2945 | is-weakmap: 2.0.1 2946 | is-weakset: 2.0.2 2947 | dev: false 2948 | 2949 | /which-typed-array@1.1.9: 2950 | resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} 2951 | engines: {node: '>= 0.4'} 2952 | dependencies: 2953 | available-typed-arrays: 1.0.5 2954 | call-bind: 1.0.2 2955 | for-each: 0.3.3 2956 | gopd: 1.0.1 2957 | has-tostringtag: 1.0.0 2958 | is-typed-array: 1.1.10 2959 | dev: false 2960 | 2961 | /which@2.0.2: 2962 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 2963 | engines: {node: '>= 8'} 2964 | hasBin: true 2965 | dependencies: 2966 | isexe: 2.0.0 2967 | dev: false 2968 | 2969 | /word-wrap@1.2.3: 2970 | resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} 2971 | engines: {node: '>=0.10.0'} 2972 | dev: false 2973 | 2974 | /wrappy@1.0.2: 2975 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 2976 | 2977 | /yallist@4.0.0: 2978 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 2979 | dev: false 2980 | 2981 | /yaml@1.10.2: 2982 | resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} 2983 | engines: {node: '>= 6'} 2984 | dev: true 2985 | 2986 | /yocto-queue@0.1.0: 2987 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 2988 | engines: {node: '>=10'} 2989 | dev: false 2990 | 2991 | /zustand@4.3.7(react@18.2.0): 2992 | resolution: {integrity: sha512-dY8ERwB9Nd21ellgkBZFhudER8KVlelZm8388B5nDAXhO/+FZDhYMuRnqDgu5SYyRgz/iaf8RKnbUs/cHfOGlQ==} 2993 | engines: {node: '>=12.7.0'} 2994 | peerDependencies: 2995 | immer: '>=9.0' 2996 | react: '>=16.8' 2997 | peerDependenciesMeta: 2998 | immer: 2999 | optional: true 3000 | react: 3001 | optional: true 3002 | dependencies: 3003 | react: 18.2.0 3004 | use-sync-external-store: 1.2.0(react@18.2.0) 3005 | dev: false 3006 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/abielzulio/flowchat/f9514cb8e0918cf8237e816486fc8ca3e62ef721/public/favicon.ico -------------------------------------------------------------------------------- /reactflow.options.ts: -------------------------------------------------------------------------------- 1 | import { FitViewOptions, Node, NodeTypes } from "reactflow" 2 | import "reactflow/dist/style.css" 3 | 4 | import Chat from "components/Chat" 5 | import type { IChat } from "type" 6 | 7 | export const baseChat: Node = { 8 | id: "", 9 | data: { question: "", answer: "" }, 10 | dragHandle: ".drag-handle", 11 | selected: false, 12 | type: "chat", 13 | position: { x: 0, y: 0 }, 14 | } 15 | 16 | export const nodeTypes: NodeTypes = { 17 | chat: Chat, 18 | } 19 | 20 | export const fitViewOptions: FitViewOptions = { 21 | padding: 10, 22 | minZoom: 1, 23 | maxZoom: 2, 24 | } 25 | -------------------------------------------------------------------------------- /styles/globals.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | /* https://github.com/mvllow/tailwindcss-safe-area */ 6 | @layer base { 7 | html { 8 | height: -webkit-fill-available; 9 | } 10 | 11 | body { 12 | height: -webkit-fill-available; 13 | } 14 | 15 | #root { 16 | height: -webkit-fill-available; 17 | } 18 | 19 | .h-screen-safe { 20 | height: calc( 21 | 100vh - (env(safe-area-inset-top) + env(safe-area-inset-bottom)) 22 | ); 23 | height: -webkit-fill-available; 24 | } 25 | } 26 | 27 | *, 28 | *::before, 29 | *::after { 30 | margin: 0; 31 | padding: 0; 32 | box-sizing: border-box; 33 | } 34 | 35 | :where([hidden]:not([hidden="until-found"])) { 36 | display: none !important; 37 | } 38 | 39 | :where(html) { 40 | -webkit-text-size-adjust: none; 41 | color-scheme: dark light; 42 | } 43 | 44 | @supports not (min-block-size: 100dvb) { 45 | :where(html) { 46 | block-size: 100%; 47 | } 48 | } 49 | 50 | @media (prefers-reduced-motion: no-preference) { 51 | :where(html:focus-within) { 52 | scroll-behavior: smooth; 53 | } 54 | } 55 | 56 | :where(body) { 57 | block-size: 100%; 58 | block-size: 100dvb; 59 | line-height: 1.5; 60 | font-family: system-ui, sans-serif; 61 | -webkit-font-smoothing: antialiased; 62 | } 63 | 64 | :where(input, button, textarea, select) { 65 | font: inherit; 66 | color: inherit; 67 | } 68 | 69 | :where(textarea) { 70 | resize: vertical; 71 | resize: block; 72 | } 73 | 74 | :where(button, label, select, summary, [role="button"], [role="option"]) { 75 | cursor: pointer; 76 | } 77 | 78 | :where(:disabled) { 79 | cursor: not-allowed; 80 | } 81 | 82 | :where(label:has(> input:disabled), label:has(+ input:disabled)) { 83 | cursor: not-allowed; 84 | } 85 | 86 | :where(button) { 87 | border-style: solid; 88 | } 89 | 90 | :where(a) { 91 | text-underline-offset: 0.2ex; 92 | } 93 | 94 | :where(ul, ol) { 95 | list-style: none; 96 | } 97 | 98 | :where(img, svg, video, canvas, audio, iframe, embed, object) { 99 | display: block; 100 | } 101 | 102 | :where(img, picture, svg) { 103 | max-inline-size: 100%; 104 | block-size: auto; 105 | } 106 | 107 | :where(p, h1, h2, h3, h4, h5, h6) { 108 | overflow-wrap: break-word; 109 | } 110 | 111 | :where(h1, h2, h3) { 112 | line-height: calc(1em + 0.5rem); 113 | } 114 | 115 | :where(hr) { 116 | border: none; 117 | border-block-start: 1px solid; 118 | color: inherit; 119 | block-size: 0; 120 | overflow: visible; 121 | } 122 | 123 | :where(:focus-visible) { 124 | outline: 2px solid var(--focus-color, Highlight); 125 | outline-offset: 2px; 126 | } 127 | 128 | :where( 129 | .visually-hidden:not(:focus, :active, :focus-within, .not-visually-hidden) 130 | ) { 131 | clip-path: inset(50%) !important; 132 | height: 1px !important; 133 | width: 1px !important; 134 | overflow: hidden !important; 135 | position: absolute !important; 136 | white-space: nowrap !important; 137 | border: 0 !important; 138 | } 139 | -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | module.exports = { 3 | content: [ 4 | "./pages/**/*.{js,ts,jsx,tsx}", 5 | "./components/**/*.{js,ts,jsx,tsx}", 6 | ], 7 | theme: { 8 | extend: { 9 | colors: { 10 | black: "#171717", 11 | white: "#FCFCFC", 12 | }, 13 | }, 14 | }, 15 | plugins: [require("@tailwindcss/forms")], 16 | } 17 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "lib": ["dom", "dom.iterable", "esnext"], 5 | "allowJs": true, 6 | "skipLibCheck": true, 7 | "strict": true, 8 | "forceConsistentCasingInFileNames": true, 9 | "noEmit": true, 10 | "esModuleInterop": true, 11 | "module": "esnext", 12 | "moduleResolution": "node", 13 | "resolveJsonModule": true, 14 | "isolatedModules": true, 15 | "jsx": "preserve", 16 | "incremental": true, 17 | "baseUrl": "." 18 | }, 19 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], 20 | "exclude": ["node_modules"] 21 | } 22 | -------------------------------------------------------------------------------- /type.d.ts: -------------------------------------------------------------------------------- 1 | export interface IChat { 2 | question?: string 3 | answer?: string 4 | } 5 | -------------------------------------------------------------------------------- /types.d.ts: -------------------------------------------------------------------------------- 1 | export type Response = { status?: number; message?: string } | T 2 | -------------------------------------------------------------------------------- /utils.ts: -------------------------------------------------------------------------------- 1 | import { useOpenAI } from "libs/openai" 2 | import { ChatCompletionRequestMessage } from "openai" 3 | import { Edge, Node } from "reactflow" 4 | import { IChat } from "type" 5 | 6 | type IMessages = ChatCompletionRequestMessage 7 | 8 | export const nodeChainTransformer = ( 9 | nodes: Node[], 10 | edges: Edge[], 11 | targetNodeId: string 12 | ): IMessages[] => { 13 | const chain: IMessages[] = [] 14 | const incomingEdges = edges.reduce((map, edge) => { 15 | if (!map.has(edge.target)) { 16 | map.set(edge.target, []) 17 | } 18 | map.get(edge.target).push(edge) 19 | return map 20 | }, new Map()) 21 | let currentNodes = [nodes.find((node) => node.id === targetNodeId)] 22 | while (currentNodes.length > 0) { 23 | const nextNodes = [] 24 | for (const currentNode of currentNodes) { 25 | const { question, answer } = currentNode?.data ?? {} 26 | if (answer !== undefined) { 27 | chain.push({ 28 | content: answer, 29 | role: "assistant", 30 | }) 31 | } 32 | if (question !== undefined) { 33 | chain.push({ 34 | content: question, 35 | role: "user", 36 | }) 37 | } 38 | const incoming = incomingEdges.get(currentNode?.id) 39 | if (incoming) { 40 | for (const edge of incoming) { 41 | const sourceNode = nodes.find((node) => node.id === edge.source) 42 | if (sourceNode) { 43 | nextNodes.push(sourceNode) 44 | } 45 | } 46 | } 47 | } 48 | currentNodes = nextNodes 49 | } 50 | return chain.reverse() 51 | } 52 | 53 | export const askAI = async ( 54 | messages: IMessages[], 55 | question: string 56 | ): Promise => { 57 | const openai = useOpenAI() 58 | 59 | let response = "" 60 | 61 | await openai 62 | .createChatCompletion({ 63 | model: "gpt-3.5-turbo", 64 | messages: [...messages, { content: question, role: "user" }], 65 | }) 66 | .then((res) => { 67 | response = 68 | res.data.choices.map((choice) => choice.message)[0]?.content ?? "" 69 | }) 70 | .catch((err) => { 71 | console.error(err) 72 | }) 73 | 74 | return response 75 | } 76 | --------------------------------------------------------------------------------