diff --git a/.dev.vars.example b/.dev.vars.example index 47c05003d..3fa3b3acc 100644 --- a/.dev.vars.example +++ b/.dev.vars.example @@ -28,6 +28,9 @@ BETTER_AUTH_URL="http://localhost:3000" # AI_GATEWAY_API_KEY="" # Autumn usage analytics. When unset, usage tracking is skipped. +# Sandbox key — staging and dev only. Production sets AUTUMN_PROD_SECRET_KEY +# instead, and never this, so a misconfigured deploy skips tracking rather than +# reporting into the wrong Autumn environment. # AUTUMN_SECRET_KEY="" # Web search and URL/PDF extraction (Firecrawl). diff --git a/.gitignore b/.gitignore index 49ea752a6..0fdf759c1 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ dist-ssr .tanstack .content-collections/ .wrangler +*.cpuprofile .tmp tmp .output @@ -30,3 +31,6 @@ references .dev.vars* !.dev.vars.example !.env.example + +# Generated by `atmn pull`; declares @useautumn/sdk types we do not use. +@useautumn-sdk.d.ts diff --git a/LICENSE b/LICENSE index 0ad25db4b..9da7d45bf 100644 --- a/LICENSE +++ b/LICENSE @@ -1,661 +1,21 @@ - GNU AFFERO GENERAL PUBLIC LICENSE - Version 3, 19 November 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU Affero General Public License is a free, copyleft license for -software and other kinds of works, specifically designed to ensure -cooperation with the community in the case of network server software. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -our General Public Licenses are intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - Developers that use our General Public Licenses protect your rights -with two steps: (1) assert copyright on the software, and (2) offer -you this License which gives you legal permission to copy, distribute -and/or modify the software. - - A secondary benefit of defending all users' freedom is that -improvements made in alternate versions of the program, if they -receive widespread use, become available for other developers to -incorporate. Many developers of free software are heartened and -encouraged by the resulting cooperation. However, in the case of -software used on network servers, this result may fail to come about. -The GNU General Public License permits making a modified version and -letting the public access it on a server without ever releasing its -source code to the public. - - The GNU Affero General Public License is designed specifically to -ensure that, in such cases, the modified source code becomes available -to the community. It requires the operator of a network server to -provide the source code of the modified version running there to the -users of that server. Therefore, public use of a modified version, on -a publicly accessible server, gives the public access to the source -code of the modified version. - - An older license, called the Affero General Public License and -published by Affero, was designed to accomplish similar goals. This is -a different license, not a version of the Affero GPL, but Affero has -released a new version of the Affero GPL which permits relicensing under -this license. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU Affero General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Remote Network Interaction; Use with the GNU General Public License. - - Notwithstanding any other provision of this License, if you modify the -Program, your modified version must prominently offer all users -interacting with it remotely through a computer network (if your version -supports such interaction) an opportunity to receive the Corresponding -Source of your version by providing access to the Corresponding Source -from a network server at no charge, through some standard or customary -means of facilitating copying of software. This Corresponding Source -shall include the Corresponding Source for any work covered by version 3 -of the GNU General Public License that is incorporated pursuant to the -following paragraph. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the work with which it is combined will remain governed by version -3 of the GNU General Public License. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU Affero General Public License from time to time. Such new versions -will be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU Affero General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU Affero General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU Affero General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published - by the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If your software can interact with users remotely through a computer -network, you should also make sure that it provides a way for users to -get its source. For example, if your program is a web application, its -interface could display a "Source" link that leads users to an archive -of the code. There are many ways you could offer source, and different -solutions will be better for different programs; see section 13 for the -specific requirements. - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU AGPL, see -. +MIT License + +Copyright (c) 2026 ThinkEx Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/autumn.config.ts b/autumn.config.ts new file mode 100644 index 000000000..cd6eec996 --- /dev/null +++ b/autumn.config.ts @@ -0,0 +1,124 @@ +import { feature, item, plan } from "atmn"; + +// Metered per message and per upload, one unit each — not by credit weight. The +// `cost` ladder in features/workspaces/ai/models.ts prices models against each +// other for routing, and deliberately does not reach allowances: students are +// not developers, and a balance they have to do arithmetic against is the thing +// that makes people ration instead of use the product. The two tiers are how +// model cost is reflected, which is as much arithmetic as anyone should face. + +// Features +export const standardMessages = feature({ + id: "standard_messages", + name: "Standard Messages", + type: "metered", + consumable: true, +}); + +export const premiumMessages = feature({ + id: "premium_messages", + name: "Premium Messages", + type: "metered", + consumable: true, +}); + +// Extraction is billed per page by LlamaParse, but metered here per upload: +// nobody knows a PDF's page count before uploading, and a balance that drops by +// an unpredictable amount per upload is exactly the anxiety we're avoiding. +// Median upload is 5 pages, p90 is 31, so uploads track cost closely enough. +// +// Named "file uploads" rather than "documents" on purpose — Document is already +// a workspace item type, and two meanings of the word would confuse both users +// and us. +export const fileUploads = feature({ + id: "file_uploads", + name: "File uploads", + type: "metered", + consumable: true, +}); + +// Plans +export const free = plan({ + id: "free", + name: "Free", + autoEnable: true, + items: [ + item({ + featureId: standardMessages.id, + included: 500, + reset: { + interval: "month", + }, + }), + // A taste of premium rather than a wall in front of it. 30 messages is + // roughly $0.90 of cost and it is the upgrade prompt. + item({ + featureId: premiumMessages.id, + included: 30, + reset: { + interval: "month", + }, + }), + // Matches NotebookLM's free 50 sources on purpose. Being stingier than the + // free competitor students already have open in a tab is a worse problem + // than eating the extraction cost. + item({ + featureId: fileUploads.id, + included: 50, + reset: { + interval: "month", + }, + }), + ], +}); + +export const pro = plan({ + id: "pro", + name: "Pro", + price: { + amount: 7.99, + interval: "month", + }, + items: [ + item({ + featureId: standardMessages.id, + included: 3000, + reset: { + interval: "month", + }, + }), + item({ + featureId: premiumMessages.id, + included: 400, + reset: { + interval: "month", + }, + }), + item({ + featureId: fileUploads.id, + included: 500, + reset: { + interval: "month", + }, + }), + ], +}); + +// A premium message costs ~$0.031, so 100 of them cost ~$3.14 against $8. +export const premiumCreditsAddOn = plan({ + id: "premium_credits_add_on", + name: "Premium Credits Add-on", + addOn: true, + items: [ + item({ + featureId: premiumMessages.id, + included: 0, + price: { + amount: 8, + billingUnits: 100, + billingMethod: "prepaid", + interval: "one_off", + }, + }), + ], +}); diff --git a/docs/ENVIRONMENT.md b/docs/ENVIRONMENT.md index 8544d73f6..4fbc55e6f 100644 --- a/docs/ENVIRONMENT.md +++ b/docs/ENVIRONMENT.md @@ -37,7 +37,8 @@ The dev server boots and lets you sign in with just the two variables below. Eve | --- | --- | --- | | `GOOGLE_CLIENT_ID` / `GOOGLE_CLIENT_SECRET` | Google sign-in | Google sign-in fails; use **Continue as guest** (shown in local dev) | | `AI_GATEWAY_API_KEY` | AI chat / title generation (Vercel AI Gateway) | AI calls error when invoked | -| `AUTUMN_SECRET_KEY` | Autumn usage analytics for completed AI chat messages | Usage tracking is skipped | +| `AUTUMN_SECRET_KEY` | Autumn usage analytics for completed AI chat messages, against the Autumn **sandbox**. Set in staging and dev only | Usage tracking is skipped | +| `AUTUMN_PROD_SECRET_KEY` | Same, against Autumn **production**. Set in production only, and takes precedence when both are present | Falls back to `AUTUMN_SECRET_KEY` | | `FIRECRAWL_API_KEY` | Web search + URL/PDF extraction (Firecrawl) | Those calls error when invoked | | `TCC_API_KEY` | Agent observability export (The Context Company) | AI chat still works; TCC export is skipped | | `LLAMA_CLOUD_API_KEY` | Document extraction (LlamaParse) | Those calls error when invoked | diff --git a/package.json b/package.json index 18363585b..63838317c 100644 --- a/package.json +++ b/package.json @@ -38,10 +38,10 @@ "wrangler": "wrangler" }, "dependencies": { - "@ai-sdk/react": "^4.0.40", + "@ai-sdk/react": "^4.0.51", "@base-ui/react": "^1.6.0", "@better-auth/oauth-provider": "1.6.25", - "@cloudflare/codemode": "^0.5.0", + "@cloudflare/codemode": "^0.5.1", "@cloudflare/containers": "^0.3.7", "@cloudflare/sandbox": "0.12.3", "@cloudflare/shell": "^0.4.3", @@ -69,8 +69,8 @@ "@embedpdf/plugin-viewport": "^2.14.4", "@embedpdf/plugin-zoom": "^2.14.4", "@fontsource-variable/geist": "5.3.0", - "@modelcontextprotocol/sdk": "^1.29.0", - "@posthog/ai": "^8.4.0", + "@modelcontextprotocol/sdk": "1.29.0", + "@posthog/ai": "^8.6.0", "@posthog/mcp": "0.10.1", "@posthog/react": "^1.10.3", "@posthog/rollup-plugin": "^1.4.7", @@ -83,45 +83,45 @@ "@tanstack/react-router-devtools": "1.167.0", "@tanstack/react-router-ssr-query": "1.167.1", "@tanstack/react-start": "1.168.32", - "@tiptap/core": "^3.29.1", - "@tiptap/extension-character-count": "^3.29.1", - "@tiptap/extension-code-block": "^3.29.1", - "@tiptap/extension-collaboration": "^3.29.1", - "@tiptap/extension-collaboration-caret": "^3.29.1", - "@tiptap/extension-highlight": "^3.29.1", - "@tiptap/extension-horizontal-rule": "^3.29.1", - "@tiptap/extension-link": "^3.29.1", - "@tiptap/extension-list": "^3.29.1", - "@tiptap/extension-mathematics": "^3.29.1", - "@tiptap/extension-placeholder": "^3.29.1", - "@tiptap/extension-table": "^3.29.1", - "@tiptap/extension-text-align": "^3.29.1", - "@tiptap/extension-underline": "^3.29.1", - "@tiptap/markdown": "^3.29.1", - "@tiptap/pm": "^3.29.1", - "@tiptap/react": "^3.29.1", - "@tiptap/starter-kit": "^3.29.1", + "@tiptap/core": "^3.29.2", + "@tiptap/extension-character-count": "^3.29.2", + "@tiptap/extension-code-block": "^3.29.2", + "@tiptap/extension-collaboration": "^3.29.2", + "@tiptap/extension-collaboration-caret": "^3.29.2", + "@tiptap/extension-highlight": "^3.29.2", + "@tiptap/extension-horizontal-rule": "^3.29.2", + "@tiptap/extension-link": "^3.29.2", + "@tiptap/extension-list": "^3.29.2", + "@tiptap/extension-mathematics": "^3.29.2", + "@tiptap/extension-placeholder": "^3.29.2", + "@tiptap/extension-table": "^3.29.2", + "@tiptap/extension-text-align": "^3.29.2", + "@tiptap/extension-underline": "^3.29.2", + "@tiptap/markdown": "^3.29.2", + "@tiptap/pm": "^3.29.2", + "@tiptap/react": "^3.29.2", + "@tiptap/starter-kit": "^3.29.2", "agents": "^0.19.0", - "ai": "^7.0.37", - "autumn-js": "^1.2.44", + "ai": "^7.0.48", + "autumn-js": "^1.2.45", "aws4fetch": "^1.0.20", "better-auth": "^1.6.25", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", - "drizzle-kit": "^0.31.9", - "drizzle-orm": "^0.45.1", + "drizzle-kit": "^0.31.10", + "drizzle-orm": "^0.45.2", "hast-util-to-string": "^3.0.1", "katex": "^0.17.0", "linkedom": "0.18.13", - "lucide-react": "^1.27.0", + "lucide-react": "^1.28.0", "matter-js": "^0.20.0", "mermaid": "11.16.0", - "motion": "^12.42.2", + "motion": "^12.43.0", "nanoid": "^6.0.0", "papaparse": "^5.5.4", - "partyserver": "^0.5.8", - "posthog-js": "^1.407.3", - "posthog-node": "^5.46.1", + "partyserver": "^0.5.9", + "posthog-js": "^1.409.5", + "posthog-node": "^5.47.3", "react": "^19.2.8", "react-dom": "^19.2.8", "react-resizable-panels": "^4.12.2", @@ -131,26 +131,26 @@ "remark-gfm": "^4.0.1", "remark-parse": "^11.0.0", "remark-rehype": "^11.1.2", - "shadcn": "^4.15.0", - "shiki": "^4.3.1", + "shadcn": "^4.16.1", + "shiki": "^4.4.1", "sonner": "^2.0.7", - "streamdown": "^2.3.0", - "tailwind-merge": "^3.0.2", - "tw-animate-css": "^1.3.6", + "streamdown": "^2.5.0", + "tailwind-merge": "^3.6.0", + "tw-animate-css": "^1.4.0", "unified": "^11.0.5", "unist-util-visit": "^5.1.0", "y-indexeddb": "9.0.12", "y-partyserver": "^2.2.0", "y-protocols": "^1.0.7", "yjs": "^13.6.31", - "zod": "^4.3.6", + "zod": "^4.4.3", "zustand": "^5.0.14" }, "devDependencies": { "@babel/plugin-proposal-decorators": "^8.0.2", - "@cloudflare/vite-plugin": "^1.47.0", + "@cloudflare/vite-plugin": "^1.50.0", "@cloudflare/vitest-pool-workers": "^0.18.8", - "@cloudflare/workers-types": "^5.20260727.1", + "@cloudflare/workers-types": "^5.20260801.1", "@commitlint/cli": "^21.2.1", "@commitlint/config-conventional": "^21.2.0", "@rolldown/plugin-babel": "^0.2.3", @@ -161,25 +161,26 @@ "@tanstack/react-devtools": "0.10.9", "@tanstack/react-query-devtools": "5.101.4", "@tanstack/router-plugin": "^1.168.23", - "@tiptap/y-tiptap": "^3.0.7", + "@tiptap/y-tiptap": "^3.0.8", "@types/matter-js": "^0.20.2", - "@types/node": "^26.1.1", + "@types/node": "^26.1.2", "@types/papaparse": "^5.5.2", - "@types/react": "^19.2.17", - "@types/react-dom": "^19.2.0", - "@vitejs/plugin-react": "^6.0.4", - "@voidzero-dev/vite-plus-core": "^0.2.6", + "@types/react": "^19.2.18", + "@types/react-dom": "^19.2.4", + "@vitejs/plugin-react": "^6.0.5", + "@voidzero-dev/vite-plus-core": "^0.2.7", + "atmn": "^1.1.16", "babel-plugin-react-compiler": "^1.0.0", - "knip": "^6.17.1", + "knip": "^6.31.0", "react-doctor": "0.6.0", "tailwindcss": "^4.3.3", "tsx": "^4.23.1", - "typescript": "^6.0.2", - "vite": "^8.0.16", + "typescript": "^6.0.3", + "vite": "npm:@voidzero-dev/vite-plus-core@0.2.2", "vite-bundle-analyzer": "^1.3.9", - "vite-plus": "^0.2.6", + "vite-plus": "^0.2.7", "vitest": "4.1.10", - "wrangler": "^4.114.0" + "wrangler": "^4.118.0" }, "engines": { "node": ">=24.11.0 <25" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4295166b2..4e57b6c17 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,7 +5,8 @@ settings: excludeLinksFromLockfile: false overrides: - dompurify: 3.4.11 + dompurify: 3.4.12 + '@esbuild-kit/core-utils>esbuild': ^0.25.12 vite: npm:@voidzero-dev/vite-plus-core@0.2.2 vitest: 4.1.10 @@ -19,17 +20,17 @@ importers: .: dependencies: '@ai-sdk/react': - specifier: ^4.0.40 - version: 4.0.40(react@19.2.8)(zod@4.4.3) + specifier: ^4.0.51 + version: 4.0.51(react@19.2.8)(zod@4.4.3) '@base-ui/react': specifier: ^1.6.0 - version: 1.6.0(@date-fns/tz@1.5.0)(@types/react@19.2.17)(date-fns@4.3.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + version: 1.6.0(@date-fns/tz@1.5.0)(@types/react@19.2.18)(date-fns@4.3.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) '@better-auth/oauth-provider': specifier: 1.6.25 - version: 1.6.25(@better-auth/core@1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.3)(kysely@0.28.17)(nanostores@1.3.0))(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-auth@1.6.25(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(@tanstack/react-start@1.168.32(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.28.17)(pg@8.22.0)(sql.js@1.14.1))(pg@8.22.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(solid-js@1.9.12)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vitest@4.1.10)(vue@3.5.38(typescript@6.0.3)))(better-call@1.3.7(zod@4.4.3)) + version: 1.6.25(@better-auth/core@1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.7)(kysely@0.29.4)(nanostores@1.4.2))(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-auth@1.6.25(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(@tanstack/react-start@1.168.32(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(rolldown@1.1.2)(rollup@4.62.2))(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.29.4)(pg@8.22.0)(sql.js@1.14.1))(pg@8.22.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(solid-js@1.9.12)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vitest@4.1.10)(vue@3.5.38(typescript@6.0.3)))(better-call@1.3.7(zod@4.4.3)) '@cloudflare/codemode': - specifier: ^0.5.0 - version: 0.5.0(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@tanstack/ai@0.22.0(@opentelemetry/api@1.9.1))(ai@7.0.37(zod@4.4.3))(zod@4.4.3) + specifier: ^0.5.1 + version: 0.5.1(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@tanstack/ai@0.22.0(@opentelemetry/api@1.9.1))(ai@7.0.48(zod@4.4.3))(zod@4.4.3) '@cloudflare/containers': specifier: ^0.3.7 version: 0.3.7 @@ -38,16 +39,16 @@ importers: version: 0.12.3 '@cloudflare/shell': specifier: ^0.4.3 - version: 0.4.3(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@tanstack/ai@0.22.0(@opentelemetry/api@1.9.1))(ai@7.0.37(zod@4.4.3))(zod@4.4.3) + version: 0.4.3(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@tanstack/ai@0.22.0(@opentelemetry/api@1.9.1))(ai@7.0.48(zod@4.4.3))(zod@4.4.3) '@cloudflare/think': specifier: ^0.15.0 - version: 0.15.0(patch_hash=1325490ec006d39225ccf20fdf92d9c0a193a58c0427100f2b4b3c1b95a82576)(@ai-sdk/react@4.0.40(react@19.2.8)(zod@4.4.3))(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@tanstack/ai@0.22.0(@opentelemetry/api@1.9.1))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(agents@0.19.0(patch_hash=b4925f176922f992a0781ffa357da123a7e05876e924b4ff009585baa101bf4d)(@ai-sdk/react@4.0.40(react@19.2.8)(zod@4.4.3))(@babel/core@7.29.7)(@babel/runtime@7.29.7)(@cloudflare/workers-types@5.20260727.1)(@tanstack/ai@0.22.0(@opentelemetry/api@1.9.1))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(ai@7.0.37(zod@4.4.3))(chat@4.31.0(ai@7.0.37(zod@4.4.3))(zod@4.4.3))(just-bash@3.0.2)(react@19.2.8)(rolldown@1.1.2)(zod@4.4.3))(ai@7.0.37(zod@4.4.3))(react@19.2.8)(zod@4.4.3) + version: 0.15.0(patch_hash=1325490ec006d39225ccf20fdf92d9c0a193a58c0427100f2b4b3c1b95a82576)(@ai-sdk/react@4.0.51(react@19.2.8)(zod@4.4.3))(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@tanstack/ai@0.22.0(@opentelemetry/api@1.9.1))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(agents@0.19.0(patch_hash=b4925f176922f992a0781ffa357da123a7e05876e924b4ff009585baa101bf4d)(@ai-sdk/react@4.0.51(react@19.2.8)(zod@4.4.3))(@babel/core@7.29.7)(@babel/runtime@7.29.7)(@cloudflare/workers-types@5.20260801.1)(@tanstack/ai@0.22.0(@opentelemetry/api@1.9.1))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(ai@7.0.48(zod@4.4.3))(chat@4.31.0(ai@7.0.48(zod@4.4.3))(zod@4.4.3))(just-bash@3.0.2)(react@19.2.8)(rolldown@1.1.2)(zod@4.4.3))(ai@7.0.48(zod@4.4.3))(react@19.2.8)(zod@4.4.3) '@content-collections/core': specifier: ^0.15.2 version: 0.15.2(typescript@6.0.3) '@content-collections/vite': specifier: ^0.3.0 - version: 0.3.0(@content-collections/core@0.15.2(typescript@6.0.3))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)) + version: 0.3.0(@content-collections/core@0.15.2(typescript@6.0.3))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)) '@contextcompany/custom': specifier: 1.2.2 version: 1.2.2 @@ -68,10 +69,10 @@ importers: version: 0.5.0 '@embedpdf/core': specifier: ^2.14.4 - version: 2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)) + version: 2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)) '@embedpdf/engines': specifier: ^2.14.4 - version: 2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)) + version: 2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)) '@embedpdf/models': specifier: ^2.14.4 version: 2.14.4 @@ -80,49 +81,49 @@ importers: version: 2.14.4 '@embedpdf/plugin-annotation': specifier: ^2.14.4 - version: 2.14.4(7d4cbc3ae911c506a74f2f3d0537b711) + version: 2.14.4(5d91c6be4cadfe702f7d628f7fe6772c) '@embedpdf/plugin-document-manager': specifier: ^2.14.4 - version: 2.14.4(@embedpdf/core@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)) + version: 2.14.4(@embedpdf/core@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)) '@embedpdf/plugin-interaction-manager': specifier: ^2.14.4 - version: 2.14.4(@embedpdf/core@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)) + version: 2.14.4(@embedpdf/core@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)) '@embedpdf/plugin-render': specifier: ^2.14.4 - version: 2.14.4(@embedpdf/core@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)) + version: 2.14.4(@embedpdf/core@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)) '@embedpdf/plugin-rotate': specifier: ^2.14.4 - version: 2.14.4(@embedpdf/core@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)) + version: 2.14.4(@embedpdf/core@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)) '@embedpdf/plugin-scroll': specifier: ^2.14.4 - version: 2.14.4(@embedpdf/core@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(@embedpdf/plugin-viewport@2.14.4(@embedpdf/core@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)) + version: 2.14.4(@embedpdf/core@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(@embedpdf/plugin-viewport@2.14.4(@embedpdf/core@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)) '@embedpdf/plugin-selection': specifier: ^2.14.4 - version: 2.14.4(@embedpdf/core@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(@embedpdf/plugin-interaction-manager@2.14.4(@embedpdf/core@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)) + version: 2.14.4(@embedpdf/core@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(@embedpdf/plugin-interaction-manager@2.14.4(@embedpdf/core@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)) '@embedpdf/plugin-tiling': specifier: ^2.14.4 - version: 2.14.4(67f7ecf86b9059fdacb4a28439ad5ba9) + version: 2.14.4(ac4721d7bd1726c55a381cb6f8777b72) '@embedpdf/plugin-viewport': specifier: ^2.14.4 - version: 2.14.4(@embedpdf/core@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)) + version: 2.14.4(@embedpdf/core@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)) '@embedpdf/plugin-zoom': specifier: ^2.14.4 - version: 2.14.4(patch_hash=0510267c484dfeaac9d1f5321c6991b3d8103d39e26182e94e2838e2e9867a39)(73bed704a65db3f4645324cb8ef357b2) + version: 2.14.4(patch_hash=0510267c484dfeaac9d1f5321c6991b3d8103d39e26182e94e2838e2e9867a39)(ac836f97ee711155fa372ab9d8b5a4b7) '@fontsource-variable/geist': specifier: 5.3.0 version: 5.3.0 '@modelcontextprotocol/sdk': - specifier: ^1.29.0 + specifier: 1.29.0 version: 1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3) '@posthog/ai': - specifier: ^8.4.0 - version: 8.4.0(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.8.0(@opentelemetry/api@1.9.1))(posthog-node@5.46.1) + specifier: ^8.6.0 + version: 8.6.0(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.10.0(@opentelemetry/api@1.9.1))(posthog-node@5.47.3(rxjs@7.8.2)) '@posthog/mcp': specifier: 0.10.1 - version: 0.10.1(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(posthog-node@5.46.1) + version: 0.10.1(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(posthog-node@5.47.3(rxjs@7.8.2)) '@posthog/react': specifier: ^1.10.3 - version: 1.10.3(@types/react@19.2.17)(posthog-js@1.407.3)(react@19.2.8) + version: 1.10.3(@types/react@19.2.18)(posthog-js@1.409.5)(react@19.2.8) '@posthog/rollup-plugin': specifier: ^1.4.7 version: 1.4.7(rollup@4.62.2) @@ -152,76 +153,76 @@ importers: version: 1.167.1(@tanstack/query-core@5.101.4)(@tanstack/react-query@5.101.4(react@19.2.8))(@tanstack/react-router@1.170.18(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(@tanstack/router-core@1.171.15)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) '@tanstack/react-start': specifier: 1.168.32 - version: 1.168.32(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + version: 1.168.32(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(rolldown@1.1.2)(rollup@4.62.2) '@tiptap/core': - specifier: ^3.29.1 - version: 3.29.1(@tiptap/pm@3.29.1) + specifier: ^3.29.2 + version: 3.29.2(@tiptap/pm@3.29.2) '@tiptap/extension-character-count': - specifier: ^3.29.1 - version: 3.29.1(@tiptap/extensions@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1)) + specifier: ^3.29.2 + version: 3.29.2(@tiptap/extensions@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2)) '@tiptap/extension-code-block': - specifier: ^3.29.1 - version: 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1) + specifier: ^3.29.2 + version: 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2) '@tiptap/extension-collaboration': - specifier: ^3.29.1 - version: 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1)(@tiptap/y-tiptap@3.0.7(prosemirror-model@1.25.11)(prosemirror-state@1.4.4)(prosemirror-view@1.42.1)(y-protocols@1.0.7(yjs@13.6.31))(yjs@13.6.31))(yjs@13.6.31) + specifier: ^3.29.2 + version: 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2)(@tiptap/y-tiptap@3.0.8(prosemirror-model@1.25.11)(prosemirror-state@1.4.4)(prosemirror-view@1.42.2)(y-protocols@1.0.7(yjs@13.6.31))(yjs@13.6.31))(yjs@13.6.31) '@tiptap/extension-collaboration-caret': - specifier: ^3.29.1 - version: 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1)(@tiptap/y-tiptap@3.0.7(prosemirror-model@1.25.11)(prosemirror-state@1.4.4)(prosemirror-view@1.42.1)(y-protocols@1.0.7(yjs@13.6.31))(yjs@13.6.31)) + specifier: ^3.29.2 + version: 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2)(@tiptap/y-tiptap@3.0.8(prosemirror-model@1.25.11)(prosemirror-state@1.4.4)(prosemirror-view@1.42.2)(y-protocols@1.0.7(yjs@13.6.31))(yjs@13.6.31)) '@tiptap/extension-highlight': - specifier: ^3.29.1 - version: 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1)) + specifier: ^3.29.2 + version: 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2)) '@tiptap/extension-horizontal-rule': - specifier: ^3.29.1 - version: 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1) + specifier: ^3.29.2 + version: 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2) '@tiptap/extension-link': - specifier: ^3.29.1 - version: 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1) + specifier: ^3.29.2 + version: 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2) '@tiptap/extension-list': - specifier: ^3.29.1 - version: 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1) + specifier: ^3.29.2 + version: 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2) '@tiptap/extension-mathematics': - specifier: ^3.29.1 - version: 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1)(katex@0.17.0) + specifier: ^3.29.2 + version: 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2)(katex@0.17.0) '@tiptap/extension-placeholder': - specifier: ^3.29.1 - version: 3.29.1(@tiptap/extensions@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1)) + specifier: ^3.29.2 + version: 3.29.2(@tiptap/extensions@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2)) '@tiptap/extension-table': - specifier: ^3.29.1 - version: 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1) + specifier: ^3.29.2 + version: 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2) '@tiptap/extension-text-align': - specifier: ^3.29.1 - version: 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1)) + specifier: ^3.29.2 + version: 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2)) '@tiptap/extension-underline': - specifier: ^3.29.1 - version: 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1)) + specifier: ^3.29.2 + version: 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2)) '@tiptap/markdown': - specifier: ^3.29.1 - version: 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1) + specifier: ^3.29.2 + version: 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2) '@tiptap/pm': - specifier: ^3.29.1 - version: 3.29.1 + specifier: ^3.29.2 + version: 3.29.2 '@tiptap/react': - specifier: ^3.29.1 - version: 3.29.1(@floating-ui/dom@1.8.0)(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + specifier: ^3.29.2 + version: 3.29.2(@floating-ui/dom@1.8.0)(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2)(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) '@tiptap/starter-kit': - specifier: ^3.29.1 - version: 3.29.1 + specifier: ^3.29.2 + version: 3.29.2 agents: specifier: ^0.19.0 - version: 0.19.0(patch_hash=b4925f176922f992a0781ffa357da123a7e05876e924b4ff009585baa101bf4d)(@ai-sdk/react@4.0.40(react@19.2.8)(zod@4.4.3))(@babel/core@7.29.7)(@babel/runtime@7.29.7)(@cloudflare/workers-types@5.20260727.1)(@tanstack/ai@0.22.0(@opentelemetry/api@1.9.1))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(ai@7.0.37(zod@4.4.3))(chat@4.31.0(ai@7.0.37(zod@4.4.3))(zod@4.4.3))(just-bash@3.0.2)(react@19.2.8)(rolldown@1.1.2)(zod@4.4.3) + version: 0.19.0(patch_hash=b4925f176922f992a0781ffa357da123a7e05876e924b4ff009585baa101bf4d)(@ai-sdk/react@4.0.51(react@19.2.8)(zod@4.4.3))(@babel/core@7.29.7)(@babel/runtime@7.29.7)(@cloudflare/workers-types@5.20260801.1)(@tanstack/ai@0.22.0(@opentelemetry/api@1.9.1))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(ai@7.0.48(zod@4.4.3))(chat@4.31.0(ai@7.0.48(zod@4.4.3))(zod@4.4.3))(just-bash@3.0.2)(react@19.2.8)(rolldown@1.1.2)(zod@4.4.3) ai: - specifier: ^7.0.37 - version: 7.0.37(zod@4.4.3) + specifier: ^7.0.48 + version: 7.0.48(zod@4.4.3) autumn-js: - specifier: ^1.2.44 - version: 1.2.44(better-auth@1.6.25(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(@tanstack/react-start@1.168.32(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.28.17)(pg@8.22.0)(sql.js@1.14.1))(pg@8.22.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(solid-js@1.9.12)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vitest@4.1.10)(vue@3.5.38(typescript@6.0.3)))(better-call@1.3.7(zod@4.4.3))(express@5.2.1)(hono@4.12.27)(react@19.2.8) + specifier: ^1.2.45 + version: 1.2.45(better-auth@1.6.25(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(@tanstack/react-start@1.168.32(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(rolldown@1.1.2)(rollup@4.62.2))(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.29.4)(pg@8.22.0)(sql.js@1.14.1))(pg@8.22.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(solid-js@1.9.12)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vitest@4.1.10)(vue@3.5.38(typescript@6.0.3)))(better-call@1.3.7(zod@4.4.3))(express@5.2.1)(hono@4.12.33)(react@19.2.8) aws4fetch: specifier: ^1.0.20 version: 1.0.20 better-auth: specifier: ^1.6.25 - version: 1.6.25(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(@tanstack/react-start@1.168.32(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.28.17)(pg@8.22.0)(sql.js@1.14.1))(pg@8.22.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(solid-js@1.9.12)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vitest@4.1.10)(vue@3.5.38(typescript@6.0.3)) + version: 1.6.25(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(@tanstack/react-start@1.168.32(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(rolldown@1.1.2)(rollup@4.62.2))(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.29.4)(pg@8.22.0)(sql.js@1.14.1))(pg@8.22.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(solid-js@1.9.12)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vitest@4.1.10)(vue@3.5.38(typescript@6.0.3)) class-variance-authority: specifier: ^0.7.1 version: 0.7.1 @@ -229,11 +230,11 @@ importers: specifier: ^2.1.1 version: 2.1.1 drizzle-kit: - specifier: ^0.31.9 + specifier: ^0.31.10 version: 0.31.10 drizzle-orm: - specifier: ^0.45.1 - version: 0.45.2(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.28.17)(pg@8.22.0)(sql.js@1.14.1) + specifier: ^0.45.2 + version: 0.45.2(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.29.4)(pg@8.22.0)(sql.js@1.14.1) hast-util-to-string: specifier: ^3.0.1 version: 3.0.1 @@ -244,8 +245,8 @@ importers: specifier: 0.18.13 version: 0.18.13 lucide-react: - specifier: ^1.27.0 - version: 1.27.0(react@19.2.8) + specifier: ^1.28.0 + version: 1.28.0(react@19.2.8) matter-js: specifier: ^0.20.0 version: 0.20.0 @@ -253,8 +254,8 @@ importers: specifier: 11.16.0 version: 11.16.0 motion: - specifier: ^12.42.2 - version: 12.42.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + specifier: ^12.43.0 + version: 12.43.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8) nanoid: specifier: ^6.0.0 version: 6.0.0 @@ -262,14 +263,14 @@ importers: specifier: ^5.5.4 version: 5.5.4 partyserver: - specifier: ^0.5.8 - version: 0.5.8(@cloudflare/workers-types@5.20260727.1) + specifier: ^0.5.9 + version: 0.5.9(@cloudflare/workers-types@5.20260801.1) posthog-js: - specifier: ^1.407.3 - version: 1.407.3 + specifier: ^1.409.5 + version: 1.409.5 posthog-node: - specifier: ^5.46.1 - version: 5.46.1 + specifier: ^5.47.3 + version: 5.47.3(rxjs@7.8.2) react: specifier: ^19.2.8 version: 19.2.8 @@ -298,22 +299,22 @@ importers: specifier: ^11.1.2 version: 11.1.2 shadcn: - specifier: ^4.15.0 - version: 4.15.0(@cfworker/json-schema@4.1.1)(typescript@6.0.3) + specifier: ^4.16.1 + version: 4.16.1(@cfworker/json-schema@4.1.1)(typescript@6.0.3) shiki: - specifier: ^4.3.1 - version: 4.3.1 + specifier: ^4.4.1 + version: 4.4.1 sonner: specifier: ^2.0.7 version: 2.0.7(react-dom@19.2.8(react@19.2.8))(react@19.2.8) streamdown: - specifier: ^2.3.0 + specifier: ^2.5.0 version: 2.5.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8) tailwind-merge: - specifier: ^3.0.2 + specifier: ^3.6.0 version: 3.6.0 tw-animate-css: - specifier: ^1.3.6 + specifier: ^1.4.0 version: 1.4.0 unified: specifier: ^11.0.5 @@ -326,7 +327,7 @@ importers: version: 9.0.12(yjs@13.6.31) y-partyserver: specifier: ^2.2.0 - version: 2.2.0(@cloudflare/workers-types@5.20260727.1)(partyserver@0.5.8(@cloudflare/workers-types@5.20260727.1))(yjs@13.6.31) + version: 2.2.0(@cloudflare/workers-types@5.20260801.1)(partyserver@0.5.9(@cloudflare/workers-types@5.20260801.1))(yjs@13.6.31) y-protocols: specifier: ^1.0.7 version: 1.0.7(yjs@13.6.31) @@ -334,87 +335,90 @@ importers: specifier: ^13.6.31 version: 13.6.31 zod: - specifier: ^4.3.6 + specifier: ^4.4.3 version: 4.4.3 zustand: specifier: ^5.0.14 - version: 5.0.14(@types/react@19.2.17)(immer@11.1.8)(react@19.2.8)(use-sync-external-store@1.6.0(react@19.2.8)) + version: 5.0.14(@types/react@19.2.18)(immer@11.1.8)(react@19.2.8)(use-sync-external-store@1.6.0(react@19.2.8)) devDependencies: '@babel/plugin-proposal-decorators': specifier: ^8.0.2 version: 8.0.2(@babel/core@7.29.7) '@cloudflare/vite-plugin': - specifier: ^1.47.0 - version: 1.47.0(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(wrangler@4.114.0(@cloudflare/workers-types@5.20260727.1)) + specifier: ^1.50.0 + version: 1.50.0(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(wrangler@4.118.0(@cloudflare/workers-types@5.20260801.1)) '@cloudflare/vitest-pool-workers': specifier: ^0.18.8 - version: 0.18.8(@cloudflare/workers-types@5.20260727.1)(@vitest/runner@4.1.10)(@vitest/snapshot@4.1.10)(vitest@4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.1)(@vitest/browser-preview@4.1.10)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(jsdom@28.1.0(@noble/hashes@2.2.0))(msw@2.14.6(@types/node@26.1.1)(typescript@6.0.3))) + version: 0.18.8(@cloudflare/workers-types@5.20260801.1)(@vitest/runner@4.1.10)(@vitest/snapshot@4.1.10)(vitest@4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.2)(@vitest/browser-preview@4.1.10)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(jsdom@28.1.0(@noble/hashes@2.2.0))(msw@2.14.6(@types/node@26.1.2)(typescript@6.0.3))) '@cloudflare/workers-types': - specifier: ^5.20260727.1 - version: 5.20260727.1 + specifier: ^5.20260801.1 + version: 5.20260801.1 '@commitlint/cli': specifier: ^21.2.1 - version: 21.2.1(@types/node@26.1.1)(conventional-commits-parser@7.0.1)(typescript@6.0.3) + version: 21.2.1(@types/node@26.1.2)(conventional-commits-parser@7.1.2)(typescript@6.0.3) '@commitlint/config-conventional': specifier: ^21.2.0 version: 21.2.0 '@rolldown/plugin-babel': specifier: ^0.2.3 - version: 0.2.3(@babel/core@7.29.7)(@babel/runtime@7.29.7)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(rolldown@1.1.2) + version: 0.2.3(@babel/core@7.29.7)(@babel/runtime@7.29.7)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(rolldown@1.1.2) '@tailwindcss/typography': specifier: ^0.5.20 version: 0.5.20(tailwindcss@4.3.3) '@tailwindcss/vite': specifier: ^4.3.3 - version: 4.3.3(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)) + version: 4.3.3(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)) '@tanstack/devtools-event-client': specifier: 0.5.0 version: 0.5.0 '@tanstack/devtools-vite': specifier: 0.8.3 - version: 0.8.3(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)) + version: 0.8.3(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)) '@tanstack/react-devtools': specifier: 0.10.9 - version: 0.10.9(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(csstype@3.2.3)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(solid-js@1.9.12) + version: 0.10.9(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(csstype@3.2.3)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(solid-js@1.9.12) '@tanstack/react-query-devtools': specifier: 5.101.4 version: 5.101.4(@tanstack/react-query@5.101.4(react@19.2.8))(react@19.2.8) '@tanstack/router-plugin': specifier: ^1.168.23 - version: 1.168.23(@tanstack/react-router@1.170.18(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)) + version: 1.168.23(@tanstack/react-router@1.170.18(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(rolldown@1.1.2)(rollup@4.62.2) '@tiptap/y-tiptap': - specifier: ^3.0.7 - version: 3.0.7(prosemirror-model@1.25.11)(prosemirror-state@1.4.4)(prosemirror-view@1.42.1)(y-protocols@1.0.7(yjs@13.6.31))(yjs@13.6.31) + specifier: ^3.0.8 + version: 3.0.8(prosemirror-model@1.25.11)(prosemirror-state@1.4.4)(prosemirror-view@1.42.2)(y-protocols@1.0.7(yjs@13.6.31))(yjs@13.6.31) '@types/matter-js': specifier: ^0.20.2 version: 0.20.2 '@types/node': - specifier: ^26.1.1 - version: 26.1.1 + specifier: ^26.1.2 + version: 26.1.2 '@types/papaparse': specifier: ^5.5.2 version: 5.5.2 '@types/react': - specifier: ^19.2.17 - version: 19.2.17 + specifier: ^19.2.18 + version: 19.2.18 '@types/react-dom': - specifier: ^19.2.0 - version: 19.2.3(@types/react@19.2.17) + specifier: ^19.2.4 + version: 19.2.4(@types/react@19.2.18) '@vitejs/plugin-react': - specifier: ^6.0.4 - version: 6.0.4(@rolldown/plugin-babel@0.2.3(@babel/core@7.29.7)(@babel/runtime@7.29.7)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(rolldown@1.1.2))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(babel-plugin-react-compiler@1.0.0) + specifier: ^6.0.5 + version: 6.0.5(@rolldown/plugin-babel@0.2.3(@babel/core@7.29.7)(@babel/runtime@7.29.7)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(rolldown@1.1.2))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(babel-plugin-react-compiler@1.0.0) '@voidzero-dev/vite-plus-core': - specifier: ^0.2.6 - version: 0.2.6(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0) + specifier: ^0.2.7 + version: 0.2.7(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0) + atmn: + specifier: ^1.1.16 + version: 1.1.16(@types/node@26.1.2)(@types/react@19.2.18)(typescript@6.0.3) babel-plugin-react-compiler: specifier: ^1.0.0 version: 1.0.0 knip: - specifier: ^6.17.1 - version: 6.17.1 + specifier: ^6.31.0 + version: 6.31.0 react-doctor: specifier: 0.6.0 - version: 0.6.0(eslint@9.39.4(jiti@2.7.0))(oxlint-tsgolint@7.0.2001) + version: 0.6.0(@opentelemetry/core@2.10.0(@opentelemetry/api@1.9.1))(eslint@9.39.4(jiti@2.7.0))(oxlint-tsgolint@7.0.2001) tailwindcss: specifier: ^4.3.3 version: 4.3.3 @@ -422,23 +426,23 @@ importers: specifier: ^4.23.1 version: 4.23.1 typescript: - specifier: ^6.0.2 + specifier: ^6.0.3 version: 6.0.3 vite: specifier: npm:@voidzero-dev/vite-plus-core@0.2.2 - version: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)' + version: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)' vite-bundle-analyzer: specifier: ^1.3.9 version: 1.3.9 vite-plus: - specifier: ^0.2.6 - version: 0.2.6(@opentelemetry/api@1.9.1)(@types/node@26.1.1)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(jiti@2.7.0)(jsdom@28.1.0(@noble/hashes@2.2.0))(msw@2.14.6(@types/node@26.1.1)(typescript@6.0.3))(svelte@5.56.3(@typescript-eslint/types@8.61.1))(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0) + specifier: ^0.2.7 + version: 0.2.7(@opentelemetry/api@1.9.1)(@types/node@26.1.2)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(jiti@2.7.0)(jsdom@28.1.0(@noble/hashes@2.2.0))(msw@2.14.6(@types/node@26.1.2)(typescript@6.0.3))(svelte@5.56.3(@typescript-eslint/types@8.65.0))(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0) vitest: specifier: 4.1.10 - version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.1)(@vitest/browser-preview@4.1.10)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(jsdom@28.1.0(@noble/hashes@2.2.0))(msw@2.14.6(@types/node@26.1.1)(typescript@6.0.3)) + version: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.2)(@vitest/browser-preview@4.1.10)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(jsdom@28.1.0(@noble/hashes@2.2.0))(msw@2.14.6(@types/node@26.1.2)(typescript@6.0.3)) wrangler: - specifier: ^4.114.0 - version: 4.114.0(@cloudflare/workers-types@5.20260727.1) + specifier: ^4.118.0 + version: 4.118.0(@cloudflare/workers-types@5.20260801.1) packages: @@ -454,14 +458,14 @@ packages: peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/gateway@4.0.28': - resolution: {integrity: sha512-ee9TsNO3mkgHDWmTmJ8Fvltr6PFh52zhrV2+FaKJY3F3iu7kWZi5tCRJCR1HVhhlpj6lHniUb28nLQdPHkA/1Q==} + '@ai-sdk/gateway@4.0.37': + resolution: {integrity: sha512-YBCTsSlX0ETVsjo0ihfBOeJ3p3y1wXKXDzF9Ygp9dscUY06dzOGmyWJSGsKg+khKVArzBWUW4UCSAKms20ZDmg==} engines: {node: '>=22'} peerDependencies: zod: ^3.25.76 || ^4.1.8 - '@ai-sdk/mcp@2.0.16': - resolution: {integrity: sha512-jC2r+StEuk8uIldfP4j8nBwOEBJ2TRwy/bz71SHMZ3NG6PSbvRPXGfyoHHR6JTm1O5GcIww0f6B8LznzkrseDA==} + '@ai-sdk/mcp@2.0.22': + resolution: {integrity: sha512-j3jPwKFTffZCJzYGpN69yKu/y646uu2gWoEwh1jgVyYVpzfu6ErFU+YAd/+xTPxsUTx8FEIEUHTlEsDuOe+ytQ==} engines: {node: '>=22'} peerDependencies: zod: ^3.25.76 || ^4.1.8 @@ -478,19 +482,44 @@ packages: peerDependencies: zod: ^3.25.76 || ^4.1.8 + '@ai-sdk/provider-utils@5.0.18': + resolution: {integrity: sha512-UBNCrkxS5llgN2/RXLBRkjCFTIuL6YB1Goq5c+yRecnznhtX4XPjTwLHz2hrsTltTVZ0rqVegtnwFXdPBkjDHA==} + engines: {node: '>=22'} + peerDependencies: + zod: ^3.25.76 || ^4.1.8 + '@ai-sdk/provider@4.0.3': resolution: {integrity: sha512-e0CpNWJUY7OxAFAnCZkw+ri9QOHWwTs1tXP42782KFGCU07qt8NiXCrCVowyCB5dP2r5/Uls+g2oPd8kOJn9dw==} engines: {node: '>=22'} - '@ai-sdk/react@4.0.40': - resolution: {integrity: sha512-z3Ht1ERCEYmt7vo6IZYXlPPNEH/SYz8CAdRWuxA+MgA5p8AXFnor/U6WhZmsAmyzhQk1Oe138PtlW7ee4Ap4qg==} + '@ai-sdk/provider@4.0.4': + resolution: {integrity: sha512-tbHKNLirllUNF3ZlkCsXnwab2ZV1Sl4b1H/Cp9ruCce15IBmskE8Gwkk0yo9xDWY+jho2of7lVXtwSsyrq7cwQ==} + engines: {node: '>=22'} + + '@ai-sdk/react@4.0.51': + resolution: {integrity: sha512-CZtoWfeY66gkvKldYXrDZobMe9cASkMAXqfgu32FVv0FyMHwWvqQdePwYPVIW7xHLC+ULnSaUKbz+0uUykF5kg==} engines: {node: '>=22'} peerDependencies: react: ^18 || ~19.0.1 || ~19.1.2 || ^19.2.1 + '@alcalzone/ansi-tokenize@0.2.5': + resolution: {integrity: sha512-3NX/MpTdroi0aKz134A6RC2Gb2iXVECN4QaAXnvCIxxIm3C3AVB1mkUe8NaaiyvOpDfsrqWhYtj+Q6a62RrTsw==} + engines: {node: '>=18'} + '@antfu/install-pkg@1.1.0': resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} + '@apm-js-collab/code-transformer-bundler-plugins@0.7.3': + resolution: {integrity: sha512-qNbPwuMZ8f5ZuGj/ttPeB7a6C/S1bB6tNYaEL5vNiRKydSAxa4AU0gxCWgaP4fVju+AuwhcumSFjrEcGF9Dv7Q==} + engines: {node: '>=18.0.0'} + + '@apm-js-collab/code-transformer@0.18.1': + resolution: {integrity: sha512-u1Hb6bHjWtkSpiprwVP6YaHC1DTN4RAU3zYkUDUe7WMnJwdyU1pwTL9dFKiSJB9IiLue/EQovmyx6xhU7FFtAQ==} + hasBin: true + + '@apm-js-collab/tracing-hooks@0.13.0': + resolution: {integrity: sha512-mTvWz9rnQwx1U3h0XPTHaX7bgfkpipLLTQyjlC2cdhQpQEuoLT0AGzoydeoq2NxfEVv6fWOOETcSbb2nptleyw==} + '@asamuzakjp/css-color@5.1.11': resolution: {integrity: sha512-KVw6qIiCTUQhByfTd78h2yD1/00waTmm9uy/R7Ck/ctUyAPj+AEDLkQIdJW0T8+qGgj3j5bpNKK7Q3G+LedJWg==} engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} @@ -525,8 +554,8 @@ packages: resolution: {integrity: sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==} engines: {node: '>=6.9.0'} - '@babel/generator@7.29.7': - resolution: {integrity: sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==} + '@babel/generator@7.29.8': + resolution: {integrity: sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==} engines: {node: '>=6.9.0'} '@babel/generator@8.0.0': @@ -621,10 +650,6 @@ packages: resolution: {integrity: sha512-xmCA9kP3IhySsqhzwIdWGlDN/1A4cCKNBO/uwZx/3YzmDoMePwno2Q5/Bq0q+tYaKbeF940YiKV/kaW8Mzvpjw==} engines: {node: ^22.18.0 || >=24.11.0} - '@babel/helper-string-parser@7.27.1': - resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} - engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.29.7': resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} engines: {node: '>=6.9.0'} @@ -633,16 +658,12 @@ packages: resolution: {integrity: sha512-6mJgmFFFIIO82vvoLt9XtRC7/TkzXfts1t/SpRX4IHSzMgqoPYCWesVu1udUPUWioAE/2fcG6WuI8zrkE1gwrg==} engines: {node: ^22.18.0 || >=24.11.0} - '@babel/helper-validator-identifier@7.28.5': - resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} - engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.29.7': resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@8.0.2': - resolution: {integrity: sha512-9Fr9QeyCAyi1BR1jKZ6uYQ24EIhQUx5ReHfQU7drOE+TPOb+w11/dsqLkMOT2U29OdCT71XajrOT8xDc1C7orA==} + '@babel/helper-validator-identifier@8.0.4': + resolution: {integrity: sha512-4wFaiLd0bVo4cIoTXI3zKI038NIWE/cr3jvBjejOVYVxV/m8Ltav1USiGzG1fmS5J2RhgEOgXNNK46cRPnRsrg==} engines: {node: ^22.18.0 || >=24.11.0} '@babel/helper-validator-option@7.29.7': @@ -653,13 +674,13 @@ packages: resolution: {integrity: sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==} engines: {node: '>=6.9.0'} - '@babel/parser@7.29.7': - resolution: {integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==} + '@babel/parser@7.29.8': + resolution: {integrity: sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/parser@8.0.0': - resolution: {integrity: sha512-aLxAE+imI9bCcyaPrUDjBv3uSkWieifjLe0kuFOZF0zli0L6GCsTmsePnTr55adbIAgYz2zhN1vnFimCBUYcRQ==} + '@babel/parser@8.0.4': + resolution: {integrity: sha512-srpptsAkEbbNIC/q8nT7o+m6CQe8CJUTV/t7MYc9NnWlgYVtHOb7JH6SorxMhN0kuRJjVqXbKClG6xSbPtzz+g==} engines: {node: ^22.18.0 || >=24.11.0} hasBin: true @@ -709,10 +730,6 @@ packages: resolution: {integrity: sha512-ppj9ouYku+RX0ljtgZd+KMO5mkM2bCqg8H2PYAFWnLsHEIKIdRojqbJ2i3eVHrisuxy7nOFCmngTDdWtUCdXUQ==} engines: {node: '>=6.9.0'} - '@babel/runtime@7.29.2': - resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==} - engines: {node: '>=6.9.0'} - '@babel/runtime@7.29.7': resolution: {integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==} engines: {node: '>=6.9.0'} @@ -725,24 +742,20 @@ packages: resolution: {integrity: sha512-eAD0QW/AlbamBbw0FeGiwasbCVPq5ncW0HNVyLP3B9czqLyh4gvw+5JTSNt6le9+ziAU7mqDZsKTHf3jTb4chQ==} engines: {node: ^22.18.0 || >=24.11.0} - '@babel/traverse@7.29.7': - resolution: {integrity: sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==} + '@babel/traverse@7.29.8': + resolution: {integrity: sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg==} engines: {node: '>=6.9.0'} - '@babel/traverse@8.0.0': - resolution: {integrity: sha512-bxTj/W2VclGE6CctlfQOpxg8MPDzXArRqkOBePw8EHfebcjF7fETWSS3BriEECo+UiU/Yblq+xUtSImFu7cTbw==} + '@babel/traverse@8.0.4': + resolution: {integrity: sha512-bZnmqzGG8UZneG1lLxBoWIH0G6Gr1D846Yu4/3XnY6FhCndMR49u26nTY08u/dAxWmLWF9vGQOuC+84FfIUoeg==} engines: {node: ^22.18.0 || >=24.11.0} - '@babel/types@7.29.0': - resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} - engines: {node: '>=6.9.0'} - - '@babel/types@7.29.7': - resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==} + '@babel/types@7.29.8': + resolution: {integrity: sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==} engines: {node: '>=6.9.0'} - '@babel/types@8.0.0': - resolution: {integrity: sha512-K8ponJDxBwDHigkeFqaqT5wLGl4bTlwMafR8k7b5CPxr6Ww+UG9ls8Yx6Tcpboxu97eeGVEEyKcHmEyOwN1vSw==} + '@babel/types@8.0.4': + resolution: {integrity: sha512-eY+Yn3dCqTGmyiq2QRU66lA5FL8lqqqvecHt0fF3uHONIa7ToYsaCiWV8lOKqAs0Rb2SjixiKFROngnulPtt2g==} engines: {node: ^22.18.0 || >=24.11.0} '@base-ui/react@1.6.0': @@ -879,8 +892,8 @@ packages: '@chevrotain/types@11.1.2': resolution: {integrity: sha512-U+HFai5+zmJCkK86QsaJtoITlboZHBqrVketcO2ROv865xfCMSFpELQoz1GkX5GzME8pTa+3kbKrZHQtI0gdbw==} - '@cloudflare/codemode@0.5.0': - resolution: {integrity: sha512-DS3S/azE4XOCZRJz/slpBo4kFAkdoz303FYDgDSRCJXpnLyDEq+qj9WDceZPBWI7HK0olgOEyLeo/jQy6IKkvQ==} + '@cloudflare/codemode@0.5.1': + resolution: {integrity: sha512-PcX5+qAvupi8p1bMLKhqvPHziZpDubbrxDIvVH+iuuNUaFyOxxWNS9HplfFqIULqUzDPdFf1w7IiSCKHp7GDgg==} peerDependencies: '@modelcontextprotocol/sdk': ^1.25.0 '@tanstack/ai': '>=0.8.0 <1.0.0' @@ -950,12 +963,12 @@ packages: workerd: optional: true - '@cloudflare/vite-plugin@1.47.0': - resolution: {integrity: sha512-WyGNYtJ2nzcJXtlwCHTO5S5+flFaYhfH5WfFfx6IpGf2Y/oNwyizEW9mNSImpg65PWmDs1715Pk/vGSKKtYJ1w==} + '@cloudflare/vite-plugin@1.50.0': + resolution: {integrity: sha512-zIhZim7Kr7OC22rlOkU81BLj0oRlUOqPRX+E6RU3hyRYg4xU1MbA3yiMIwFONr+jc/uV7Fxs20NlXrB89Fqjqg==} hasBin: true peerDependencies: vite: ^6.1.0 || ^7.0.0 || ^8.0.0 - wrangler: ^4.114.0 + wrangler: ^4.118.0 '@cloudflare/vitest-pool-workers@0.18.8': resolution: {integrity: sha512-O1kOMZqapidlezNFiBZ7Lbd+8mMEpkGmWwPj+nPLvOngxSL11lmWq7xl7vxyjDxbeD/7l22KqgvRGM7XFaYd9w==} @@ -970,32 +983,62 @@ packages: cpu: [x64] os: [darwin] + '@cloudflare/workerd-darwin-64@1.20260730.1': + resolution: {integrity: sha512-+MBHmPaiTe2KajryW0T24rZvWFxb41hD3d8anNzQqHzft6vSEb18+sp0znSwxgij7ApPhSM1+vhkNg4f3YMguA==} + engines: {node: '>=16'} + cpu: [x64] + os: [darwin] + '@cloudflare/workerd-darwin-arm64@1.20260722.1': resolution: {integrity: sha512-EmIQymihDq6WNdER4+LF8Qn80yqayBUpJ+tkOO7wmY8pmgfyXjIUFNXotl21AHovTeu2seR7HdVUgeN/BilCWw==} engines: {node: '>=16'} cpu: [arm64] os: [darwin] + '@cloudflare/workerd-darwin-arm64@1.20260730.1': + resolution: {integrity: sha512-SBHKntPkKvNPgaCrTe99xC1CAl8ygJDzlYfK0LbuJ1muKadIw35WnhO0wu894fKBtllsVQdNzDLee+cm0ppLSQ==} + engines: {node: '>=16'} + cpu: [arm64] + os: [darwin] + '@cloudflare/workerd-linux-64@1.20260722.1': resolution: {integrity: sha512-jvZ3k9fxcnEn04s80CgIYxQfpOyAiz/8qC42DP8EBa9tR27qWyg9wmm31zIobVlrgBZn/+8NfdP73avRGcQOjQ==} engines: {node: '>=16'} cpu: [x64] os: [linux] + '@cloudflare/workerd-linux-64@1.20260730.1': + resolution: {integrity: sha512-ouyPOSMbiKPeSwUJUvxtMcxGAXs2J4aPE4T5ABIYX5ClcQx5j5bbHTmnqOQEY8sAuLTPjH7dY+iB6UI5ISlwwA==} + engines: {node: '>=16'} + cpu: [x64] + os: [linux] + '@cloudflare/workerd-linux-arm64@1.20260722.1': resolution: {integrity: sha512-BOSB55SMNdy+DA5uj2WirgiNanpHGis5PVvXH1wSfvjRKr4JGgWK+EZzxz0RFUo6QjjQQC/NimEzNZ7va7jmKg==} engines: {node: '>=16'} cpu: [arm64] os: [linux] + '@cloudflare/workerd-linux-arm64@1.20260730.1': + resolution: {integrity: sha512-YQ+Mi78U3TPdgBPtwq+Sm6rJU+Ihl2y0pjYtuuKkdmUbYzL7oLR6Xqq9wljhasnuCFICssDJaqhMep5WizYoEQ==} + engines: {node: '>=16'} + cpu: [arm64] + os: [linux] + '@cloudflare/workerd-windows-64@1.20260722.1': resolution: {integrity: sha512-sYM8YgUpKnRz2xjvdJLX1Ojzoi4MlA4gk8WTTExhGydjYB2UTs5NIbv0ZmpKgMoK9io3ixgmiW56ZnTbcWOdiA==} engines: {node: '>=16'} cpu: [x64] os: [win32] - '@cloudflare/workers-types@5.20260727.1': - resolution: {integrity: sha512-b/wT+LMZz0oELzxibww0ujFz5BD8NRz9WJ+xd+JNZJUMXgh8IHjpibKdGDvtkbotmihWUknP5tBPUU8KluLxxA==} + '@cloudflare/workerd-windows-64@1.20260730.1': + resolution: {integrity: sha512-27fAN+vUECW1oYVc1KOcHYpkL8COM2Uxtxql7TL595kxbjoqS5yckw7NLz7bTf2pALFCZWjqXDjZGJ/xbG4ZKQ==} + engines: {node: '>=16'} + cpu: [x64] + os: [win32] + + '@cloudflare/workers-types@5.20260801.1': + resolution: {integrity: sha512-XCv5xWi47WQOK0LpLa6997Mrpz8Ct+nZmp/M5Xp8Z4BFsarf7nYjkznGOcOoYK5m1GfbMFEEuQ2OIZnbIWoe9A==} '@commitlint/cli@21.2.1': resolution: {integrity: sha512-blsZGe29hJ72VGEFVl72IVYX+1vsfINpjA9yWQA6i7OKD/McGEOXg08sKIRKjFk4JvzhV/9n0l3i6NooPLTNfg==} @@ -1110,15 +1153,15 @@ packages: resolution: {integrity: sha512-064IFJdjTfUqnjpCVpMOdbr8FLQBhinbZj6yRv2An2E41O/pLEXqfFRWqGq/SxlE5PEUYTlvWsG2r8MswAVvkg==} engines: {node: '>=20.19.0'} - '@csstools/css-calc@3.2.1': - resolution: {integrity: sha512-DtdHlgXh5ZkA43cwBcAm+huzgJiwx3ZTWVjBs94kwz2xKqSimDA3lBgCjphYgwgVUMWatSM0pDd8TILB1yrVVg==} + '@csstools/css-calc@3.3.0': + resolution: {integrity: sha512-c5ihYsPkdG6JCkU2zTMm4+k6r7RXuGxtWYhu5DHMIiF1FHzrfmHL5so11AoFpUv/tu61xfcmT4AmKoFfMPoqdQ==} engines: {node: '>=20.19.0'} peerDependencies: '@csstools/css-parser-algorithms': ^4.0.0 '@csstools/css-tokenizer': ^4.0.0 - '@csstools/css-color-parser@4.1.9': - resolution: {integrity: sha512-paQcIaOO53Rk5+YrBaBjm/SgrV4INImjo2BT1DtQRYr+XeTRbeAYlS+jxXp9drqvKmtFnWRJKIalDLhZZDu42A==} + '@csstools/css-color-parser@4.1.10': + resolution: {integrity: sha512-UZhQLIUyJaaMepqehrCODwCg2KW25vFvLWBmqYFaPclYvvxzj/sG8LBOhBFCp11i9uE7t1EyS+RAoV9tztPFyw==} engines: {node: '>=20.19.0'} peerDependencies: '@csstools/css-parser-algorithms': ^4.0.0 @@ -1130,8 +1173,8 @@ packages: peerDependencies: '@csstools/css-tokenizer': ^4.0.0 - '@csstools/css-syntax-patches-for-csstree@1.1.6': - resolution: {integrity: sha512-TcJCWFbXLPpJYq6z7bfOyjWYJDiDg2/I4gyUC9pqPNqHFRIey0EB0q0L5cSnQDfWJg8Jd6VadakxdIez/3zkqQ==} + '@csstools/css-syntax-patches-for-csstree@1.1.7': + resolution: {integrity: sha512-fQ+05118eQS1cofO3aJpB5efgpBZMvIzwr/sbC8kDLVA5XLG8q1kJV5yzrUAI1f7lvhPnm8fgIjzFB8/O/5Dig==} peerDependencies: css-tree: ^3.2.1 peerDependenciesMeta: @@ -1357,21 +1400,24 @@ packages: '@emnapi/core@1.10.0': resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} - '@emnapi/core@1.11.0': - resolution: {integrity: sha512-l9Oo58x0HOP5znGzVhYW9U3e5wVuA4LAZU2AGezTmkhO1CgQRFDhDg4nneHsu/t3WniXg9QrG2nIXL/ZS8ln8Q==} - '@emnapi/core@1.11.1': resolution: {integrity: sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==} + '@emnapi/core@1.11.2': + resolution: {integrity: sha512-TC8MkTuZUtcTSiFeuC0ksCh9QIJ5+F21MvZ4Wn4ORfYaFJ/0dsiudv5tVkejgwZlwQ39jL9WWDe2lz8x0WglOA==} + '@emnapi/runtime@1.10.0': resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} - '@emnapi/runtime@1.11.0': - resolution: {integrity: sha512-55coeOFKHv1ywEcUXJtWU5f+Jr/W5tZDvZig8DLKSwUN1JpROQ4rk/SNOQiFWmaR/VKF4zuFyW1B8JduOSv6Pg==} - '@emnapi/runtime@1.11.1': resolution: {integrity: sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==} + '@emnapi/runtime@1.11.2': + resolution: {integrity: sha512-kyOl3X0DuTiT1h2ft8r2fYO8JYtU9a9Xis/zBSiGArNaagCOWx90N1k2wxp18czFDH+OgcWGb5ZP/XMt3dcyPA==} + + '@emnapi/runtime@1.11.3': + resolution: {integrity: sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==} + '@emnapi/wasi-threads@1.2.1': resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} @@ -1380,11 +1426,11 @@ packages: '@esbuild-kit/core-utils@3.3.2': resolution: {integrity: sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==} - deprecated: 'Merged into tsx: https://tsx.is' + deprecated: 'Merged into tsx: https://tsx.hirok.io' '@esbuild-kit/esm-loader@2.6.5': resolution: {integrity: sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA==} - deprecated: 'Merged into tsx: https://tsx.is' + deprecated: 'Merged into tsx: https://tsx.hirok.io' '@esbuild/aix-ppc64@0.25.12': resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} @@ -1398,12 +1444,6 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.18.20': - resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm64@0.25.12': resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==} engines: {node: '>=18'} @@ -1416,12 +1456,6 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm@0.18.20': - resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - '@esbuild/android-arm@0.25.12': resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==} engines: {node: '>=18'} @@ -1434,12 +1468,6 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-x64@0.18.20': - resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - '@esbuild/android-x64@0.25.12': resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==} engines: {node: '>=18'} @@ -1452,12 +1480,6 @@ packages: cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.18.20': - resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-arm64@0.25.12': resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==} engines: {node: '>=18'} @@ -1470,12 +1492,6 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.18.20': - resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - '@esbuild/darwin-x64@0.25.12': resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==} engines: {node: '>=18'} @@ -1488,12 +1504,6 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.18.20': - resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-arm64@0.25.12': resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==} engines: {node: '>=18'} @@ -1506,12 +1516,6 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.18.20': - resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - '@esbuild/freebsd-x64@0.25.12': resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==} engines: {node: '>=18'} @@ -1524,12 +1528,6 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.18.20': - resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm64@0.25.12': resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==} engines: {node: '>=18'} @@ -1542,12 +1540,6 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.18.20': - resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - '@esbuild/linux-arm@0.25.12': resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==} engines: {node: '>=18'} @@ -1560,12 +1552,6 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.18.20': - resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-ia32@0.25.12': resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==} engines: {node: '>=18'} @@ -1578,12 +1564,6 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.18.20': - resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - '@esbuild/linux-loong64@0.25.12': resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==} engines: {node: '>=18'} @@ -1596,12 +1576,6 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.18.20': - resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-mips64el@0.25.12': resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==} engines: {node: '>=18'} @@ -1614,12 +1588,6 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.18.20': - resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-ppc64@0.25.12': resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==} engines: {node: '>=18'} @@ -1632,12 +1600,6 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.18.20': - resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-riscv64@0.25.12': resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==} engines: {node: '>=18'} @@ -1650,12 +1612,6 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.18.20': - resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - '@esbuild/linux-s390x@0.25.12': resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==} engines: {node: '>=18'} @@ -1668,12 +1624,6 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.18.20': - resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - '@esbuild/linux-x64@0.25.12': resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==} engines: {node: '>=18'} @@ -1698,12 +1648,6 @@ packages: cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.18.20': - resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - '@esbuild/netbsd-x64@0.25.12': resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==} engines: {node: '>=18'} @@ -1728,12 +1672,6 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.18.20': - resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - '@esbuild/openbsd-x64@0.25.12': resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==} engines: {node: '>=18'} @@ -1758,12 +1696,6 @@ packages: cpu: [arm64] os: [openharmony] - '@esbuild/sunos-x64@0.18.20': - resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - '@esbuild/sunos-x64@0.25.12': resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==} engines: {node: '>=18'} @@ -1776,12 +1708,6 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.18.20': - resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-arm64@0.25.12': resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==} engines: {node: '>=18'} @@ -1794,12 +1720,6 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.18.20': - resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-ia32@0.25.12': resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==} engines: {node: '>=18'} @@ -1812,12 +1732,6 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.18.20': - resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - '@esbuild/win32-x64@0.25.12': resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==} engines: {node: '>=18'} @@ -1830,8 +1744,8 @@ packages: cpu: [x64] os: [win32] - '@eslint-community/eslint-utils@4.9.1': - resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} + '@eslint-community/eslint-utils@4.10.1': + resolution: {integrity: sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 @@ -1877,35 +1791,26 @@ packages: '@noble/hashes': optional: true - '@floating-ui/core@1.7.5': - resolution: {integrity: sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==} - '@floating-ui/core@1.8.0': resolution: {integrity: sha512-0CIZ5itps/8x7BG8dEIhs53BvCUH2PCoogtakwRTut+Arm58sJooJ0AuZhLw2HJYIR5cMLNPBSS728sPho2khQ==} - '@floating-ui/dom@1.7.6': - resolution: {integrity: sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==} - '@floating-ui/dom@1.8.0': resolution: {integrity: sha512-yXSrzeHZBTZadLOlfyhCkJHNeLJnHRnRInwdZ40L7ZiaAtrBwoYlsDrX3v5zB1Utk7CLfzcOVnVVWoXEky7Ceg==} - '@floating-ui/react-dom@2.1.8': - resolution: {integrity: sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A==} + '@floating-ui/react-dom@2.1.9': + resolution: {integrity: sha512-JDjEFGCpImxDCA7JJKviA0M9+RtmJdj0m/NVU5IMgBK+AmZouAQQ7/+2GLH0GXXY0YMw9oXPB8hKdbPYg5QLYg==} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' - '@floating-ui/utils@0.2.11': - resolution: {integrity: sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==} - '@floating-ui/utils@0.2.12': resolution: {integrity: sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww==} '@fontsource-variable/geist@5.3.0': resolution: {integrity: sha512-j0m+vLQuG5XAYoHtGCVu0spvlGreR3EzpECUVzkFmI1mTVnAO38l/NEPDCFgZ177JxzYJCLSmTQibIiYPilGrA==} - '@hono/node-server@1.19.14': - resolution: {integrity: sha512-GwtvgtXxnWsucXvbQXkRgqksiH2Qed37H9xHZocE5sA3N8O8O8/8FA3uclQXxXVzc9XBZuEOMK7+r02FmSpHtw==} + '@hono/node-server@1.19.17': + resolution: {integrity: sha512-dSneS5qhiauZWGDCeK4o695Xd9nUNjviSZCMQrj10eetr8Uln1ucn6bbphOM6UynAMMtNIzZNSpL9vnASJwrPQ==} engines: {node: '>=18.14.1'} peerDependencies: hono: ^4 @@ -1936,8 +1841,8 @@ packages: '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} - '@iconify/utils@3.1.3': - resolution: {integrity: sha512-LPKOXPn/zV+zis1oOfGWogaXVpqUybF3ZS6SCZIsz8vg0ivVp9+fVqyYB7xq0aiST/VhUQYGO1qo6uoYSiEJqw==} + '@iconify/utils@3.1.4': + resolution: {integrity: sha512-b1S7B1k9ohZ+iNTi2ATxbRYG9fTrJmUT0rc46bvVnNxqNRGW7dyo/vRREwyniI5IRN2RSJHDcm+s3BjWrSAjHw==} '@img/colour@1.1.0': resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==} @@ -2101,10 +2006,32 @@ packages: cpu: [x64] os: [win32] + '@inquirer/ansi@1.0.2': + resolution: {integrity: sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==} + engines: {node: '>=18'} + '@inquirer/ansi@2.0.7': resolution: {integrity: sha512-3eTuUO1vH2cZm2ZKHeQxnOqlTi9EfZDGgIe3BL3I4u+rJHocr9Fz86M4fjYABPvFnQG/gGK551HqDiIcETwU6Q==} engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'} + '@inquirer/checkbox@4.3.2': + resolution: {integrity: sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/confirm@5.1.21': + resolution: {integrity: sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/confirm@6.1.1': resolution: {integrity: sha512-eb8DBZcz/2qHWQda4rk2JiQk5h9QV/cVHi1yjt0f69WFZMRFn0sJTye3EAP8icut8UDMjQPsaH5KbcOogefrFQ==} engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'} @@ -2114,6 +2041,15 @@ packages: '@types/node': optional: true + '@inquirer/core@10.3.2': + resolution: {integrity: sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/core@11.2.1': resolution: {integrity: sha512-Qd6GJT1yVyrZZCfN8W2qKF5ApmqryXRhRKCuip8h01x2w/esJQ2XIYc6f9abMIHgKQdBfFTSOdbHRLAhuM09UA==} engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'} @@ -2123,10 +2059,113 @@ packages: '@types/node': optional: true + '@inquirer/editor@4.2.23': + resolution: {integrity: sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/expand@4.0.23': + resolution: {integrity: sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/external-editor@1.0.3': + resolution: {integrity: sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/figures@1.0.15': + resolution: {integrity: sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==} + engines: {node: '>=18'} + '@inquirer/figures@2.0.7': resolution: {integrity: sha512-aJ8TBPOGB6f/2qziPfElISTCEd5XOYTFckA2SGjhNmiKzfK/u4ot3v0DUzGVdUnKjN10EqnnEPck36BkyfLnJw==} engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'} + '@inquirer/input@4.3.1': + resolution: {integrity: sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/number@3.0.23': + resolution: {integrity: sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/password@4.0.23': + resolution: {integrity: sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/prompts@7.10.1': + resolution: {integrity: sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/rawlist@4.1.11': + resolution: {integrity: sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/search@3.2.2': + resolution: {integrity: sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/select@4.4.2': + resolution: {integrity: sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/type@3.0.10': + resolution: {integrity: sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/type@4.0.7': resolution: {integrity: sha512-t28inv14nMQ1PhKpsJPY+kEs/c00qzeCOS2gTNRyTjG5d6qsVA2fItxW4hkvGZ5lvanGLdtCzVIx5dwdRpN1+g==} engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'} @@ -2170,12 +2209,16 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - '@mermaid-js/parser@1.1.1': - resolution: {integrity: sha512-VuHdsYMK1bT6X2JbcAaWAhugTRvRBRyuZgd+c22swUeI9g/ntaxF7CY7dYarhZovofCbUNO0G7JesfmNtjYOCw==} - '@mermaid-js/parser@1.2.0': resolution: {integrity: sha512-oYPyv8A4As1yH5Bx+04iQEQxXuIQDe0GKCNSRgao6z8AM9jixXIfP0vsppRLvGf+nKIOb9/LdpWA4YuJiVvESA==} + '@mishieck/ink-titled-box@0.3.0': + resolution: {integrity: sha512-ugzVH9hixp3hwKfQ8On/qnsrdAxS3y9rTu/aGOFed4zVUvtZyGZNIR4rxAwXult8HKI4vJEh0OM8wib9NPrwUg==} + peerDependencies: + ink: ^6.0.0 + react: ^19.1.0 + typescript: ^5 + '@mixmark-io/domino@2.2.0': resolution: {integrity: sha512-Y28PR25bHXUg88kCV7nivXrP2Nj2RueZ3/l/jdx6J9f8J4nsEGcgX0Qe6lt7Pa+J79+kPiJU3LguR6O/6zrLOw==} @@ -2197,17 +2240,12 @@ packages: resolution: {integrity: sha512-VVPPgHyQ6ShqnrmDWuxjmUIsO9gWyOZFmuOfLd9LfBGQJwZfy0gvv9pbHSJuoFNIYC7ZDX9aoFwowjcdSC4E8w==} engines: {node: '>=18'} - '@napi-rs/wasm-runtime@1.1.5': - resolution: {integrity: sha512-AWPoBRJ9tsnVhor4sjO7rkni+7p+2IAEFj6cx06UgP10jkQHqay/36uRV/bFkgrh18D9vb4cr8Q0Pthskgzy+Q==} - peerDependencies: - '@emnapi/core': ^1.7.1 - '@emnapi/runtime': ^1.7.1 - - '@napi-rs/wasm-runtime@1.1.6': - resolution: {integrity: sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==} + '@napi-rs/wasm-runtime@1.2.2': + resolution: {integrity: sha512-JfB4kuJQjaoHuCTseIINHtHWeJnvgEcxjwA5t/Y00ZgaOO1Crz3fjT/p8kT28zA/Caz7oiUMn3d6H2yOVCVwuw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=23.5.0} peerDependencies: - '@emnapi/core': ^1.7.1 - '@emnapi/runtime': ^1.7.1 + '@emnapi/core': ^1.7.1 || ^2.0.0-alpha.3 + '@emnapi/runtime': ^1.7.1 || ^2.0.0-alpha.3 '@noble/ciphers@2.2.0': resolution: {integrity: sha512-Z6pjIZ/8IJcCGzb2S/0Px5J81yij85xASuk1teLNeg75bfT07MV3a/O2Mtn1I2se43k3lkVEcFaR10N4cgQcZA==} @@ -2217,8 +2255,8 @@ packages: resolution: {integrity: sha512-IYqDGiTXab6FniAgnSdZwgWbomxpy9FtYvLKs7wCUs2a8RkITG+DFGO1DM9cr+E3/RgADRpFjrKVaJ1z6sjtEg==} engines: {node: '>= 20.19.0'} - '@nodable/entities@2.2.0': - resolution: {integrity: sha512-9uGyhaQavEUMC8AIddIjau4NsnsXhou+j5sBAGojCM1oxmQpVKTWR/9JxABD6UAv12vpIms55fPZKFQEhG6uBg==} + '@nodable/entities@3.0.0': + resolution: {integrity: sha512-8L9xFeTYKhm49xfIypoe2W5wV1m/3Z58kT+7kR9A8OyFxcPduI4VmxaUMQyKYrRjUoLLSXv6EKKID5Tvj9cUVw==} '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -2260,46 +2298,70 @@ packages: '@open-draft/until@2.1.0': resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} - '@opentelemetry/api-logs@0.214.0': - resolution: {integrity: sha512-40lSJeqYO8Uz2Yj7u94/SJWE/wONa7rmMKjI1ZcIjgf3MHNHv1OZUCrCETGuaRF62d5pQD1wKIW+L4lmSMTzZA==} + '@opentelemetry/api-logs@0.220.0': + resolution: {integrity: sha512-CmVa4ImJ+ynfrPMNaAXHET6Bhb44SwzmfyVJFq9ni2jgXJR/l7C6gfVFddNmHP+ZOkP9cf4f9DBe68qVLTHc9w==} engines: {node: '>=8.0.0'} '@opentelemetry/api@1.9.1': resolution: {integrity: sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==} engines: {node: '>=8.0.0'} - '@opentelemetry/core@2.8.0': - resolution: {integrity: sha512-hd1Lfh8p545nNz+jq1Ejfz+Mn1hyLuxYn1YzTfFNrxr8urEWMNQLPf1Th8kjOH+HxwawCrtgBp8JpBUR4ZSgww==} + '@opentelemetry/core@2.10.0': + resolution: {integrity: sha512-/wNZ8twnEQQA4HoHu22+vcsdru6pWPWxW+7w+FlxT6Id7PE/WIbZmVKkte+PF72e0F2dnImFeHD2syyE1Mw6MQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/instrumentation@0.214.0': - resolution: {integrity: sha512-MHqEX5Dk59cqVah5LiARMACku7jXSVk9iVDWOea4x3cr7VfdByeDCURK6o1lntT1JS/Tsovw01UJrBhN3/uC5w==} + '@opentelemetry/instrumentation@0.220.0': + resolution: {integrity: sha512-xQx3E2WxP1mDvKzxLxX+CTCtNLa560YJZ3087qYHerl2YmiKpv7AH+dAy7vmx+eVrZ5BwhfWUAVoKOoxCNHcpw==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/resources@2.8.0': - resolution: {integrity: sha512-qmXQ27ilDbUK/vGMqwL8D4/rhn76C+sherM4wTbjlfknR8Nvfc/hCxjRJPhkzZzUsPiNg16SA31NxMabwttRjg==} + '@opentelemetry/resources@2.10.0': + resolution: {integrity: sha512-q6MMm2zhggzsHVNbabYwut+a6nbuQQe3URUoxaojM/8K1IBfwwPzvxIjNi2/lI1TFe+fMHMW9MWhrtDLEXEnkA==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' - '@opentelemetry/sdk-trace-base@2.8.0': - resolution: {integrity: sha512-mhU4jp+vW0mGbFRd+GeXHvmfA4aDqWjBjLC3pE5XMpLs0IE2ryYb019Ts2AQrOq67gaTF25D91+fgvEHDZEnuQ==} + '@opentelemetry/sdk-trace-base@2.10.0': + resolution: {integrity: sha512-GuYQQT7QD2EeO8lcZLRQzcbOyhqAzL+6WWTKTU9mSUBYBazkEDl+VrQcXQhbB08OWM9anD1aHleVadzulpOaUQ==} engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' - '@opentelemetry/semantic-conventions@1.41.1': - resolution: {integrity: sha512-/UhIkaZgPutTFmQ7RnIJGgDXZmtEJ7Dvi86xNTFWcnRxVRNk/aotsqDJYeEvDP+FSMB2SdW+pQzNMcWP0rwuNA==} - engines: {node: '>=14'} + '@opentelemetry/sdk-trace@2.10.0': + resolution: {integrity: sha512-MfQGq3GRmTh5fM/y+OjaO0vj6+luCB1XO2gfXCalKCfgKw0eHL++sm75DNweC6ohlp+aFvACqeE0fYayqdRaoQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' '@opentelemetry/semantic-conventions@1.43.0': resolution: {integrity: sha512-eSYWTm620tTk45EKSedaUL8MFYI8hW164hIXsgIHyxu3VobUB3fFCu5t0hQby6OoWRPsG1KkKUG2M5UadiLiVg==} engines: {node: '>=14'} + '@oslojs/asn1@1.0.0': + resolution: {integrity: sha512-zw/wn0sj0j0QKbIXfIlnEcTviaCzYOY3V5rAyjR6YtOByFtJiT574+8p9Wlach0lZH9fddD4yb9laEAIl4vXQA==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + + '@oslojs/binary@1.0.0': + resolution: {integrity: sha512-9RCU6OwXU6p67H4NODbuxv2S3eenuQ4/WFLrsq+K/k682xrznH5EVWA7N4VFk9VYVcbFtKqur5YQQZc0ySGhsQ==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + + '@oslojs/crypto@1.0.1': + resolution: {integrity: sha512-7n08G8nWjAr/Yu3vu9zzrd0L9XnrJfpMioQcvCMxBIiF5orECHe5/3J0jmXRVvgfqMm/+4oxlQ+Sq39COYLcNQ==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + + '@oslojs/encoding@0.4.1': + resolution: {integrity: sha512-hkjo6MuIK/kQR5CrGNdAPZhS01ZCXuWDRJ187zh6qqF2+yMHZpD9fAYpX8q2bOO6Ryhl3XpCT6kUX76N8hhm4Q==} + + '@oslojs/encoding@1.1.0': + resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} + + '@oslojs/jwt@0.2.0': + resolution: {integrity: sha512-bLE7BtHrURedCn4Mco3ma9L4Y1GR2SMBuIvjWr7rmQ4/W/4Jy70TIAgZ+0nIlk0xHz1vNP8x8DCns45Sb2XRbg==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + '@oxc-parser/binding-android-arm-eabi@0.120.0': resolution: {integrity: sha512-WU3qtINx802wOl8RxAF1v0VvmC2O4D9M8Sv486nLeQ7iPHVmncYZrtBhB4SYyX+XZxj2PNnCcN+PW21jHgiOxg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2318,6 +2380,12 @@ packages: cpu: [arm] os: [android] + '@oxc-parser/binding-android-arm-eabi@0.142.0': + resolution: {integrity: sha512-ZiRGDutGsv1G6bL/ozy/koC0Sv39T1DqyoC4KD1DOy9ZoACm1O5UWhEK2c02Qdk+4lfLVkvFa/mQ0fm/4h1BtQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + '@oxc-parser/binding-android-arm64@0.120.0': resolution: {integrity: sha512-SEf80EHdhlbjZEgzeWm0ZA/br4GKMenDW3QB/gtyeTV1gStvvZeFi40ioHDZvds2m4Z9J1bUAUL8yn1/+A6iGg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2336,6 +2404,12 @@ packages: cpu: [arm64] os: [android] + '@oxc-parser/binding-android-arm64@0.142.0': + resolution: {integrity: sha512-WZkvGRLNQTz8lR9zP5nLjUdlroRCopBu3g9zF1p/laE6DzT1UbQo8Rdz5MWhaJUPYg/6gp+jo7HUgsyKaN1FtQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + '@oxc-parser/binding-darwin-arm64@0.120.0': resolution: {integrity: sha512-xVrrbCai8R8CUIBu3CjryutQnEYhZqs1maIqDvtUCFZb8vY33H7uh9mHpL3a0JBIKoBUKjPH8+rzyAeXnS2d6A==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2354,6 +2428,12 @@ packages: cpu: [arm64] os: [darwin] + '@oxc-parser/binding-darwin-arm64@0.142.0': + resolution: {integrity: sha512-l4khS8LQOOVYsGRVARo1gSaCT/aBSceUVXgtovWc2+drnxVuDr082WA3OCHVdVzIz5JIrP/y9CWsSKxBDNmYGg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + '@oxc-parser/binding-darwin-x64@0.120.0': resolution: {integrity: sha512-xyHBbnJ6mydnQUH7MAcafOkkrNzQC6T+LXgDH/3InEq2BWl/g424IMRiJVSpVqGjB+p2bd0h0WRR8iIwzjU7rw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2372,6 +2452,12 @@ packages: cpu: [x64] os: [darwin] + '@oxc-parser/binding-darwin-x64@0.142.0': + resolution: {integrity: sha512-QBsNF3nqlXmcH2B1YOPqQYmCJoy4HuIjUxGbBO/k5JAJUl68ghU2psRY2zPk+RyBaWqKP/qfL4oaFgEMCdwskA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + '@oxc-parser/binding-freebsd-x64@0.120.0': resolution: {integrity: sha512-UMnVRllquXUYTeNfFKmxTTEdZ/ix1nLl0ducDzMSREoWYGVIHnOOxoKMWlCOvRr9Wk/HZqo2rh1jeumbPGPV9A==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2390,6 +2476,12 @@ packages: cpu: [x64] os: [freebsd] + '@oxc-parser/binding-freebsd-x64@0.142.0': + resolution: {integrity: sha512-b7Q7m4Cqc6XqNhri3R+QhU+GVy646Pn+bkdhrDdWym/Fdi0ZUa+d73H9dm5H91JtbtAQ/z1d8XKMW3oOV8a4tQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + '@oxc-parser/binding-linux-arm-gnueabihf@0.120.0': resolution: {integrity: sha512-tkvn2CQ7QdcsMnpfiX3fd3wA3EFsWKYlcQzq9cFw/xc89Al7W6Y4O0FgLVkVQpo0Tnq/qtE1XfkJOnRRA9S/NA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2408,6 +2500,12 @@ packages: cpu: [arm] os: [linux] + '@oxc-parser/binding-linux-arm-gnueabihf@0.142.0': + resolution: {integrity: sha512-3riVS5IhdH3uCZj1Y9ftDQlR0dvLsIlw/edrRqk8JhgNd5K0XSs+UBtgh50N13CAlW9/TXj6sVGXaKNBocd0Yg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + '@oxc-parser/binding-linux-arm-musleabihf@0.120.0': resolution: {integrity: sha512-WN5y135Ic42gQDk9grbwY9++fDhqf8knN6fnP+0WALlAUh4odY/BDK1nfTJRSfpJD9P3r1BwU0m3pW2DU89whQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2426,6 +2524,12 @@ packages: cpu: [arm] os: [linux] + '@oxc-parser/binding-linux-arm-musleabihf@0.142.0': + resolution: {integrity: sha512-NmXUOpgpTSkhl795TiXmWppTwmSJ92RC1qvD6e4XOF+slgmo3e6Ah+kEu+6AN8s7NAOEwqGmir58MgSQSWmBSA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + '@oxc-parser/binding-linux-arm64-gnu@0.120.0': resolution: {integrity: sha512-1GgQBCcXvFMw99EPdMy+4NZ3aYyXsxjf9kbUUg8HuAy3ZBXzOry5KfFEzT9nqmgZI1cuetvApkiJBZLAPo8uaw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2447,6 +2551,13 @@ packages: os: [linux] libc: [glibc] + '@oxc-parser/binding-linux-arm64-gnu@0.142.0': + resolution: {integrity: sha512-gc0EXsKtXgerujmU2Bql3u1L1HsSQ2774R83idq/FoNMPVV/RY/1ErFsvnit7KoiP/sLvzQixeUo4Ut0ic0wmw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + '@oxc-parser/binding-linux-arm64-musl@0.120.0': resolution: {integrity: sha512-gmMQ70gsPdDBgpcErvJEoWNBr7bJooSLlvOBVBSGfOzlP5NvJ3bFvnUeZZ9d+dPrqSngtonf7nyzWUTUj/U+lw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2468,6 +2579,13 @@ packages: os: [linux] libc: [musl] + '@oxc-parser/binding-linux-arm64-musl@0.142.0': + resolution: {integrity: sha512-F2XvmWSE0uWpie+jHKKIFgdVOe9ypGhkEZxKx5DuW215K6cbAC274yYaPkcM7EqY4Df3Weyhpcz3lsURyH2LVg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + '@oxc-parser/binding-linux-ppc64-gnu@0.120.0': resolution: {integrity: sha512-T/kZuU0ajop0xhzVMwH5r3srC9Nqup5HaIo+3uFjIN5uPxa0LvSxC1ZqP4aQGJVW5G0z8/nCkjIfSMS91P/wzw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2489,6 +2607,13 @@ packages: os: [linux] libc: [glibc] + '@oxc-parser/binding-linux-ppc64-gnu@0.142.0': + resolution: {integrity: sha512-wLMbT21U/QxknQsk+VvNF0b9D2/aGWhcaQQQ+VYlE8FwD5+GoWZIPPXNzyHmkYyhm0KB3itL+TBavjMatqNnYA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + '@oxc-parser/binding-linux-riscv64-gnu@0.120.0': resolution: {integrity: sha512-vn21KXLAXzaI3N5CZWlBr1iWeXLl9QFIMor7S1hUjUGTeUuWCoE6JZB040/ZNDwf+JXPX8Ao9KbmJq9FMC2iGw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2510,6 +2635,13 @@ packages: os: [linux] libc: [glibc] + '@oxc-parser/binding-linux-riscv64-gnu@0.142.0': + resolution: {integrity: sha512-+G8F/4ckwT7FCJV4H2bt09xEzJbjNCfuL4Sp1AYNaFtFMVtgIGMuJlteT82U+K0UIZ/DzAR/LDlMFnEuajG7Kw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [glibc] + '@oxc-parser/binding-linux-riscv64-musl@0.120.0': resolution: {integrity: sha512-SUbUxlar007LTGmSLGIC5x/WJvwhdX+PwNzFJ9f/nOzZOrCFbOT4ikt7pJIRg1tXVsEfzk5mWpGO1NFiSs4PIw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2531,6 +2663,13 @@ packages: os: [linux] libc: [musl] + '@oxc-parser/binding-linux-riscv64-musl@0.142.0': + resolution: {integrity: sha512-hTsHtTLxMAfCo+rpF5K3qZJKW2NpPN/CHd4mYB3y7XlSdspHkd2gehDIofP64AacA9nWQw2tY3O7wR6UY8IVOA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [musl] + '@oxc-parser/binding-linux-s390x-gnu@0.120.0': resolution: {integrity: sha512-hYiPJTxyfJY2+lMBFk3p2bo0R9GN+TtpPFlRqVchL1qvLG+pznstramHNvJlw9AjaoRUHwp9IKR7UZQnRPGjgQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2552,6 +2691,13 @@ packages: os: [linux] libc: [glibc] + '@oxc-parser/binding-linux-s390x-gnu@0.142.0': + resolution: {integrity: sha512-6y7qYY3TCUDYjqswImdTGl92y+KA/80twALegQPN27kfY+bG7Ib1+L3jbmrCZQx6wrVnai9IPsEZp07I0hx7JQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + '@oxc-parser/binding-linux-x64-gnu@0.120.0': resolution: {integrity: sha512-q+5jSVZkprJCIy3dzJpApat0InJaoxQLsJuD6DkX8hrUS61z2lHQ1Fe9L2+TYbKHXCLWbL0zXe7ovkIdopBGMQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2573,6 +2719,13 @@ packages: os: [linux] libc: [glibc] + '@oxc-parser/binding-linux-x64-gnu@0.142.0': + resolution: {integrity: sha512-i69kAWU+2LgoH5bR+zWiiu+UzAw7Oxkwv7COeJTeY19pn4e70nKQcr9Pm6cL2Z0Z54d+gl9qADlK/0yyuCPiBA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + '@oxc-parser/binding-linux-x64-musl@0.120.0': resolution: {integrity: sha512-D9QDDZNnH24e7X4ftSa6ar/2hCavETfW3uk0zgcMIrZNy459O5deTbWrjGzZiVrSWigGtlQwzs2McBP0QsfV1w==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2594,6 +2747,13 @@ packages: os: [linux] libc: [musl] + '@oxc-parser/binding-linux-x64-musl@0.142.0': + resolution: {integrity: sha512-4SQs678MmjYVrmhAgCWD4o0vpaFszXw9xLX5p2Z9MMFcltxiLkA88wQjh80YHjPrXtpyZ2CWI5m+1yNKM0m2Pw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + '@oxc-parser/binding-openharmony-arm64@0.120.0': resolution: {integrity: sha512-TBU8ZwOUWAOUWVfmI16CYWbvh4uQb9zHnGBHsw5Cp2JUVG044OIY1CSHODLifqzQIMTXvDvLzcL89GGdUIqNrA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2612,6 +2772,12 @@ packages: cpu: [arm64] os: [openharmony] + '@oxc-parser/binding-openharmony-arm64@0.142.0': + resolution: {integrity: sha512-YHpx9N7Ln3a++Tc8rv+H7mrK1zyJQOAwCFg8LZ3lTs1T5afGWeZrLPhPT9HLnIwSjCyJqPWVMIrMxbjcmBr2oQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + '@oxc-parser/binding-wasm32-wasi@0.120.0': resolution: {integrity: sha512-WG/FOZgDJCpJnuF3ToG/K28rcOmSY7FmFmfBKYb2fmLyhDzPpUldFGV7/Fz4ru0Iz/v4KPmf8xVgO8N3lO4KHA==} engines: {node: '>=14.0.0'} @@ -2627,6 +2793,11 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} cpu: [wasm32] + '@oxc-parser/binding-wasm32-wasi@0.142.0': + resolution: {integrity: sha512-3pLDyY3+oogW73RM5uehNgAiR/Xfb7fvO2Q1Z1gIqZ2+50XDVQmBVlRkHXZTU4gKnQHpwETNsYQVsJ3joVB2iA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [wasm32] + '@oxc-parser/binding-win32-arm64-msvc@0.120.0': resolution: {integrity: sha512-1T0HKGcsz/BKo77t7+89L8Qvu4f9DoleKWHp3C5sJEcbCjDOLx3m9m722bWZTY+hANlUEs+yjlK+lBFsA+vrVQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2645,6 +2816,12 @@ packages: cpu: [arm64] os: [win32] + '@oxc-parser/binding-win32-arm64-msvc@0.142.0': + resolution: {integrity: sha512-Had/VeVY28Oyb0K+Q4FV8KCzoBycIh93oDK6pCbya9lkzdq+ikMHMgBubsdqqlybjJmQRawCQRrnBRHyQwYvcQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + '@oxc-parser/binding-win32-ia32-msvc@0.120.0': resolution: {integrity: sha512-L7vfLzbOXsjBXV0rv/6Y3Jd9BRjPeCivINZAqrSyAOZN3moCopDN+Psq9ZrGNZtJzP8946MtlRFZ0Als0wBCOw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2663,6 +2840,12 @@ packages: cpu: [ia32] os: [win32] + '@oxc-parser/binding-win32-ia32-msvc@0.142.0': + resolution: {integrity: sha512-GGi3+YphVHavvgs6gum2UXoNCqzHAmPt/nXkn8ZQZstV2Q1qZD1Mn8fz/nWrDkefHQtrG/+1/XrbMxsBTo6Svw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ia32] + os: [win32] + '@oxc-parser/binding-win32-x64-msvc@0.120.0': resolution: {integrity: sha512-ys+upfqNtSu58huAhJMBKl3XCkGzyVFBlMlGPzHeFKgpFF/OdgNs1MMf8oaJIbgMH8ZxgGF7qfue39eJohmKIg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2681,6 +2864,12 @@ packages: cpu: [x64] os: [win32] + '@oxc-parser/binding-win32-x64-msvc@0.142.0': + resolution: {integrity: sha512-Ny/Wv4Us1LGC/ljwNTp+Hx3r/pH15EFfeDF0p+n898gt+TtRd6C9SccHcuUhDiNTb8s5tt7jdeAMDRQZ4Vq6hg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + '@oxc-project/runtime@0.138.0': resolution: {integrity: sha512-yHhoXsN8tYxgdJCdD91PbySNjEEaBX/tH2OQRDXJpsQv5b184oC4/qVbU7qlblvfil/JP15Lh2HW7+HN5DS90Q==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2707,106 +2896,109 @@ packages: '@oxc-project/types@0.141.0': resolution: {integrity: sha512-S4as7z0j0xQkXcJlyY5ehntwK8/wRkQb9Cyqw+J/N2rkWGQGK0SxD6X6DhQTc7qsxVTBxXbxZtBJh3mr3PtIzQ==} - '@oxc-resolver/binding-android-arm-eabi@11.21.3': - resolution: {integrity: sha512-eNU11A2WNizh04v3uyaJCootrHIaS0B9aHYXvAvVnPNk4xYSjMUjHnhQ6dewPN2MRYDskV85d1N0Aw0WNWhcyg==} + '@oxc-project/types@0.142.0': + resolution: {integrity: sha512-7W+2q5AKQVU36fkaryontrHn3YDt1RyUYXatw9i5H8ocYe2sPKSFB6eS8WNPeRKiN1qAWWZUPm7gwFzJGrccqQ==} + + '@oxc-resolver/binding-android-arm-eabi@11.24.2': + resolution: {integrity: sha512-y09e0L0SRI2OA2tUIrjBgoV3eH5hvUKXNkJqXmNo5V2WxIjyC7I7aJfRLMEVpA8yi95f90gFDvO0VMgrDw+vwA==} cpu: [arm] os: [android] - '@oxc-resolver/binding-android-arm64@11.21.3': - resolution: {integrity: sha512-8Q+ZjTLvn2dIcWsrmhdrEihm7q+ag/k+mkry7Z+t0QbbHaVxXQfvH9AewyVMh/WrpEKhQ3DDgx9fYbqeCpeOEw==} + '@oxc-resolver/binding-android-arm64@11.24.2': + resolution: {integrity: sha512-cl4icWaZFnLdg8m6qtnh5rBMuGbxc/ptStFHLeCNwr+2cZjkjNwQu/jYRS0CHlnPecOJMpuS5M6/BH+0J/YkEg==} cpu: [arm64] os: [android] - '@oxc-resolver/binding-darwin-arm64@11.21.3': - resolution: {integrity: sha512-wkh0qKZGHXVUDxFw3oA1TXnU2BDYY/r775oJflGeIr8uDPPoN2pk8gijQIzYRT6hoql/lg3+Tx/SaTn9e2/aGg==} + '@oxc-resolver/binding-darwin-arm64@11.24.2': + resolution: {integrity: sha512-At29QEMF6HajbQvgY8K6OXnHD1x9rad74xBEfmCB6ZqCGsdq75aK7tOYcTbOanMy8qdIBrfL3SMr3p/lfSlb9w==} cpu: [arm64] os: [darwin] - '@oxc-resolver/binding-darwin-x64@11.21.3': - resolution: {integrity: sha512-HbNc23FAQYbuyDV2vBWMez4u4mrsm5RAkniGZAWqr6lYZ3N4beeqIb776jzwRl8qL2zRhHVXpUj97X0QgogVzg==} + '@oxc-resolver/binding-darwin-x64@11.24.2': + resolution: {integrity: sha512-A5Kqr1EUj4oIL5CF4WRssq/o5P0Y11cwoFouMRmQ7YnC/A8V93nv1nb7aSU8HwcgmXropjLNkVTl4MN87cu28Q==} cpu: [x64] os: [darwin] - '@oxc-resolver/binding-freebsd-x64@11.21.3': - resolution: {integrity: sha512-K6xNsTUPEUdfrn0+kbMq5nOUB5w1C5pavPQngt4TM2FpN91lP0PBe2srSpamb4d69O7h86oAi/qWX/kZNRSjkw==} + '@oxc-resolver/binding-freebsd-x64@11.24.2': + resolution: {integrity: sha512-R5xkRBRRz7ceH/P5Jrc6G7FmdUdgpLYyESFAUDVTNQ9K0sGPxcp4ljiwEwEqsvNcQ4sYbMRrWcHHBCu7ksAJVw==} cpu: [x64] os: [freebsd] - '@oxc-resolver/binding-linux-arm-gnueabihf@11.21.3': - resolution: {integrity: sha512-VcFmOpcpWX1zoEy8M58tR2M9YxM+Z9RuQhqAx5q0CTmrruaP7Gveejg75hzd/5sg5nk9G3aLALEa3hE2FsmmTQ==} + '@oxc-resolver/binding-linux-arm-gnueabihf@11.24.2': + resolution: {integrity: sha512-k/RuYL4L/R58IBn3wT5ma3Wh4k62bp1eYCFRWCmMsasUOqL+H6sW0VGFadEzKWXFFlz+2uIMoeMk9ySSZJHgbg==} cpu: [arm] os: [linux] - '@oxc-resolver/binding-linux-arm-musleabihf@11.21.3': - resolution: {integrity: sha512-quVoxFLBy43hWaQbbDtQNRwAX5vX76mv7n64icAtQcJ3eNgVeblqmkupF/hAneNthdqSlnd1sTjb3aQSaDPaCQ==} + '@oxc-resolver/binding-linux-arm-musleabihf@11.24.2': + resolution: {integrity: sha512-bnHAak3ujYfH5pKk4NieFNbvYvernfoQDgwLddbZ3OtMYrem87/qjlA+u+aKG0oZcqSLGCful/6/CEA+aeAgaA==} cpu: [arm] os: [linux] - '@oxc-resolver/binding-linux-arm64-gnu@11.21.3': - resolution: {integrity: sha512-X0AqNZgcD07Q4V3RDK18/vYOj/HQT/FnmEFGYS2jTWqY7JO13ryE3TEs3eAIgUJhBnNkpEaiXqz3VK8M7qQhWQ==} + '@oxc-resolver/binding-linux-arm64-gnu@11.24.2': + resolution: {integrity: sha512-vDT3KHgzYp47gmtNOqL2VNhCyl5Zv643eyxm//A68J8DeUGXrvD1pZFiaT4jSfe+RInfnn1R2yVHye4enx6RnA==} cpu: [arm64] os: [linux] libc: [glibc] - '@oxc-resolver/binding-linux-arm64-musl@11.21.3': - resolution: {integrity: sha512-YkaQnaKYdbuaXvRt5Qd0GpbihzVnyfR6z1SpYfIUC6RTu4NF7lDKPjVkYb+jRI2gedVO2rVpN35Y6akG6ud4Lw==} + '@oxc-resolver/binding-linux-arm64-musl@11.24.2': + resolution: {integrity: sha512-+kMlQvbzfyEYtu5FcjE4p+ttBLpKW4d/AsAsuE69BxV6V4twZJeIQZFfD8gh/wqglY0MkPSezWXQH0jBV13MUw==} cpu: [arm64] os: [linux] libc: [musl] - '@oxc-resolver/binding-linux-ppc64-gnu@11.21.3': - resolution: {integrity: sha512-gB9HwhrPiFqUzDeEq+y/CgAijz1YdI6BnXz5GaH2Pa9cWdutchlkGFAiAuGb/PjVQpiK6NFKzFuztxrweoit7A==} + '@oxc-resolver/binding-linux-ppc64-gnu@11.24.2': + resolution: {integrity: sha512-shjfMhmZ3gq9fv/w7bi3PnZlgOPG+2QAOFf0BJF0EgBSIGZ6PMLN2zbGEblTUYB/NKVDRyYhE2ff3dJ1QqNPkA==} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxc-resolver/binding-linux-riscv64-gnu@11.21.3': - resolution: {integrity: sha512-zjDWBlYk8QGv0H8dsPUWqkfjYIIjG2TvspGkzXL0eImbgxtZorA/klKeHyolevoT3Kvbi+1iMr9Lhrh7jf54Og==} + '@oxc-resolver/binding-linux-riscv64-gnu@11.24.2': + resolution: {integrity: sha512-zGelwFR5oRo+b69k8Lrzun86DyUHzfKN6cnjbR9l7Z7NIRznOE/2ZvPa1IUKqAL2PzAXOdwkfVqNvO1H2RlpAw==} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxc-resolver/binding-linux-riscv64-musl@11.21.3': - resolution: {integrity: sha512-4UfsQvacV388y1zpXL7C1x1FNYaV52JtuNRiuzrfQA2z1z6ElVrsidkGsrvQ5EgeSq1Pj7kaKqrgGkvFuxJ/tw==} + '@oxc-resolver/binding-linux-riscv64-musl@11.24.2': + resolution: {integrity: sha512-qxZ1SWCXJY0eyhAlP6Lmo9F2Nrtx7EkYj9oCgL8apDPCwXwCEDA2U697bbT81JIc2IrVjxO4KX6WU2N+oN9Z4w==} cpu: [riscv64] os: [linux] libc: [musl] - '@oxc-resolver/binding-linux-s390x-gnu@11.21.3': - resolution: {integrity: sha512-b5uH+HKH0MP5mNBYaK75SKsJbw52URqrx2LavYdq6wb0l3ExAG5niYRP9DWUNHdKilpaBVM2bXk9HNWrH3ew7Q==} + '@oxc-resolver/binding-linux-s390x-gnu@11.24.2': + resolution: {integrity: sha512-sGCecF3cx2DFlH4t/z7ApnOnXqN48p5p5mlHDEnHTAukQa2P+qMVE4CwyWE9W+q/m3QJ7kKfGrIjax31f44oFQ==} cpu: [s390x] os: [linux] libc: [glibc] - '@oxc-resolver/binding-linux-x64-gnu@11.21.3': - resolution: {integrity: sha512-PjYlmilBpNRh2ntXNYAK3Am5w/nPfEpnU/96iNx7CI8EzAn12J4JRiec63wHJTH31nLoCNxBg/829pN+3CfG3Q==} + '@oxc-resolver/binding-linux-x64-gnu@11.24.2': + resolution: {integrity: sha512-k/VlMMcSzMlahb3/fENM4rTlsJ0s3fFROA0KXPBmKggqmTSaE383sl8F3KCOXPLmVsYfW6hCitMhXCEtNeZxxg==} cpu: [x64] os: [linux] libc: [glibc] - '@oxc-resolver/binding-linux-x64-musl@11.21.3': - resolution: {integrity: sha512-QTBAb7JuHlZ7JUEyM8UiQi2f7m/L4swBhP2TNpYIDc9Wp/wRw1G/8sl6i13aIzQAXH7LKIm294LeOHd0lQR8zA==} + '@oxc-resolver/binding-linux-x64-musl@11.24.2': + resolution: {integrity: sha512-8hbnZyNi97b/8wapYaIF9+t9GmZKBW2vunaOc3h9HGJptH7b7XpvZqOTBSm/MpTjr7H497BlgOaSfLUdhmy2bw==} cpu: [x64] os: [linux] libc: [musl] - '@oxc-resolver/binding-openharmony-arm64@11.21.3': - resolution: {integrity: sha512-4j1DFwjwv36ec9kds0jU/ucQ5Ha4ERO/H95BxR5JFf0kqUUAJ1kwII7XhTc1vZrkdJkvLGC9Q2MbpObpum8RBg==} + '@oxc-resolver/binding-openharmony-arm64@11.24.2': + resolution: {integrity: sha512-MvyGik3a6pVgZ0t/kWlbmFxFLmXQJwgLsY2eYFHLpy0wGwRbfzeIGgDwQ3kXqE30z+kSXennRkCrT7TUvkptNg==} cpu: [arm64] os: [openharmony] - '@oxc-resolver/binding-wasm32-wasi@11.21.3': - resolution: {integrity: sha512-i8oluoel5kru/j1WNrjmQSiA3GQ7wvIYVR1IwIoZtKogAhya2iub+ZKIeSIkcJOrnzQ18Tzl/F+kL3fYOxZLvA==} + '@oxc-resolver/binding-wasm32-wasi@11.24.2': + resolution: {integrity: sha512-vHcssMPwO08RTvj/c0iOBz90attxyG3wQJ0dTcyEQK43LRpcdLWZlV5feBhv6Isn6ahbQIzHbCgfa81+RiML0Q==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@oxc-resolver/binding-win32-arm64-msvc@11.21.3': - resolution: {integrity: sha512-M/8dw8dD6aOs+NlPJax401CZB9I7Aut84isQLgALGGwke4Afvw+/7yYhZb94yXf6t2sPLhQLmSmtSV+2FhsOWg==} + '@oxc-resolver/binding-win32-arm64-msvc@11.24.2': + resolution: {integrity: sha512-uokJqro2iBqkFvJdKQLP7d8/BUmFwESQFVmIJUQKj1Xn1a/LysJoe1vmeECLF5b3jsV8CAL5sEMJXX6SdK9Nhg==} cpu: [arm64] os: [win32] - '@oxc-resolver/binding-win32-x64-msvc@11.21.3': - resolution: {integrity: sha512-H7BCt/VnS9hnmMp42eGhZ99izSCRvlnWwy/N71K1/J8QoExwY4262Z8QiEkMDtduRJrztayDxETTckmUuAVL9Q==} + '@oxc-resolver/binding-win32-x64-msvc@11.24.2': + resolution: {integrity: sha512-UqGPmo56KDfLlfXFAFIrNflHT8tFxWGEivWg3Zeyp4Uy2NlKN1FGPr6/BxcLGG3+kZ6Wp14g5Uj+n71boqZfiw==} cpu: [x64] os: [win32] @@ -3222,19 +3414,19 @@ packages: '@poppinss/exception@1.2.3': resolution: {integrity: sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw==} - '@posthog/ai@8.4.0': - resolution: {integrity: sha512-0HwEbk1QMvdEqE2jTMsKJRTGXpW7hyFSPSZWyUru6cSrTIztxFTRGiIFzpm/X63zqYvSvk07IFwC215Rg4g83g==} + '@posthog/ai@8.6.0': + resolution: {integrity: sha512-arNg9xbe6/r7rY7StAP6bOYw3JswUFFKVq6VcHMEBNYpiJ+ImJJX9+HS9F+/0tuyQcD4gdKe6BKurjjo+PeLLg==} engines: {node: ^20.20.0 || >=22.22.0} peerDependencies: '@ai-sdk/provider': ^2.0.0 || ^3.0.0 - '@anthropic-ai/sdk': ^0.78.0 - '@google/genai': ^1.43.0 - '@langchain/core': ^1.1.29 + '@anthropic-ai/sdk': ^0.112.3 + '@google/genai': ^1.52.0 + '@langchain/core': ^1.2.3 '@openai/agents': ^0.8.0 '@opentelemetry/api': ^1.9.0 '@opentelemetry/exporter-trace-otlp-http': '>=0.200.0 <1.0.0' '@opentelemetry/sdk-trace-base': ^2.0.0 - openai: ^6.25.0 + openai: ^6.48.0 posthog-node: ^5.0.0 peerDependenciesMeta: '@ai-sdk/provider': @@ -3256,19 +3448,16 @@ packages: openai: optional: true - '@posthog/browser-common@0.2.2': - resolution: {integrity: sha512-4NHumu2lx7pMeucDLfXnDmeP5CV2oVWY8jBpXBwBUjoYwkQxB7Z3A6q9oDydw+/iSAGl6MaPqW9gsnRK8AvqLA==} + '@posthog/browser-common@0.3.1': + resolution: {integrity: sha512-1nhMVY1wnHADTg8tR9yvm+lPAz5ROxznfQlBtLzB2FFo4lp/LU8lk9KyFPsARDkBxCfYachsJfvRjocL1G/AJQ==} - '@posthog/cli@0.7.30': - resolution: {integrity: sha512-Qo665wxrTOUJv7AwHbh1zXdb1UnSX8EaeCRSVBj+VqjR43/461fxoBt30a+dGw5jWqk/5Y0k1FOz0RaV2d6yIg==} + '@posthog/cli@0.7.34': + resolution: {integrity: sha512-wrRwj0FhbypW01TLpFRo1HkPBrwZHKP2tFE9xI4NTb84yMKZnXy49ibBdbImktJ5NbW7ndeWidOCZx+2Lkk7/Q==} engines: {node: '>=14.14', npm: '>=6'} hasBin: true - '@posthog/core@1.43.1': - resolution: {integrity: sha512-hGM8f5sp3we6Em/RQHXbmyYm554hUx9+9jhf92ZQgDS4/xW72KHyZiO9wcFye+qAx2cJAOhOCDIznmO1FV8IbA==} - - '@posthog/core@1.45.1': - resolution: {integrity: sha512-tLtvzomavb2PPWdGYKsusyIzIeL2Px47v348Smibkay7sMy/83TyPk+Ptsp2NdeOgJsbuwSxWkR2+XA0aSCAaA==} + '@posthog/core@1.46.1': + resolution: {integrity: sha512-EoCFduRkvrg9E5ylMi4QnZCjlAdRJCq6tJouWfngBVR79XSI4iPvIWYA+CdzokAjk+TfSVBFVJ++4Im3r+T0Dg==} '@posthog/mcp@0.10.1': resolution: {integrity: sha512-TMe6BvDCzMMaWP30jMuJKWDbqrDZ6xLjknzQFGXkaD5EPiq4EcU8FImjZBSZ6l1ipQdnPmkx2Z+R4bKhlx9Z6A==} @@ -3295,14 +3484,11 @@ packages: peerDependencies: rollup: '>= 4.0.0' - '@posthog/types@1.397.0': - resolution: {integrity: sha512-Pa7FtsBo3V0XrhY4y8Xquwp8U07syuZ2IGQdlsRyxhz0yejQLceFjI58UssCXE5zDCDj3km5l7H3ufD6rHChCg==} - - '@posthog/types@1.398.0': - resolution: {integrity: sha512-sJMkl4k+u8yS/0fjHsKqE9xTdsAh30a2WvgChiptellnVoE0e8QJKFgqOMD2sk8FaEArPdeFklAhXvmENAt3Sg==} + '@posthog/types@1.399.0': + resolution: {integrity: sha512-/WDwBzqIPko8VJ1B+0rlso2XQEz9+2sqtsY9Tqy3p1GhgTqsFakcz/PmMpAnA321LTEZVRcO6x5hAwABV4yrDw==} - '@preact/signals-core@1.14.2': - resolution: {integrity: sha512-RZHdBj9ZF4n40Rp4jS052EHHjBWf96P9oNdXPfhQTovCuWY9iQn3Gq+gOTJSgBO9A/JBuPfMOWsSX/lIU9Pc/A==} + '@preact/signals-core@1.14.4': + resolution: {integrity: sha512-HNB6HYeYKhQbJ1aKl+YRjrS4+QWHLKX6qKoUsfS/m0vqzsVaEBiZiaKbG/e+NKk2ch5ALQr/ihWaMHxiCuuWHA==} '@rolldown/binding-android-arm64@1.1.2': resolution: {integrity: sha512-2cZ+7xRS+DBcuJBJKnfzsbleumJhBqSlJVpuzHC0nTqfd3QQ7Vx2/x5YR/D7cBamKSeWplwo82Fn9lqYUDEMfA==} @@ -3560,12 +3746,16 @@ packages: '@sec-ant/readable-stream@0.4.1': resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} - '@sentry/core@10.58.0': - resolution: {integrity: sha512-bkIbh2c6dzwhrWn/FGWu7j8hf6TAat2XxpkGM91LiN09fLYUXIMwcohVsXqze5l2cq35TnvqmSROAbRNr27GVw==} + '@sentry/conventions@0.16.0': + resolution: {integrity: sha512-fO9PLmHdVURcSPUpWCItWAtgKiMwGdJHbovoSEyLplX5sxs2ugvI4CBPTrkkgqhObnZOD0CnWBKDzSVQYBKEyQ==} + engines: {node: '>=14'} + + '@sentry/core@10.69.0': + resolution: {integrity: sha512-+uuqVEeiDzYuAKjZLqsROKXvRTbl/QeH0gfGRtpYib1cud4rAFWRIkFmcR7Jb7JGFYwmReyQotiTj/hcDszTZg==} engines: {node: '>=18'} - '@sentry/node-core@10.58.0': - resolution: {integrity: sha512-7dTbYuoaSwSmF2GWDl7KK+sXQL8iqaZeZ2I/aFm+SvPZLckZF3OGFb2VsluWsSXQLnxtxPX9QP93viyK+VZsuA==} + '@sentry/node-core@10.69.0': + resolution: {integrity: sha512-IgArHczrZJxkgxoffHscj0NxQrG6kCazgmGQnlf3j58J1ec21YaUu8Tu+7G4Lo5tCiW3teQnwlKW1ttMXSqWRw==} engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.9.0 @@ -3573,7 +3763,6 @@ packages: '@opentelemetry/exporter-trace-otlp-http': '>=0.57.0 <1' '@opentelemetry/instrumentation': '>=0.57.1 <1' '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.1.0 - '@opentelemetry/semantic-conventions': ^1.39.0 peerDependenciesMeta: '@opentelemetry/api': optional: true @@ -3585,52 +3774,49 @@ packages: optional: true '@opentelemetry/sdk-trace-base': optional: true - '@opentelemetry/semantic-conventions': - optional: true - '@sentry/node@10.58.0': - resolution: {integrity: sha512-KICgacBS+I/eWzFlAembutSwFwy0WVSrGp8UMV9n1XZqqu4EBTlALRsbLNlDSv61UgH85L9L3vk91tgq6nJXAA==} + '@sentry/node@10.69.0': + resolution: {integrity: sha512-xEXA1YGIiTZbrW6MWV34uS6JGQuQg2ijTI0zed+FsJb9JZKPYel/GZK8Km26vfTVb+yCXFmWZNBesKegNcVdzg==} engines: {node: '>=18'} - '@sentry/opentelemetry@10.58.0': - resolution: {integrity: sha512-qKOGVmt02wDaq7E70VekG8Z9XM641trJPoTHSeVUfGaXVcmGc46ZldTNtfWbxJq/8f/fge2pap60gn066ido2Q==} + '@sentry/opentelemetry@10.69.0': + resolution: {integrity: sha512-3FyWV6YcEJuvLrlaKGE1dHXCI+1YO0a62w7PkwlRg8yp6K6YXkmdwu9GjqaYD+Ju4tm7uC7mHIsGFQMm0M7pqQ==} engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.9.0 '@opentelemetry/core': ^1.30.1 || ^2.1.0 '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.1.0 - '@opentelemetry/semantic-conventions': ^1.39.0 - '@sentry/server-utils@10.58.0': - resolution: {integrity: sha512-PywIl2jvl+tO5R4j+n72Lcf3ItanHcaMN/oL1U9ZHE8icaT2zpo2W4uOaslpQeQvqPC24HGZ3BW2etzsCFQbag==} + '@sentry/server-utils@10.69.0': + resolution: {integrity: sha512-0MwHrA8+nNvMIsqf8m3cXwCBlUjr6AS7N6CZvHJtY1DkqEvQqEbD5VIrhzEyHN/KMZIgQ8XeDCQRhjnXFQGRhg==} engines: {node: '>=18'} - '@shikijs/core@4.3.1': - resolution: {integrity: sha512-ANMDxuaPsNMdDC1m4vfvhlDmJweMwkE5XitTwrq2rWHx5jM+dlm4MmHt2PP6t0uejfR77SuhrhJ0zEijIF/uhA==} + '@shikijs/core@4.4.1': + resolution: {integrity: sha512-VeR2CY6Nn9/WbisoYLOQZ7HZOnwTrpBuOw4wExjqLnBCi62BNWynBUO6K2uPIASPFJwAv7cX1fUu+LrPlSstcw==} engines: {node: '>=20'} - '@shikijs/engine-javascript@4.3.1': - resolution: {integrity: sha512-JBItcnPuYq7jVJdZo/vMj94r+szT7XEjHFX+mvFDGSEIbVAXAGyHAHzhbWzpGOwYidCZrErJLLgn2PVeiokHnQ==} + '@shikijs/engine-javascript@4.4.1': + resolution: {integrity: sha512-6U4lJBh8LTvIkEVqRHv/rr3ruwtO6IweFQt1ME1ntHJMGHS+6N86vfYGO1o8c/DtOCTia2lfhdQBtBrps1sDfQ==} engines: {node: '>=20'} - '@shikijs/engine-oniguruma@4.3.1': - resolution: {integrity: sha512-OXyNMzg0pews+msMj4cHeqT4xiYKKvbnn6VbdAXxfoFl3SSx4fJTc8FadECuc5/H9p3BzhNAoAUXKwAu9rWYhg==} + '@shikijs/engine-oniguruma@4.4.1': + resolution: {integrity: sha512-p23RugMKss0r5DAtRJW1yAXUDl60JvhQYV20yuxei//26JyDSJefV3umyWzzwep2weblMnJGDYahuti6XkcMgA==} engines: {node: '>=20'} - '@shikijs/langs@4.3.1': - resolution: {integrity: sha512-m0l9nsDqgBHvbZbk7A0/kXz/impK3uB/c6rAn6Gpg/uPtdZRQ+alsN/17MU5thb68XTj/4DxkZAotrM0GGSpDQ==} + '@shikijs/langs@4.4.1': + resolution: {integrity: sha512-xb2kCMloBCIraIy2fS5MW0t/BxVY3q2nDyQKBoeSeq6KNrQbShHetCFlw2n35fGIJ6t3+hXDLQogP5ir9O9bvA==} engines: {node: '>=20'} - '@shikijs/primitive@4.3.1': - resolution: {integrity: sha512-CXQRQOYy1leqQ8ceTeJdmXv/bsUY++6QyLpXJ94LZAAYj5X2SKRdc5ipguv4NPyGVKItB2PPwUpRNe0Sjh5S1A==} + '@shikijs/primitive@4.4.1': + resolution: {integrity: sha512-ko2OfDoG89YuQ7xL5LtcQiWKb7NIv1Ephb7g48TVU198OzAMLC8lXVEwaJGHK4sUMYrfAGJDqYmNLOLiW/Kz8w==} engines: {node: '>=20'} - '@shikijs/themes@4.3.1': - resolution: {integrity: sha512-dgpoJ4WqNi2yTmizQHBJ5zcX6j2lE6icN/0yt4l1kkf16jrY/pwPLoTb1ETsWMz0OBLf9ZNvwmxft+cH+N9qSA==} + '@shikijs/themes@4.4.1': + resolution: {integrity: sha512-wudOaoFro+/Zl9gQv2W1Ur5XlVduqvTuYLI483Xi0wgc1A+cy1hfB2r6ac6ufBgF+ID7KJEW7L41MHrzQ4wH+w==} engines: {node: '>=20'} - '@shikijs/types@4.3.1': - resolution: {integrity: sha512-CHFxE0jztBIZRHH6gxXE7DXUCFXjReEGxZ/j0rfSLGKZuwp2xBYycEP14875DSa9KLL/6700oxIq6oO6ef9K2g==} + '@shikijs/types@4.4.1': + resolution: {integrity: sha512-GOwCLQDHM5EjGUWNPrhzJbr6JP8V/Dx/CDVkWvbZ1Avw5JFnNUckrgbLmE07qtg4WlW7Q7QFndhjIkeU9XMPvw==} engines: {node: '>=20'} '@shikijs/vscode-textmate@10.0.2': @@ -3652,38 +3838,38 @@ packages: resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} engines: {node: '>=18'} - '@solid-primitives/event-listener@2.4.5': - resolution: {integrity: sha512-nwRV558mIabl4yVAhZKY8cb6G+O1F0M6Z75ttTu5hk+SxdOnKSGj+eetDIu7Oax1P138ZdUU01qnBPR8rnxaEA==} + '@solid-primitives/event-listener@2.4.6': + resolution: {integrity: sha512-5I0YJcTVYIWoMmgBSROBZGcz+ymhew/pGTg2dHW74BUjFKsV8Li4bOZYl0YAGP4mHw5o4UBd9/BEesqBci3wxw==} peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/keyboard@1.3.5': - resolution: {integrity: sha512-sav+l+PL+74z3yaftVs7qd8c2SXkqzuxPOVibUe5wYMt+U5Hxp3V3XCPgBPN2I6cANjvoFtz0NiU8uHVLdi9FQ==} + '@solid-primitives/keyboard@1.3.7': + resolution: {integrity: sha512-558RPNYnXx4nGh537DSqAn4xMrC8iFipl/5+xzgzWoTNFst4RnUN3BOLmtDjJ0UGGoQXVMALYR3bNOHM0xnt1Q==} peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/resize-observer@2.1.5': - resolution: {integrity: sha512-AiyTknKcNBaKHbcSMuxtSNM8FjIuiSuFyFghdD0TcCMU9hKi9EmsC5pjfjDwxE+5EueB1a+T/34PLRI5vbBbKw==} + '@solid-primitives/resize-observer@2.2.0': + resolution: {integrity: sha512-9Fuu/EWBeGj+atGHRJp70HKhdfalmpjwxY8a32NZixdLNmfCJ45AfhLQNr6uOzETbbiMx4iCKlTrJ8KZCHC2Ww==} peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/rootless@1.5.3': - resolution: {integrity: sha512-N8cIDAHbWcLahNRLr0knAAQvXyEdEMoAZvIMZKmhNb1mlx9e2UOv9BRD5YNwQUJwbNoYVhhLwFOEOcVXFx0HqA==} + '@solid-primitives/rootless@1.5.4': + resolution: {integrity: sha512-TOIZa1VUfVJ+9nkCcRajw3U4t9vBOP1HxX1WHNTbXq32mXwlqTvUnC4CRIilohcryBkT9u2ZkhUDSHRTaGp55g==} peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/static-store@0.1.3': - resolution: {integrity: sha512-uxez7SXnr5GiRnzqO2IEDjOJRIXaG+0LZLBizmUA1FwSi+hrpuMzVBwyk70m4prcl8X6FDDXUl9O8hSq8wHbBQ==} + '@solid-primitives/static-store@0.1.4': + resolution: {integrity: sha512-LgtVaVBtB7EbmS4+M0b8xY5Iq6pUWXBsIC4VgtrFKDGDdyCaDt88sHk0fUlx1Enxm/XZnZyLXJABRoa39RjJqA==} peerDependencies: solid-js: ^1.6.12 - '@solid-primitives/utils@6.4.0': - resolution: {integrity: sha512-AeGTBg8Wtkh/0s+evyLtP8piQoS4wyqqQaAFs2HJcFMMjYAtUgo+ZPduRXLjPlqKVc2ejeR544oeqpbn8Egn8A==} + '@solid-primitives/utils@6.4.1': + resolution: {integrity: sha512-ISSB5QX1qP2ynrheIpYwc4oKR5Ny4siNuUyf1qZniy+Il+p/PtDB0QK1Dnle8noiHpwRD3gpPdubOC3qI/Zamg==} peerDependencies: solid-js: ^1.6.12 - '@speed-highlight/core@1.2.17': - resolution: {integrity: sha512-Z92FwKpCtfaW1V0jTU/fh3QzYEZN8wDwrzRIBoADCJfn4mJCNcJN/XegifX7BDrQ8/h9Xh/JnbyMchL0FqXrkg==} + '@speed-highlight/core@1.2.22': + resolution: {integrity: sha512-XEUMtc8zk6oKA5pyl+KqmVfk66ep978VbK+nBw5HfgThGhqYiokP0QYrnHY4U2A2vbzr7cUS1IeXt/poO3KA9g==} '@standard-schema/spec@1.1.0': resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} @@ -4090,212 +4276,212 @@ packages: peerDependencies: '@testing-library/dom': '>=7.21.4' - '@tiptap/core@3.29.1': - resolution: {integrity: sha512-aXTluPLRB2cFyEw77KkGKtTcfhQ6Snf1KPRpQnpYNGQm8uAmJenl0Cui7PRl2OxuY0Kb2PQ4XhR8p63lyLyKvw==} + '@tiptap/core@3.29.2': + resolution: {integrity: sha512-oKUkiPUB7noilVYxI9lNzUD4rX17sHub+PYjMfHMWHG9A3nvIy+FdePIVIIhThKWF7ijhr3eIqHY51Bn+GAFtw==} peerDependencies: - '@tiptap/pm': 3.29.1 + '@tiptap/pm': 3.29.2 - '@tiptap/extension-blockquote@3.29.1': - resolution: {integrity: sha512-ELA0pvI/mAsIHkZRp7ngzdc1v4j/hmJIwsFKgqwTjsEduYS/BgheCEImhAppeaTb4C2rSic3Bnt7reYWhQv3dw==} + '@tiptap/extension-blockquote@3.29.2': + resolution: {integrity: sha512-ca4OzKDh0yaxg2+Z56bC2QnWsNsFp2YMRfVig1PDXyMVFMNJpLcnhxgq/9btn+xYAlYrj8RymOeCTYREOR6Zjg==} peerDependencies: - '@tiptap/core': 3.29.1 - '@tiptap/pm': 3.29.1 + '@tiptap/core': 3.29.2 + '@tiptap/pm': 3.29.2 - '@tiptap/extension-bold@3.29.1': - resolution: {integrity: sha512-2m7Vw4hf8Up/jC4069wmbqAipxd7mHr5UmBXfTcxM6XiVIKoc3HT4qEvLDgRKexvDGZsTN7p4ZppH73Cv7RMgA==} + '@tiptap/extension-bold@3.29.2': + resolution: {integrity: sha512-elYbGxJsYnBb4leqrcjdIJuiG380BcOgN+UUzvOv+qEjfGVzHodFOMBl3qnmD6urYHNu5/qQK2S0qSSRXKCLNQ==} peerDependencies: - '@tiptap/core': 3.29.1 + '@tiptap/core': 3.29.2 - '@tiptap/extension-bubble-menu@3.29.1': - resolution: {integrity: sha512-Dv7xE9Qhv9RtWynnzTVgp7GN8BGqG3mZ5jf56EVqLEUmnE+jbt5jreN+C/oESlMsJ07FXeYWZxKM0sa3Pz9gfA==} + '@tiptap/extension-bubble-menu@3.29.2': + resolution: {integrity: sha512-kzcWarcpr031rZu+R3Hzut5uxb3Qj/xxMDEYZIQ3uiq1yb5vEMXj8/SIyWautk6Nu8Rr1leV3rGdR4NzhzyFAA==} peerDependencies: - '@tiptap/core': 3.29.1 - '@tiptap/pm': 3.29.1 + '@tiptap/core': 3.29.2 + '@tiptap/pm': 3.29.2 - '@tiptap/extension-bullet-list@3.29.1': - resolution: {integrity: sha512-Z5dXne6mnBOlsOVkmtxBSiTpDJ1MQZ9IDCoRxeabAf9AOXbyrv4h+JcPkgMkbUMflx/xkG3gUVgfrki4EGKn1Q==} + '@tiptap/extension-bullet-list@3.29.2': + resolution: {integrity: sha512-3bWcCUPbCHv0XttlMdnAtXLNYWx2pblByMgxmGsaP9FU0QnslGXty6A6gHCqI33ygRg1vrA6U5Wtpwbi5aKu5g==} peerDependencies: - '@tiptap/extension-list': 3.29.1 + '@tiptap/extension-list': 3.29.2 - '@tiptap/extension-character-count@3.29.1': - resolution: {integrity: sha512-dvGBJxIh8SWLfaE6HdaRnoaLEkRZrrb3hTRVb3KPKUrqwr0wMzyF0QIpS4PpV7z6vWNmt6yoQJPZHU+c656uMA==} + '@tiptap/extension-character-count@3.29.2': + resolution: {integrity: sha512-tEORzLUIjPQJYYj1wnO5d3XfYhcqJGRBJCQ6tvr572m9ApDRsnEfrQmNUGG4Hnqpjebrn2oSk+oX54UuRT1GUw==} peerDependencies: - '@tiptap/extensions': 3.29.1 + '@tiptap/extensions': 3.29.2 - '@tiptap/extension-code-block@3.29.1': - resolution: {integrity: sha512-oGd4mvdJm2UaW+B3XaRT+gP+IOz5qLkd24IOxWCKdmbACCT+fd4DFmvghASeL49EPvaTJtXAfXiB9AeksDUmbQ==} + '@tiptap/extension-code-block@3.29.2': + resolution: {integrity: sha512-w153ct8g6dLiPTdXQ6SOIMxX4SEo5Q50AmjdEEEcJ7ZcYUcde/ScSskLHfOYmyt5ZFAiyEwr121+pux+p3/oAQ==} peerDependencies: - '@tiptap/core': 3.29.1 - '@tiptap/pm': 3.29.1 + '@tiptap/core': 3.29.2 + '@tiptap/pm': 3.29.2 - '@tiptap/extension-code@3.29.1': - resolution: {integrity: sha512-1dCacqr+Il816DWPVlaXzEVJdXMZJHeHs69U2rB137AD85KeqKPMqkPCEw1zb36fY5PdnjKrw1J4TmVIuDjPXQ==} + '@tiptap/extension-code@3.29.2': + resolution: {integrity: sha512-c6W5UGuB7WNLpYocsgRzpO2OOTI4QjaI9jjHRMuty9z+s9DtaYM/HrRLNwVh6MopkHb+i/89Wkv8gCS34fftig==} peerDependencies: - '@tiptap/core': 3.29.1 + '@tiptap/core': 3.29.2 - '@tiptap/extension-collaboration-caret@3.29.1': - resolution: {integrity: sha512-96ZIx3q2k0ULg+3W+xc6uHWdgzw4/Ev9PiZJ5uk8kC3ajPGh3p484juYu2eUYsKrzaq6oy5YYN0Arj1c2irXVw==} + '@tiptap/extension-collaboration-caret@3.29.2': + resolution: {integrity: sha512-Mjq4RRgN4rCn+HAkX2lEH7PcY1vnKf4qQetn7Y+7q15IwM/UXStbmhT3YW49AoIWMrA2FApyYlu1dtXGefIa2w==} peerDependencies: - '@tiptap/core': 3.29.1 - '@tiptap/pm': 3.29.1 + '@tiptap/core': 3.29.2 + '@tiptap/pm': 3.29.2 '@tiptap/y-tiptap': ^3.0.7 - '@tiptap/extension-collaboration@3.29.1': - resolution: {integrity: sha512-C5cTMPpBig0AiwY1oOu495jfl3FAtm2xQxga4XKYoRBFR9AhuwW27HGqaENjfaClCjU61TZJbON4OXa9Lpx+WQ==} + '@tiptap/extension-collaboration@3.29.2': + resolution: {integrity: sha512-KVKwIofMzraf0MxCXUkYd6fNmz0oGKaHDkjhNT6HGHrVzTFDJlZTwHHwSndQS2xKGmZbhWe8C32hvUrFsZXTPw==} peerDependencies: - '@tiptap/core': 3.29.1 - '@tiptap/pm': 3.29.1 + '@tiptap/core': 3.29.2 + '@tiptap/pm': 3.29.2 '@tiptap/y-tiptap': ^3.0.7 yjs: ^13 - '@tiptap/extension-document@3.29.1': - resolution: {integrity: sha512-mnBPM8equ1SpxcfD2Mh5IkFPV9QnJ4iKuVd2xT6CDEBRsh1KRhkDuDH/hJKfSNiXja51v23r51UvfVmL+j9KHQ==} + '@tiptap/extension-document@3.29.2': + resolution: {integrity: sha512-YUamvefLnsqu6124GavVTI7nqcFlQJ12ROB0oSwG69eSBZYNjg1tIs05LFrBxkwf4Xgqd6YzfJ9+FeG428RvzQ==} peerDependencies: - '@tiptap/core': 3.29.1 + '@tiptap/core': 3.29.2 - '@tiptap/extension-dropcursor@3.29.1': - resolution: {integrity: sha512-2/Fhyr2DGNZ5HhLWQHlqhOJEzgnW2Wh3+u3/iCO/oYCjLZqsR7k8NoeFSTyRru7Cs1EMvMG/1uID69hPhqU6ng==} + '@tiptap/extension-dropcursor@3.29.2': + resolution: {integrity: sha512-KKno7cU9r1HdR48CRrsDu69/1UjZdoslq/UcE+Kx+tdhAv/aljXMkRSNzGMrBNOBDmHRgS1+58zm21WQWdQzwA==} peerDependencies: - '@tiptap/extensions': 3.29.1 + '@tiptap/extensions': 3.29.2 - '@tiptap/extension-floating-menu@3.29.1': - resolution: {integrity: sha512-2huV5pNVtYTVpzQZ6nlJSXycv3jNzEMpfuflOxdmHekFuKbMzUMhxBYfln69xMyMQYe03IIotEyOhkNOeSrKcQ==} + '@tiptap/extension-floating-menu@3.29.2': + resolution: {integrity: sha512-CBTq4Xs5aGWr65uFCIkKBms796OhmirWf/ax//iJ4fl9IfwqjwFuc2vQs9PmuwpKn9ctDHo2sMTtvyeCvIt5LQ==} peerDependencies: '@floating-ui/dom': ^1.0.0 - '@tiptap/core': 3.29.1 - '@tiptap/pm': 3.29.1 + '@tiptap/core': 3.29.2 + '@tiptap/pm': 3.29.2 - '@tiptap/extension-gapcursor@3.29.1': - resolution: {integrity: sha512-JZkPZjoBZI75gwLqEyh2YhPM4LnrwDjEiLMxb758qHQ96tBze39W6prH0oPC6p06pBf2eloAgMLSkmauqlzScw==} + '@tiptap/extension-gapcursor@3.29.2': + resolution: {integrity: sha512-8Q39UR4/Tit759IeW9xZIe3NMwN11GsuA3FLheDyyGn7RrW02HD3HhUDlazE54Ki4HoosjFmChPlN4Ik2ubdRQ==} peerDependencies: - '@tiptap/extensions': 3.29.1 + '@tiptap/extensions': 3.29.2 - '@tiptap/extension-hard-break@3.29.1': - resolution: {integrity: sha512-GZ5kBS29XWetk0yFmXNbIpL4qI1d9IpHIJI7yGxS8/NCtMlMQoEjI/0qnrHH75FkOZLwK31f0TZSVh8C1m7gZw==} + '@tiptap/extension-hard-break@3.29.2': + resolution: {integrity: sha512-eUW3LN3fq8rXnjEUeI3D2QONYdLsU3yYQm4jxlErs2h4cfwrFjgf19VSUFVmm6LrFbbQ0OnDVPeVLL6iOwDw2w==} peerDependencies: - '@tiptap/core': 3.29.1 + '@tiptap/core': 3.29.2 - '@tiptap/extension-heading@3.29.1': - resolution: {integrity: sha512-5Lq2rIFOTXHVammrMvBSiTUjy2sc0cJfFNOMJHCypuQLz5rnAnNZ2L3xXCbtm/ZMVh3MiWSR5ay1xnW4BJIOiA==} + '@tiptap/extension-heading@3.29.2': + resolution: {integrity: sha512-6W4aIy70Mh7BNlbG9zZ5FBLhJhU2UUEzgZJ/jwYSCcB30o8McLxJSEjhtoHiX8R78Ah2/JzBGvIe5olZlbeE4A==} peerDependencies: - '@tiptap/core': 3.29.1 + '@tiptap/core': 3.29.2 - '@tiptap/extension-highlight@3.29.1': - resolution: {integrity: sha512-cJ4JOUdru9a76w2qPbX2PgqOSOmRzlCZQkyZ4Z4IyHq4WpL9kWy4RWEyj0x2FKI6WZdKATn6WrjWmLA8i7A9sA==} + '@tiptap/extension-highlight@3.29.2': + resolution: {integrity: sha512-bSeZ1C8OlthyK7BzgtqOGfQymdap9V38W2hbr9KGlhVOIAmTqneOwjm27iFcu7jKqkMArVu6WBYN18Lom6umHQ==} peerDependencies: - '@tiptap/core': 3.29.1 + '@tiptap/core': 3.29.2 - '@tiptap/extension-horizontal-rule@3.29.1': - resolution: {integrity: sha512-/jZ8oxlp06qa5JR9CHSx6vZyp2zFuv7RsHVG9nouFqpmz2nuHUUDm3d/nltNqX5QjuYfx2zjT9CEJ6uQexSzdw==} + '@tiptap/extension-horizontal-rule@3.29.2': + resolution: {integrity: sha512-8/ZPzbB9X85Mc9/7xVLZupQKBr2UVcQTGr512xtqMW+XkCQRHCph46tRo828YE13IMWI5fWn/FaNCqXG9cULSw==} peerDependencies: - '@tiptap/core': 3.29.1 - '@tiptap/pm': 3.29.1 + '@tiptap/core': 3.29.2 + '@tiptap/pm': 3.29.2 - '@tiptap/extension-italic@3.29.1': - resolution: {integrity: sha512-WzBTQ6XUv/7I0EzGgImpBa4vFGlHbOCq22NNo4CGjRnIRFyDwC+8mqSNawJzrFOborKjgKbn8dJVlJ+uuVZYKw==} + '@tiptap/extension-italic@3.29.2': + resolution: {integrity: sha512-iH63V/5wsaMnY4Jz0+meaAGhaec4AiOzOduzl6ZZr5IyGhZ1kthyW84ELt0dyLI3hNceAUhaNWc+I7+vX0aoXA==} peerDependencies: - '@tiptap/core': 3.29.1 + '@tiptap/core': 3.29.2 - '@tiptap/extension-link@3.29.1': - resolution: {integrity: sha512-KtWfsxG/NzNaAwcOSTRyn1r1W6KlkEU4Q8pq7ZxB6ltjXF3TJkUKYe/sQpvfjy9RtEVwh6zdB7ZhsEl8CX8EkA==} + '@tiptap/extension-link@3.29.2': + resolution: {integrity: sha512-DcVer5SqrexKCEP6Ip1UPxJUMvcRCCItSv0wxoGytanrimBh2smvcg6X0DWnjlsi5H0updhyl+atYCmmQXUIXA==} peerDependencies: - '@tiptap/core': 3.29.1 - '@tiptap/pm': 3.29.1 + '@tiptap/core': 3.29.2 + '@tiptap/pm': 3.29.2 - '@tiptap/extension-list-item@3.29.1': - resolution: {integrity: sha512-zwMNXxi2AXPWk9z6t4/5J7b11An5WZ4AYR4mpjqrcAnE5G4epOZlX+GLaZK16PzGWm0JouDskcYicu5GL1AE8Q==} + '@tiptap/extension-list-item@3.29.2': + resolution: {integrity: sha512-s8vBVHHFT0Qpu7CzAZ7S1kYmSiVaDvUNvMNcZUWnxj6VPfiwmx0eXd9FsjePrRCMoM5tFmPnhFTHDxY3D/eZeQ==} peerDependencies: - '@tiptap/extension-list': 3.29.1 + '@tiptap/extension-list': 3.29.2 - '@tiptap/extension-list-keymap@3.29.1': - resolution: {integrity: sha512-1Z1DC8eB0Jg1ya7Q6icGTpTBqaCL/hwqVsep7hmpwd8Benu+ke6Ja2hGKUfDuv9hargv5+S7cqEsHLQaMIBSew==} + '@tiptap/extension-list-keymap@3.29.2': + resolution: {integrity: sha512-R+3k8OLnxdCH7Xy9ieOwUt5m2Je74u8mikothGmsYVO2Zyq48fIbmZ+X6RBPCu7DBOI2FIUhHEFbKQeDWvDNmA==} peerDependencies: - '@tiptap/extension-list': 3.29.1 + '@tiptap/extension-list': 3.29.2 - '@tiptap/extension-list@3.29.1': - resolution: {integrity: sha512-Uclc3pMjylz0xpIArgKKmo7WSlMO370H+K+45uN5hU0uSkp1A8YGBwtU6rBsVAx6nbMXLrhNQjZ1IbLtF605OQ==} + '@tiptap/extension-list@3.29.2': + resolution: {integrity: sha512-WPZ9BHAPT6QeIm1vdVkuoOWvy9a8/EZeJwV2VhU8LXyTAttvzyj4rsbbHyJWvYWlUSTt/QF2AZ2zhKo7u1w3/A==} peerDependencies: - '@tiptap/core': 3.29.1 - '@tiptap/pm': 3.29.1 + '@tiptap/core': 3.29.2 + '@tiptap/pm': 3.29.2 - '@tiptap/extension-mathematics@3.29.1': - resolution: {integrity: sha512-PcTjpS+MY7GQ2JSr1l8E60jESY37PBiqMseQ3O9brCSxuU0e661/bPLNQwXdcQPQIC36AwAOLciXYWH60axrdw==} + '@tiptap/extension-mathematics@3.29.2': + resolution: {integrity: sha512-v2qFI635nsOi+IiMg9nWw6t1SUunU53qFj2lceDIiIeEX26bW2YjMYoju0T6WpySCtbTunkKGcVerGn0DtYC9Q==} peerDependencies: - '@tiptap/core': 3.29.1 - '@tiptap/pm': 3.29.1 + '@tiptap/core': 3.29.2 + '@tiptap/pm': 3.29.2 katex: ^0.16.4 || ^0.17.0 - '@tiptap/extension-ordered-list@3.29.1': - resolution: {integrity: sha512-eLKZHk+8/XJA78zjAipcDt/0cCXo1P6KmT/5PjWZepXY4BoMBFFK8mjW+l3cUQJsKIyknvwoepiMpg1Om31o/g==} + '@tiptap/extension-ordered-list@3.29.2': + resolution: {integrity: sha512-ndCunC+UsYOpkOtL7vGnDz21UNa45WUlcO9wMT1fbuYow2QnRhsuMlCWENXI52YPPARWuQ0RDgN7q6TaxPERBg==} peerDependencies: - '@tiptap/extension-list': 3.29.1 + '@tiptap/extension-list': 3.29.2 - '@tiptap/extension-paragraph@3.29.1': - resolution: {integrity: sha512-kfYkKXce3AjU8hWW1gFES7xsKn7UgObpmVLjufKgoT9h82faAE7lWE7IMAtl30ztVVvQSpF9RdxGoIUXdLiSxA==} + '@tiptap/extension-paragraph@3.29.2': + resolution: {integrity: sha512-7qJj5YTr11vvjNgjDN1ypOfwTovc0QOCYcit/rskeuVgnmQZOZQzC/BbyKLLG7UGnpRLemU/mEGbW9pAqjAXkQ==} peerDependencies: - '@tiptap/core': 3.29.1 + '@tiptap/core': 3.29.2 - '@tiptap/extension-placeholder@3.29.1': - resolution: {integrity: sha512-5phpBILHAJhvJUnbne7mCiisYstD0CWakhuTCRl2ugxL664Ew2+avnRIKIjww2O6aL2eue1StJDI5kPdVHrnAw==} + '@tiptap/extension-placeholder@3.29.2': + resolution: {integrity: sha512-/BlpPIq2JZk6zLaeYVOXazi6dmd0iRriTymNEnFn1doManN1y5HED9LsMeb/AhNhauL5AgmcHgpvAjbsN9k4SA==} peerDependencies: - '@tiptap/extensions': 3.29.1 + '@tiptap/extensions': 3.29.2 - '@tiptap/extension-strike@3.29.1': - resolution: {integrity: sha512-7/8yUQN1/P5JCbhT+TycziNG3XWBMXADjNPmDipflpyi4EEApoFSamnj5+JL48qYj7bC1JmGtw7eXANPKva+9Q==} + '@tiptap/extension-strike@3.29.2': + resolution: {integrity: sha512-aEvLAbddUQZ+FukCreV3q4G2HfNI+odE7E9U+wbq6XsSWKyo8/pDu1muz+TFKNre4blSMOQ3JQmw5UeHDKy+fg==} peerDependencies: - '@tiptap/core': 3.29.1 + '@tiptap/core': 3.29.2 - '@tiptap/extension-table@3.29.1': - resolution: {integrity: sha512-YGKG1XMCYFOCZQ5Go+mOerLgO+EuVt+Th4wXdXhi5w9lopN93lHmI8mfyI7xV8rrZmI5te8IhMYtaAXoKhBHAw==} + '@tiptap/extension-table@3.29.2': + resolution: {integrity: sha512-HY3JWD8i/F8W1oWw56DMqEMqxScIAZFRrhL3rUwiuowHG8LLDqDdQjBV3w1DY8lUZOtNY9grpuMtGlPUFrOVAA==} peerDependencies: - '@tiptap/core': 3.29.1 - '@tiptap/pm': 3.29.1 + '@tiptap/core': 3.29.2 + '@tiptap/pm': 3.29.2 - '@tiptap/extension-text-align@3.29.1': - resolution: {integrity: sha512-pTPpuHs8MIAvt0tTmtlN2S72UJG3DtA8GSJnwdmEG9C9xz0UkrAKyymrojcLvflILmamJHfhJHtkGhOJsl85WA==} + '@tiptap/extension-text-align@3.29.2': + resolution: {integrity: sha512-205FF87zjUEh79n6dgVy9SMj1P+rNserHMqPd8lF7YS2TOWikXPG4PFuQHWXXCYzaCvQXAiATSAyPXXmUWUvaQ==} peerDependencies: - '@tiptap/core': 3.29.1 + '@tiptap/core': 3.29.2 - '@tiptap/extension-text@3.29.1': - resolution: {integrity: sha512-SdwfKTchZf0saMSwmXFEqpYMjgAGXaiUGuwYic/oB5Ri6NCTH2gy8SrCqISBLfUOP7YXGtPGyifZtMtXKAgFAg==} + '@tiptap/extension-text@3.29.2': + resolution: {integrity: sha512-Ubko45JWWHe8glBt2PiGNF8hcbys/JNalFhiR7Y1X4iOOtAxAKJJxh3+eq+//NTlGuBPdWGp7zw8EEUp7anjKA==} peerDependencies: - '@tiptap/core': 3.29.1 + '@tiptap/core': 3.29.2 - '@tiptap/extension-underline@3.29.1': - resolution: {integrity: sha512-BsZk6GDmmlPFqAtUbEQtiwuLAihLt9A4YvyZEwLm7d2zMbzMLJZK/5RD2JvKGJ0jwrcS3ZIo015bEvKa8h/3KQ==} + '@tiptap/extension-underline@3.29.2': + resolution: {integrity: sha512-K7XwH/xS/5AIREWQ00VTEf/W5U0olp7j6wwit7cdd/8nHv6h6AGr1+iEApHKoLXWQZLfGQKzJlT9W61LAl+fHA==} peerDependencies: - '@tiptap/core': 3.29.1 + '@tiptap/core': 3.29.2 - '@tiptap/extensions@3.29.1': - resolution: {integrity: sha512-GZMW2r56dnTS28o2wlW8vHxUU4hofZryw03eJnch+amap96tjSU81aV0JCHUN/ySd43KKR5fEZMjhELk6VeYpQ==} + '@tiptap/extensions@3.29.2': + resolution: {integrity: sha512-BCz+FCAChSYtUe4BFj97HEO+nSK+J7GxbJgZG4Hg7DT/gI+hRyeNndU8efiQAx3WGdzsFi3UxRpcF1tTQM7iMQ==} peerDependencies: - '@tiptap/core': 3.29.1 - '@tiptap/pm': 3.29.1 + '@tiptap/core': 3.29.2 + '@tiptap/pm': 3.29.2 - '@tiptap/markdown@3.29.1': - resolution: {integrity: sha512-Q+pUnCeMOoD2cLgRPwmEYnsa6R0osKpXvXToNsnrZ9HNu80zDsdisRm5F0cmVVA2aZ1wOAIzGn3gWyTg8ZIL4w==} + '@tiptap/markdown@3.29.2': + resolution: {integrity: sha512-Knf9YqG3fxOyFuS3pe3eapDz0ya9eqPGzmyMSd5PuHNmR9/Ir6i5qk5+Md6bCPgDNjYskztNm7DoBXPfbXbO/w==} peerDependencies: - '@tiptap/core': 3.29.1 - '@tiptap/pm': 3.29.1 + '@tiptap/core': 3.29.2 + '@tiptap/pm': 3.29.2 - '@tiptap/pm@3.29.1': - resolution: {integrity: sha512-fAzlr2RoV9amvMzioJ0dJHtehsMAO8RZktA9XwDk/Qy+WwgMjlCi9g19d4e6cR/WEwaC5KBsQkAyaWzQYGFxAA==} + '@tiptap/pm@3.29.2': + resolution: {integrity: sha512-GCOme7xHaS+DSoaA4CDcAD3l6JyBlvZhvCyfsy2Vp6j8tEoBkZWio7soYVosmlyn7zq8/64VeFZP5s47yfG7fQ==} - '@tiptap/react@3.29.1': - resolution: {integrity: sha512-wiaLIUOBWB8j2IzYTWoBelDBXX3kKfU1Sh+UdjYIvk7as8DZniLW7Uw0z1hBFreU8PU/RtA10kWsnICGuaKOyQ==} + '@tiptap/react@3.29.2': + resolution: {integrity: sha512-ZMKgteYmZXnq7C22U9fbCTC6jAF8XlQM5n2K2FLWCdYAlP4FNV3XeQ9hY2a13KSQ0Q3yltWXZlcWBpt5ClxScg==} peerDependencies: - '@tiptap/core': 3.29.1 - '@tiptap/pm': 3.29.1 + '@tiptap/core': 3.29.2 + '@tiptap/pm': 3.29.2 '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 '@types/react-dom': ^17.0.0 || ^18.0.0 || ^19.0.0 react: ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 - '@tiptap/starter-kit@3.29.1': - resolution: {integrity: sha512-n7njOpcJJd4L3Ma1UmipwwL7gilJ8PZHCNHNhCY+jlemRp8sGf3WoMJst4FKAqU15QaYWhQpYYgc0TWQ55Z04g==} + '@tiptap/starter-kit@3.29.2': + resolution: {integrity: sha512-oTu0tysiqk4zgjEtxRHjAQgxUKaAevZwueOWwSWubHdokqp7SpcbE5n9USJv89HKuTUDm3GjnQH6q8HNn/2DsA==} - '@tiptap/y-tiptap@3.0.7': - resolution: {integrity: sha512-3VG01F7i2JDghWsBZSBKi7ypMiN5UVVSyD18IwoXx7ilm0ZynrTS+XNpmgxfuiSBjdauWk7tUlP04xfM8Bw4Vw==} + '@tiptap/y-tiptap@3.0.8': + resolution: {integrity: sha512-+kndlSuoUK9sKVRuxbAHXNrbDvyydnG/Y0NFU9XXqaSkI9IRcrjpOf1RGd7NrC9jJXquDqZS96wOQf6eUpP9Dg==} engines: {node: '>=16.0.0', npm: '>=8.0.0'} peerDependencies: prosemirror-model: ^1.7.1 @@ -4314,9 +4500,6 @@ packages: '@ts-morph/common@0.27.0': resolution: {integrity: sha512-Wf29UqxWDpc+i61k3oIOzcUfQt79PIT9y/MWfAGlrkjg6lBC1hwDECLXPVJAhWjiGbfBCxZd65F/LIZF3+jeJQ==} - '@tybys/wasm-util@0.10.2': - resolution: {integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==} - '@tybys/wasm-util@0.10.3': resolution: {integrity: sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==} @@ -4368,8 +4551,8 @@ packages: '@types/d3-format@3.0.4': resolution: {integrity: sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==} - '@types/d3-geo@3.1.0': - resolution: {integrity: sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==} + '@types/d3-geo@3.1.1': + resolution: {integrity: sha512-65Emv9fQiQQqphLlRkuQ5ypPsOmWPhtBGCMv61JDPEPMvsx+gzhGf74yw1a78xFKPj6zw4AgQICJoQv0vK9M2w==} '@types/d3-hierarchy@3.1.7': resolution: {integrity: sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==} @@ -4386,8 +4569,8 @@ packages: '@types/d3-quadtree@3.0.6': resolution: {integrity: sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==} - '@types/d3-random@3.0.3': - resolution: {integrity: sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==} + '@types/d3-random@3.0.4': + resolution: {integrity: sha512-UHYId5WTCx4L4YNel7NU00XUXXgvgpgZOvp10PuvsQENjMDXhh2RyFc0KBjO7B45ne4Ha1yVH7ii0vnzKkuzWA==} '@types/d3-scale-chromatic@3.1.0': resolution: {integrity: sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==} @@ -4437,8 +4620,8 @@ packages: '@types/geojson@7946.0.16': resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==} - '@types/hast@3.0.4': - resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + '@types/hast@3.0.5': + resolution: {integrity: sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g==} '@types/jsesc@2.5.1': resolution: {integrity: sha512-9VN+6yxLOPLOav+7PwjZbxiID2bVaeq0ED4qSQmdQTdjnXJSaCVKTR58t15oqH1H5t8Ng2ZX1SabJVoN9Q34bw==} @@ -4458,8 +4641,8 @@ packages: '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - '@types/node@26.1.1': - resolution: {integrity: sha512-nxAkRSVkN1Y0JC1W8ky/fTfkGsMmcrRsbx+3XoZE+rMOX71kLYTV7fLXpqud1GpbpP5TuffXFqfX7fH2GgZREw==} + '@types/node@26.1.2': + resolution: {integrity: sha512-Vu4a5UFA9rIIFJ7rB/Vaafh9lrCQszopTCx6KjFboXTGQbPNasehVR5TEiithSDGyd1DEiUByggTZsg8jukeIg==} '@types/papaparse@5.5.2': resolution: {integrity: sha512-gFnFp/JMzLHCwRf7tQHrNnfhN4eYBVYYI897CGX4MY1tzY9l2aLkVyx2IlKZ/SAqDbB3I1AOZW5gTMGGsqWliA==} @@ -4467,13 +4650,17 @@ packages: '@types/pg@8.20.0': resolution: {integrity: sha512-bEPFOaMAHTEP1EzpvHTbmwR8UsFyHSKsRisLIHVMXnpNefSbGA1bD6CVy+qKjGSqmZqNqBDV2azOBo8TgkcVow==} - '@types/react-dom@19.2.3': - resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==} + '@types/prettier@3.0.0': + resolution: {integrity: sha512-mFMBfMOz8QxhYVbuINtswBp9VL2b4Y0QqYHwqLz3YbgtfAcat2Dl6Y1o4e22S/OVE6Ebl9m7wWiMT2lSbAs1wA==} + deprecated: This is a stub types definition. prettier provides its own type definitions, so you do not need this installed. + + '@types/react-dom@19.2.4': + resolution: {integrity: sha512-Bsc+QHgp+P/F02XDzNCY9jnZNCUuLki36KT7VKrTXXLdHf+vHMNZnW1rVu5DNW/rCK+fya3DATySbLM4yhtKUw==} peerDependencies: '@types/react': ^19.2.0 - '@types/react@19.2.17': - resolution: {integrity: sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==} + '@types/react@19.2.18': + resolution: {integrity: sha512-AnzbBERsrLKtk2XSfTbYRLjQPdy116Sty4q+T+Bp3IC4l6jNBvreVPAHmpq9qhXQM7CXZPjLVmGMw9sy+hxQ3w==} '@types/set-cookie-parser@2.4.10': resolution: {integrity: sha512-GGmQVGpQWUe5qglJozEjZV/5dyxbOOZ0LHe/lqyWssB88Y4svNfst0uqBVscdDeIKl5Jy5+aPSvy7mI9tYRguw==} @@ -4496,12 +4683,12 @@ packages: '@types/validate-npm-package-name@4.0.2': resolution: {integrity: sha512-lrpDziQipxCEeK5kWxvljWYhUvOiB2A9izZd9B2AFarYAkqZshb4lPbRs7zKEic6eGtH8V/2qJW+dPp9OtF6bw==} - '@typescript-eslint/types@8.61.1': - resolution: {integrity: sha512-G+CRlPqLv7Bz1IZVs03x5K59F1veqL0EJUROAdGhKsEq8qOiRiZbI+HUojPq5l0fEGOKModD9br6lObhB8zkoA==} + '@typescript-eslint/types@8.65.0': + resolution: {integrity: sha512-JSSwWNy+H0E/01jJEM+hrX6N0OFDzFzeIhHFSAS01tlVaevpG8cFyYRPhS5yjGOvBUx3sqQHVMjCL1CAZZMxBg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@ungap/structured-clone@1.3.1': - resolution: {integrity: sha512-mUFwbeTqrVgDQxFveS+df2yfap6iuP20NAKAsBt5jDEoOTDew+zwLAOilHCeQJOVSvmgCX4ogqIrA0mnyr08yQ==} + '@ungap/structured-clone@1.3.3': + resolution: {integrity: sha512-60YRaenCQcVjYEKOcG824+DRGGIQ3VKErcBoAEDJZz5bKIs2ZG+X/H9Nk+Q6EVkwJk5QNApxbrc5QtBSwtrXAg==} '@upsetjs/venn.js@2.0.0': resolution: {integrity: sha512-WbBhLrooyePuQ1VZxrJjtLvTc4NVfpOyKx0sKqioq9bX1C1m7Jgykkn8gLrtwumBioXIqam8DLxp88Adbue6Hw==} @@ -4510,8 +4697,8 @@ packages: resolution: {integrity: sha512-UycprH3T6n3jH0k44NHMa7pnFHGu/N05MjojYr+Mc6I7obkoLIJujSWwin1pCvdy/eOxrI/l3uDLQsmcrOb4ug==} engines: {node: '>= 20'} - '@vitejs/plugin-react@6.0.4': - resolution: {integrity: sha512-XcCQz0TBpBgljhj0gMuuDj49i6Ytqh5q1osT/Gp5uAVJUCTWxyskk/l1jwYYiu2xcNHHipdMz40EGfM1VdamVg==} + '@vitejs/plugin-react@6.0.5': + resolution: {integrity: sha512-BOVzne/NL162sMdResB25mUv+vWMF5NoAjNf09TeGlE7ZpszZWSD3winycicLJw72yeVsoCn/2kOhEuCvEShMA==} engines: {node: ^20.19.0 || >=22.12.0} peerDependencies: '@rolldown/plugin-babel': ^0.1.7 || ^0.2.0 @@ -4619,8 +4806,8 @@ packages: yaml: optional: true - '@voidzero-dev/vite-plus-core@0.2.6': - resolution: {integrity: sha512-vqDuuLJWS2JHWkFO7r8Z6AehtKnurpnYtw2XEQtjIfwE2GgSAO3zJdPIeaEZiovS6CqfQa+iOMn3kzVzeTSpTw==} + '@voidzero-dev/vite-plus-core@0.2.7': + resolution: {integrity: sha512-zqaBkM1XZ4IHvFJlG2uv7kQF+dqtUcxXSPGyn15BXRfQb101HPpXXe6PHi7YOmZmbQd+hnwNr5+aklXSriZhVQ==} engines: {node: ^20.19.0 || ^22.18.0 || >=24.11.0} peerDependencies: '@arethetypeswrong/core': ^0.18.1 @@ -4676,54 +4863,54 @@ packages: yaml: optional: true - '@voidzero-dev/vite-plus-darwin-arm64@0.2.6': - resolution: {integrity: sha512-QSZWgfqPx5lrIKZ0vwgVRujRqo7gORcc9Oq4fI1UDjKZFgYz9gXVMibSjEqYU3R1webN6FKTOCnzFmrfXchWYw==} + '@voidzero-dev/vite-plus-darwin-arm64@0.2.7': + resolution: {integrity: sha512-1DsMuysinq4aDiM4212sp5vdDeBPZPdiWwOOZcAl2AVq25hhqDEHdken/PXKHmiXg8M2FGdydpcUtxR5kwdetg==} engines: {node: '>=20.0.0'} cpu: [arm64] os: [darwin] - '@voidzero-dev/vite-plus-darwin-x64@0.2.6': - resolution: {integrity: sha512-pMQZGCQO0s+akuxbjgh31hOUgrdDndCmfbP7BciJuts436qrBb8KaVzBhNjJQtxD6H8yY21CIOjD8nlrp4eDIw==} + '@voidzero-dev/vite-plus-darwin-x64@0.2.7': + resolution: {integrity: sha512-ZYSau3poUyX1qPmxYzFuHtGIE7T0zI8KDY/oAXoDBb5M2HSd+uu0ov6jNETkBphMlcSmQ/lT+FFlAkCBZklpqg==} engines: {node: '>=20.0.0'} cpu: [x64] os: [darwin] - '@voidzero-dev/vite-plus-linux-arm64-gnu@0.2.6': - resolution: {integrity: sha512-0e6nrJgUDN5WwoDRjyh7KV/jbL7WDUhTEWslI64KGpuvD7M6OoPBXYo8Et176O2ENwf52CKVDjXwuvMMNIAzAA==} + '@voidzero-dev/vite-plus-linux-arm64-gnu@0.2.7': + resolution: {integrity: sha512-7cpZOsHb6nuX6kRCXwWtzBxxJmCVrPcBe/H4q6n1yhWDtqZp/YY05CdFh458V7qUmIKIl70iA5vQ4M9qLPgYcA==} engines: {node: '>=20.0.0'} cpu: [arm64] os: [linux] libc: [glibc] - '@voidzero-dev/vite-plus-linux-arm64-musl@0.2.6': - resolution: {integrity: sha512-j2yvyv3r2ZEuJG73rWlXFrYrxA7u5+bFSlWTqhsfHZhdb1FKMkklfYRuLtBBdBRLXJ+YMNt9GZT6VTVPJDZnnQ==} + '@voidzero-dev/vite-plus-linux-arm64-musl@0.2.7': + resolution: {integrity: sha512-Aaqm3rlIr6qV2CdQjkyBceQqUlBpvvhGjKfpdAWhPaur4nN44gmjky88vMqL/1R6pieCdfAtUw4a6IVQ/Dq5VQ==} engines: {node: '>=20.0.0'} cpu: [arm64] os: [linux] libc: [musl] - '@voidzero-dev/vite-plus-linux-x64-gnu@0.2.6': - resolution: {integrity: sha512-5vqldBBnRjIAUmQ88oKli+wPd5vSQaA2AZ2xs+omRlZfeJhC8chlud6DyJV6fVZCC9GI4otK2zSGpfQZx8Kc3A==} + '@voidzero-dev/vite-plus-linux-x64-gnu@0.2.7': + resolution: {integrity: sha512-LSdD1ID4Mdufckk/Oc+IzhyXCFFUVGR+teiToQNzhD3aoEhrJQMKarx/Ea+dInRdBTNmioAL2xT1R2HP9a+HOA==} engines: {node: '>=20.0.0'} cpu: [x64] os: [linux] libc: [glibc] - '@voidzero-dev/vite-plus-linux-x64-musl@0.2.6': - resolution: {integrity: sha512-29ned+euDKAl+BmCigzGrPykQ/kxTjtsPGV6G3hkImwakHNUnmLRayqmsWKHSwXmBk5xo5m+wqjMbo3G0npJQg==} + '@voidzero-dev/vite-plus-linux-x64-musl@0.2.7': + resolution: {integrity: sha512-0SwXa8XyagGcyCfjYr6vrOCcEJ37VCvO8MV1y0HVjcO+eqH399NgWNvHRUHiA2baiWQeBBBB+B9WyCpdpKSiag==} engines: {node: '>=20.0.0'} cpu: [x64] os: [linux] libc: [musl] - '@voidzero-dev/vite-plus-win32-arm64-msvc@0.2.6': - resolution: {integrity: sha512-4b5ASpQlkxSXDYzuM6MYsOc1GnYkqG9CbSA1QzobXm87V/Q+MGPn57eILyacgfbmNNLrO2HQ5hasoLvd2BXaSg==} + '@voidzero-dev/vite-plus-win32-arm64-msvc@0.2.7': + resolution: {integrity: sha512-99spn9NEABFyn2lCrZL1nfpX06HhDNyWfZvX+e8zvSqV4LP2td2O4jI6St6KjuwVrK0VveNI/vwzJAe3CSGbzQ==} engines: {node: '>=20.0.0'} cpu: [arm64] os: [win32] - '@voidzero-dev/vite-plus-win32-x64-msvc@0.2.6': - resolution: {integrity: sha512-rvGkm4WmVkCKPhvUbLkRtlVhi7EYb8GU8KaqIGJ0dVfNQHDEqnFboaiUHuPN1npFNwB+80Ulzz9AkQ/Q8MswQA==} + '@voidzero-dev/vite-plus-win32-x64-msvc@0.2.7': + resolution: {integrity: sha512-Qe5XZLntwivz2fc1POrJnN6vIYGPcNks5q+GHPaCmYUtIBmAx53ME9OC/tLPpfno2jlZAHLy1vLAirkMVzvrwA==} engines: {node: '>=20.0.0'} cpu: [x64] os: [win32] @@ -4896,21 +5083,20 @@ packages: resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==} engines: {node: '>= 0.6'} - acorn-import-attributes@1.9.5: - resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} - peerDependencies: - acorn: ^8 - acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn@8.17.0: - resolution: {integrity: sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==} + acorn@8.18.0: + resolution: {integrity: sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==} engines: {node: '>=0.4.0'} hasBin: true + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + agent-base@7.1.4: resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} @@ -4951,8 +5137,8 @@ packages: vite: optional: true - ai@7.0.37: - resolution: {integrity: sha512-stF+SEQJgKY3Qfe3FwNzqUrehHviOp2l7LemoI8YMOa0Zk5PxKsRNgUk3cHXz0RAue9RRyCAis2fz6LSCP6EKw==} + ai@7.0.48: + resolution: {integrity: sha512-QmqshWFEDdkFFqSgdJ4cogaoDIYaedqbv73q/NXEYNkSIocJCzXnGFVyM9lrtAGTSBfm+5hq3/292ooXJ1jDSw==} engines: {node: '>=22'} peerDependencies: zod: ^3.25.76 || ^4.1.8 @@ -4983,6 +5169,10 @@ packages: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} + ansi-escapes@7.3.0: + resolution: {integrity: sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==} + engines: {node: '>=18'} + ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -5010,12 +5200,20 @@ packages: anynum@1.0.1: resolution: {integrity: sha512-N6//FLET/tXYNM/F6ABca1oH6fWB+KlTt909Le28WMDBk8oaT4vY17DCrwg2MvmuqUKt3Ni4N5dGJ/EoBgcO6A==} + arctic@3.7.0: + resolution: {integrity: sha512-ZMQ+f6VazDgUJOd+qNV+H7GohNSYal1mVjm5kEaZfE2Ifb7Ss70w+Q7xpJC87qZDkMZIXYf0pTIYZA0OPasSbw==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + argue-cli@3.1.0: + resolution: {integrity: sha512-DhBpBfXL4SS2uC0N922MMajKR3CdrTG0u2or1PNYgXMsrSzViJrbtvT0nCLlLGUI0plam/ZZCs7aAauHtW9thw==} + engines: {node: '>=22'} + aria-query@5.3.0: resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} @@ -5031,9 +5229,21 @@ packages: resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} engines: {node: '>=4'} + astring@1.9.0: + resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} + hasBin: true + async-lock@1.4.1: resolution: {integrity: sha512-Az2ZTpuytrtqENulXwO3GGv1Bztugx6TT37NIo7imr/Qo0gsYiGtSdBa2B6fsXhTpVZDNfu1Qn3pk531e3q+nQ==} + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + atmn@1.1.16: + resolution: {integrity: sha512-mJhcA7iaREcUjJbDjvFyH35Pzu2TqdARsV3SJD0mzK3tlc77wNyUWICu2fjlcc6eZ7rRxm+eeUBEIddvPDy6Jg==} + engines: {node: '>=16'} + hasBin: true + atomically@1.7.0: resolution: {integrity: sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==} engines: {node: '>=10.12.0'} @@ -5041,8 +5251,12 @@ packages: atomically@2.1.1: resolution: {integrity: sha512-P4w9o2dqARji6P7MHprklbfiArZAWvo07yW7qs3pdljb3BWr12FIB7W+p0zJiuiVsUpRO0iZn1kFFcpPegg0tQ==} - autumn-js@1.2.44: - resolution: {integrity: sha512-IRTFFu/sntacwGDzgcNPGxsIFp8QD/bKmbQyvREXN/sDgI5Jakb1QqlZQ+PGC120xzB8mOruYsHrw8ykkWgjlQ==} + auto-bind@5.0.1: + resolution: {integrity: sha512-ooviqdwwgfIfNmDwo94wlshcdzfO64XV0Cg6oDsDYBJfITDz1EngD2z7DkbvCWn+XIMsIqW27sEVF6qcpJrRcg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + autumn-js@1.2.45: + resolution: {integrity: sha512-BtpAnwiq8BVSDvAfS43OpgW3gHV2YDb3cCULKKDL8l8zC7NoFemrZ5Y4nahcXdKjxA6YjlfVt17st/Z2GY3ZlQ==} peerDependencies: better-auth: ^1.6.0 better-call: ^1.0.12 @@ -5071,6 +5285,9 @@ packages: aws4fetch@1.0.20: resolution: {integrity: sha512-/djoAN709iY65ETD6LKCtyyEI04XIBP5xVvfmNxsEP0uJB5tyaGBztSryRr4HqMStr9R06PisQE7m9zDTXKu6g==} + axios@1.19.0: + resolution: {integrity: sha512-ht/iuYZXEjFxLH/Hkezgd7m6JKlHHXEUSneaDz8uZe1Gj5QZtCnpyDsckvAiEnT89OEbCLmnte4R4sn7P0EKFw==} + axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} @@ -5098,8 +5315,8 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - baseline-browser-mapping@2.10.40: - resolution: {integrity: sha512-BSSLZ9/Cjjv7Gtj5B68ZzXcXUg8iOf3fme+FCuh8rC/Go+Kmh8cox7M3A8dolou16s64QjLPOSdngh7GxXvkSw==} + baseline-browser-mapping@2.11.10: + resolution: {integrity: sha512-35JEvJ5/KKlbCHjMCsONI2w6HE88STjVdHk+C7d8LtcFxUjZR1KeLP9izofn2qs0KUxX5r4z73bwH/rd+JHacw==} engines: {node: '>=6.0.0'} hasBin: true @@ -5190,19 +5407,19 @@ packages: resolution: {integrity: sha512-DkVaaQHymRhpYEYo9x1oo7Q7B0Y6KJUsjm3c9eTyFDby4MHLBTwZ6ZDWBel5zrYxj1WsZgC5oLpiz+93MluXeA==} engines: {node: '>=20.19.0'} - brace-expansion@1.1.16: - resolution: {integrity: sha512-IDw48K2/2kRkg9LdJxurvq3lV3aBgq0REY89duEqFRthjlPdXHKMj7EnQOXVckxzgisinf3nHfrcE2FufFLXMw==} + brace-expansion@1.1.18: + resolution: {integrity: sha512-Edep/X9fGqVNmzKBVsDYIOtD+z1tuezV70LBjdCst9Tqu76lsnvRiZ6oTic1n+/BIwX6QDGAO94PN4N2SADvtw==} - brace-expansion@5.0.7: - resolution: {integrity: sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA==} - engines: {node: 18 || 20 || >=22} + brace-expansion@5.0.9: + resolution: {integrity: sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==} + engines: {node: 20 || >=22} braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.28.4: - resolution: {integrity: sha512-MTc8i/x9jBQd1iMw2CFGS+rwMa07eYjLR0CCTLDACl9xhxy+nIs3KeML/biicXtk9JrZ6dnnTatmc7ErPXIxqw==} + browserslist@4.28.7: + resolution: {integrity: sha512-JxV13hNrFxqjOc8alRbq9dK1MM79NEXYpma2B2J4wAtpWS5zIEIKqWPGCl7N4o7Uc7B7itylh7SuDujATRyyTw==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -5243,8 +5460,8 @@ packages: resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} engines: {node: '>=16'} - caniuse-lite@1.0.30001800: - resolution: {integrity: sha512-MMHtuAz9Ys840zAY5F4k6fV5GaivZ9sPk+nz0mY+GYVzRBnYkN0mpqkSR92oWRQ19yQWo4HvBV/FnC16AJX8MA==} + caniuse-lite@1.0.30001806: + resolution: {integrity: sha512-72Cuvd95zbSYPKq6Fhg8eDJRlzgWDf7/mtoZv6Qe/DYNCEBdNxoA3+rZAU2ZhGCpZlns3EssFavaZomckT5Uuw==} capnweb@0.8.0: resolution: {integrity: sha512-BK/TuXUiyfLSKsmjojn70yN7oYG/JJzoURZ3tckjg5Zj2KcygPm0A5jyOlswK7SYB4f0Gh9tt+RZ132b80iLfA==} @@ -5252,10 +5469,19 @@ packages: ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + cfonts@3.3.1: + resolution: {integrity: sha512-ZGEmN3W9mViWEDjsuPo4nK4h39sfh6YtoneFYp9WLPI/rw8BaSSrfQC6jkrGW3JMvV3ZnExJB/AEqXc/nHYxkw==} + engines: {node: '>=10'} + hasBin: true + chai@6.2.2: resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} engines: {node: '>=18'} + chalk@3.0.0: + resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} + engines: {node: '>=8'} + chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} @@ -5276,6 +5502,9 @@ packages: character-reference-invalid@2.0.1: resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + chardet@2.2.0: + resolution: {integrity: sha512-rddelWYNPRrXq6PtNEN2S3f6t9ILzvqaN5pVgi4kqt9jHQaXIial9PznB5iSPVlQSLNaaH22ItWz3EJtQ10+OA==} + chat@4.31.0: resolution: {integrity: sha512-F6oJq9JUraLFkITS96/NKgwZwBfZX8aOwOj5qMs5NNwnOGHrSXZ5+osK+EA4HjzfyUEDfFTNiOSmyzgtFLpuWg==} engines: {node: '>=20'} @@ -5307,6 +5536,14 @@ packages: clean-git-ref@2.0.1: resolution: {integrity: sha512-bLSptAy2P0s6hU4PzuIMKmMJJSE6gLXGH1cntDu7bWJUksvuM+7ReOK61mozULErYvP6a15rnYl0zFDef+pyPw==} + cli-boxes@3.0.0: + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} + engines: {node: '>=10'} + + cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + cli-cursor@5.0.0: resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} engines: {node: '>=18'} @@ -5315,10 +5552,23 @@ packages: resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} engines: {node: '>=6'} + cli-truncate@5.2.0: + resolution: {integrity: sha512-xRwvIOMGrfOAnM1JYtqQImuaNtDEv9v6oIYAs4LIHwTiKee8uwvIi363igssOC0O5U04i4AlENs79LQLu9tEMw==} + engines: {node: '>=20'} + cli-width@4.1.0: resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} engines: {node: '>= 12'} + clipboard-image@0.1.0: + resolution: {integrity: sha512-SWk7FgaXLNFld19peQ/rTe0n97lwR1WbkqxV6JKCAOh7U52AKV/PeMFCyt/8IhBdqyDA8rdyewQMKZqvWT5Akg==} + engines: {node: '>=20'} + hasBin: true + + clipboardy@5.3.2: + resolution: {integrity: sha512-R35PENCHFCw6lsd5SjYPuAVV3Zawr74mKc7ogFNzoDPoQsmWDoJgUNNnWCk/czeqdZGZs8Y0M8zkOlVoySfHEQ==} + engines: {node: '>=20'} + cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -5334,6 +5584,10 @@ packages: code-block-writer@13.0.3: resolution: {integrity: sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==} + code-excerpt@4.0.0: + resolution: {integrity: sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} @@ -5341,6 +5595,10 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} @@ -5371,6 +5629,10 @@ packages: resolution: {integrity: sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg==} engines: {node: '>=12'} + conf@13.1.0: + resolution: {integrity: sha512-Bi6v586cy1CoTFViVO4lGTtx780lfF96fUmS1lSX6wpZf6330NvHUu6fReVuDP1de8Mg0nkZb01c8tAQdz1o3w==} + engines: {node: '>=18'} + conf@15.1.0: resolution: {integrity: sha512-Uy5YN9KEu0WWDaZAVJ5FAmZoaJt9rdK6kH+utItPyGsCqCgaTKkrmZx3zoE0/3q6S3bcp3Ihkk+ZqPxWxFK5og==} engines: {node: '>=20'} @@ -5398,14 +5660,18 @@ packages: resolution: {integrity: sha512-n4Kr1HFMTf3iMbES0TMxKIcYtUUv4rKqyQQp2JwfOEfFCOfGT3Tq4mCyJ8S9/YPyWhydjfKrrvnyl+gCjA+mJQ==} engines: {node: '>=22'} - conventional-commits-parser@7.0.1: - resolution: {integrity: sha512-6VtskFpPsNkGVk/TY2RnV/MEdKfvCPBtQZN9x8jh9+k5RWBQ+tiaWn5UFCzTr0Dd88iKx7xghxbjBRp5uIzp3g==} + conventional-commits-parser@7.1.2: + resolution: {integrity: sha512-O+x4N2yH+ijvqWlIyTHsXTAP+algNWgGbjY2duCe8w2vUMvUB95cLRslCPfTMQyLAKlet3bhZTdu6ozn4M+QJQ==} engines: {node: '>=22'} hasBin: true convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + convert-to-spaces@2.0.1: + resolution: {integrity: sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + cookie-es@3.1.1: resolution: {integrity: sha512-UaXxwISYJPTr9hwQxMFYZ7kNhSXboMXP+Z3TRX6f1/NyaGPfuNUZOWP1pUEb75B2HjfklIYLVRfWiFZJyC6Npg==} @@ -5471,6 +5737,10 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} + crypto-random-string@4.0.0: + resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} + engines: {node: '>=12'} + css-select@7.0.0: resolution: {integrity: sha512-snmjEVXy+1LnwXdxhYvTMj1d9tOh4HxkA1YmoayVBeeyR2C14Pum7fcxJIm4SswYspVy866eYNwlH6xC3/VH5g==} engines: {node: '>=20.19.0'} @@ -5508,8 +5778,8 @@ packages: peerDependencies: cytoscape: ^3.2.0 - cytoscape@3.33.3: - resolution: {integrity: sha512-Gej7U+OKR+LZ8kvX7rb2HhCYJ0IhvEFsnkud4SB1PR+BUY/TsSO0dmOW59WEVLu51b1Rm+gQRKoz4bLYxGSZ2g==} + cytoscape@3.34.0: + resolution: {integrity: sha512-62rNSrioXw93uliKFBwjukeQyeWwH2PqDrTac31r2P6464u3AUvTk0xS4LVvT251g7IgkFunrI48ZEZGjywSOg==} engines: {node: '>=0.10'} d3-array@2.12.1: @@ -5734,12 +6004,20 @@ packages: resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} engines: {node: '>=12'} + define-property@1.0.0: + resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} + engines: {node: '>=0.10.0'} + defu@6.1.7: resolution: {integrity: sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==} delaunator@5.1.0: resolution: {integrity: sha512-AGrQ4QSgssa1NGmWmLPqN5NY2KajF5MqxetNEO+o0n3ZwZZeTmt7bBnvzHWrmkZFxGgr4HdyFgelzgi06otLuQ==} + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + depd@2.0.0: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} @@ -5755,8 +6033,8 @@ packages: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} - devalue@5.8.1: - resolution: {integrity: sha512-4CXDYRBGqN+57wVJkuXBYmpAVUSg3L6JAQa/DFqm238G73E1wuyc/JhGQJzN7vUf/CMphYau2zXbfWzDR5aTEw==} + devalue@5.9.0: + resolution: {integrity: sha512-RWrqdArjvPbsATEhOPUo6Wndc/iWnkWKlhIrdlF3zMMYo/c3CVtoaVAyLtWxz5h8nSlkHzxnzV2uLydPXmtF+A==} devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} @@ -5793,8 +6071,8 @@ packages: resolution: {integrity: sha512-gYzvtM72ZtxQO0T048kd6HWSbbGCNOUwcnfQ01cqIJ4X2IYKFFHZ5mKvrQETcFXxsRObZulDaKmy//R7TPtsBg==} engines: {node: '>=20.19.0'} - dompurify@3.4.11: - resolution: {integrity: sha512-zhlUV12GsaRzMsf9q5M254YhA4+VuF0fG+QFqu6aYpoGlKtz+w8//jBcGVYBgQkR5GHjUomejY84AV+/uPbWdw==} + dompurify@3.4.12: + resolution: {integrity: sha512-zQvGet8Z2sWbQhCmfFz/T5QWH2oBmjnqK3qvOjaqaNLrLEF912WamU+ohnTp0TCep/MFVHpdJuCZEdFOdTnEFg==} domutils@3.2.2: resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} @@ -5803,14 +6081,18 @@ packages: resolution: {integrity: sha512-qI4JLRKnSzqFqr7hAlS5xQDusBCjKSEG4t4+7aNrIQMHBcsC2TGEhuyABJdYkgSewL57PNLYEiibY2iPKhKpaA==} engines: {node: '>=20.19.0'} - dot-prop@10.1.0: - resolution: {integrity: sha512-MVUtAugQMOff5RnBy2d9N31iG0lNwg1qAoAOn7pOK5wf94WIaE3My2p3uwTQuvS2AcqchkcR3bHByjaM0mmi7Q==} + dot-prop@10.2.0: + resolution: {integrity: sha512-BTJ9aZYL3vCfZlZOBLy9v8TUqWGQ0pzFnygKwFZt5udj6viBoFIBviKPUoZLDCPn1FoXffv6McQFDenrm5Krfw==} engines: {node: '>=20'} dot-prop@6.0.1: resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==} engines: {node: '>=10'} + dot-prop@9.0.0: + resolution: {integrity: sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==} + engines: {node: '>=18'} + dotenv@17.4.2: resolution: {integrity: sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==} engines: {node: '>=12'} @@ -5918,8 +6200,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.383: - resolution: {integrity: sha512-I2484/KkAvl8lm9VyjH2JnbOIV0d/UCqT7gbzs6l+o6Vmn9wgB66uVcKX+Vk6HrXtY6fbWTOEXuv8waDTuFNCw==} + electron-to-chromium@1.5.399: + resolution: {integrity: sha512-lEcqhErbHjXRvd41rnWLpzbyU/IXfIYo7QwaFWmxGeLiLyY2TBCdHnWY88vB+p3ubnihRypDm66panXl7TylLA==} emoji-regex@10.6.0: resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} @@ -5934,8 +6216,8 @@ packages: end-of-stream@1.4.5: resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} - enhanced-resolve@5.24.3: - resolution: {integrity: sha512-PwKooW9JUzh5chmYfHM3IQl5OkK2u2Nm011MgeZrss3JmFraUx/fqrf78kk8GUMYoibx/14MdwTl/1WKkG7TpQ==} + enhanced-resolve@5.24.5: + resolution: {integrity: sha512-L1l8TNvomm6UVW5B253AGxQagSQr+vGwhMlrrfRS2qmhx46AMpMVJKQYLvWYbysTMY8VoicOvzHzoHMbyzB+4A==} engines: {node: '>=10.13.0'} enquirer@2.4.1: @@ -5966,12 +6248,20 @@ packages: resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + environment@1.1.0: + resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} + engines: {node: '>=18'} + error-ex@1.3.4: resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} error-stack-parser-es@1.0.5: resolution: {integrity: sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==} + ervy@1.0.7: + resolution: {integrity: sha512-LyHLPwIKxCKKtTO/qBMFzwA1BD5IjpM0AA3k6CeK9hrEn4Kbayi93G9eD/Ko4suEIjerSl7YpMmaOoL0g9OCoQ==} + engines: {node: '>=8'} + es-define-property@1.0.1: resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} engines: {node: '>= 0.4'} @@ -5980,20 +6270,19 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-module-lexer@2.1.0: - resolution: {integrity: sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==} + es-module-lexer@2.3.1: + resolution: {integrity: sha512-shc1dbU90Yl/xq1QrC7QRtfcwURZuVRfPhZbDoldJ1cn1gzDvBaBWlv0eFolj5+0znnPJz5TXLxsN77X/12KTA==} es-object-atoms@1.1.2: resolution: {integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==} engines: {node: '>= 0.4'} - es-toolkit@1.46.1: - resolution: {integrity: sha512-5eNtXOs3tbfxXOj04tjjseeWkRWaoCjdEI+96DgwzZoe6c9juL49pXlzAFTI72aWC9Y8p7168g6XIKjh7k6pyQ==} + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} - esbuild@0.18.20: - resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} - engines: {node: '>=12'} - hasBin: true + es-toolkit@1.50.0: + resolution: {integrity: sha512-OyZKhUVvEep9ITEiwHn8GKnMRQIVqoSIX7WnRbkWgJkllCujilqP2rD0u979tkl8wqyc8ICwlc1UBVv/Sl1G6w==} esbuild@0.25.12: resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==} @@ -6012,6 +6301,10 @@ packages: escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} @@ -6072,8 +6365,8 @@ packages: resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} engines: {node: '>=0.10'} - esrap@2.2.13: - resolution: {integrity: sha512-m8jH5hZgJE2RRUK/jjkGPcJEDAV+dYnZYFkosQaPTcE+Yw4xynXHOo6FUdwaWBtdR3b1MMa7wEDTSHeR2VWsGA==} + esrap@2.3.0: + resolution: {integrity: sha512-GQ/7RN8uOtEfNpzZzBMTzW9JBcX42oaSVtPzdF+6cEL8pqIL094iUpr9jzYGn4O4P/1S60dJ6izyT8F4LYARng==} peerDependencies: '@typescript-eslint/types': ^8.2.0 peerDependenciesMeta: @@ -6136,12 +6429,12 @@ packages: resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} engines: {node: '>=6'} - expect-type@1.3.0: - resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==} + expect-type@1.4.0: + resolution: {integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==} engines: {node: '>=12.0.0'} - express-rate-limit@8.5.2: - resolution: {integrity: sha512-5Kb34ipNX694DH48vN9irak1Qx30nb0PLYHXfJgw4YEjiC3ZEmZJhwOp+VfiCYwFzvFTdB9QkArYS5kXa2cx2A==} + express-rate-limit@8.6.1: + resolution: {integrity: sha512-0D493aP61w0TJ2A0wy27riRsO7FMQ7FK+KUHOKCSfPvYo0R55aiC6emCVgFUeShH0fq0ICPVzNcgoS+BsbXQCA==} engines: {node: '>= 16'} peerDependencies: express: '>= 4.11' @@ -6150,8 +6443,8 @@ packages: resolution: {integrity: sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==} engines: {node: '>= 18'} - exsolve@1.0.8: - resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==} + exsolve@1.1.1: + resolution: {integrity: sha512-9U/jZUgjnSGyntRr6y5Muu1MJcwFl6kPu7k8qLF0IMNfLqvw0NZ4nnVDq0RVoZ0RvCyumib4Ez3KYrVfilrw+g==} extend-shallow@2.0.1: resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} @@ -6183,8 +6476,8 @@ packages: fast-string-width@3.0.2: resolution: {integrity: sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==} - fast-uri@3.1.3: - resolution: {integrity: sha512-i70LwGWUduXqzicKXWshooq+sWL1K3WUU5rKZNG/0i3a1OSoX3HqhH5WbWwTmqWfor4urUakGPiRQcleRZTwOg==} + fast-uri@3.1.5: + resolution: {integrity: sha512-gHwA1O9LDIcKunMKhObS/HimwtehO1nPUECKAu5TpKgaO19fcWEl4bliWe1jWxVFvIXztJjjQ4L8XQ1EU9f7Jw==} fast-wrap-ansi@0.2.2: resolution: {integrity: sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q==} @@ -6192,8 +6485,8 @@ packages: fast-xml-builder@1.3.0: resolution: {integrity: sha512-F74cZEdCvuw9P41GAC3rod4X04jjWGM1JPEv/GWSqFTWLsdyMSBMBMlm9Hk3GLBgLBbdBNY8yee0pQh2RBVESQ==} - fast-xml-parser@5.10.0: - resolution: {integrity: sha512-SLhnTEqE5QpJHq/6zl9bsmImEP2adv+y6Wy+cJa7nVTRzQh1OZfCe9k29M5xN74LWnu0xa1zrUrq3KnOKl92Fg==} + fast-xml-parser@5.10.1: + resolution: {integrity: sha512-IEMIf7298kXuZSRFoGfMYrl7is8LpavODgbNz1cwIudv7KwVFnuU+UsMporfq6PD6aXSlawZlARiA3UywCTfMw==} hasBin: true fastq@1.20.1: @@ -6214,8 +6507,8 @@ packages: fetchdts@0.1.7: resolution: {integrity: sha512-YoZjBdafyLIop9lSxXVI33oLD5kN31q4Td+CasofLLYeLXRFeOsuOw0Uo+XNRi9PZlbfdlN2GmRtm4tCEQ9/KA==} - fflate@0.4.8: - resolution: {integrity: sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA==} + fflate@0.4.9: + resolution: {integrity: sha512-zdxgIEddhfsyCaWpJ2SdXEP8ZMrKJ6+5jl4OupODcywU0IhRk6gdXuVGcPICyfx2H97hVK7xmJtRLPjkxAX8Vw==} figures@6.1.0: resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} @@ -6253,13 +6546,26 @@ packages: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} - flatted@3.4.2: - resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==} + flatted@3.4.4: + resolution: {integrity: sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==} + + follow-redirects@1.16.0: + resolution: {integrity: sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true for-each@0.3.5: resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} + form-data@4.0.6: + resolution: {integrity: sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==} + engines: {node: '>= 6'} + formatly@0.3.0: resolution: {integrity: sha512-9XNj/o4wrRFyhSMJOvsuyMwy8aUfBaZ1VrqHVfohyXf0Sw0e+yfKG+xZaY3arGCOMdwFsqObtzVOc1gU9KiT9w==} engines: {node: '>=18.3.0'} @@ -6269,8 +6575,8 @@ packages: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} - framer-motion@12.42.2: - resolution: {integrity: sha512-5XY9luDiu0oHfHBjpDthFMh0ES+122w6p/papSJBweMkO8Sn+PW2QaEgRblQBpWFnuvZS5qvarpt/hO2pjGmnw==} + framer-motion@12.43.0: + resolution: {integrity: sha512-1eaL3RvR/kAlbG7UYcpMptEyzPoENO0c6w7ZnB3/hh2vSAz/6uGAFn6fdoqTBguNstf3MsFhJHsD/0DHiclG+g==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 || ^19.0.0 @@ -6290,8 +6596,8 @@ packages: fs-constants@1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - fs-extra@11.3.6: - resolution: {integrity: sha512-w8ZNZr2mKIc7qeNaQ9AVPT1+iFaI+Avd4xudVOvdDJ8VytREi1Ft5Ih7hd9jjehod8vAM5GMsfQ/TpPf4EyoEA==} + fs-extra@11.4.0: + resolution: {integrity: sha512-EQsFzMUJkCKGr1ePqlYADkIUmHW1s3ZXr5Yqy6wbGrfUCphpl2maM/kyOIRA2HpP3AaFQTZXD4ldjek+nccddA==} engines: {node: '>=14.14'} fsevents@2.3.3: @@ -6471,8 +6777,8 @@ packages: hermes-parser@0.25.1: resolution: {integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==} - hono@4.12.27: - resolution: {integrity: sha512-1yrb/+w6HWQJrUCLkJ2IF5jNIPvvFkblV5RNOYl6bV+OA6p9GLcMpHFFGTosSvHvcAUibuUukRqhlYI4z32C7Q==} + hono@4.12.33: + resolution: {integrity: sha512-+SwvkaiJtxsiPjhy9LivY/1m7UsNqCJetM1BrZl9A5DkQhlbHQDU730mMiDPWjnoCYOM8Chf3WrCJw27kNTPFQ==} engines: {node: '>=16.9.0'} html-encoding-sniffer@6.0.0: @@ -6499,6 +6805,10 @@ packages: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + https-proxy-agent@7.0.6: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} @@ -6533,8 +6843,8 @@ packages: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} - import-in-the-middle@3.1.0: - resolution: {integrity: sha512-c0AeAV8VcwZzfYE7euTZY3H+VXUPMVugiovdosq80lqEXJmOekg3zGUAYg6KImHMaMuBoTUfTv7xNpUFdy0hJA==} + import-in-the-middle@3.3.3: + resolution: {integrity: sha512-AiohS3H80sXO6owEltjGX+glb7qXaDhBoJb9XcQVH4UI207xu/bDLUcadVKp7Qe576reg9yr/PXZjV5qx8gfbA==} engines: {node: '>=18'} import-meta-resolve@4.2.0: @@ -6544,6 +6854,10 @@ packages: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} + indent-string@5.0.0: + resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} + engines: {node: '>=12'} + inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -6554,9 +6868,98 @@ packages: resolution: {integrity: sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==} engines: {node: ^20.17.0 || >=22.9.0} + ink-big-text@2.0.0: + resolution: {integrity: sha512-Juzqv+rIOLGuhMJiE50VtS6dg6olWfzFdL7wsU/EARSL5Eaa5JNXMogMBm9AkjgzO2Y3UwWCOh87jbhSn8aNdw==} + engines: {node: '>=14.16'} + peerDependencies: + ink: '>=4' + react: '>=18' + + ink-chart@0.1.1: + resolution: {integrity: sha512-A3WxEO4t5ueuTves/zhaTJe/XcPXnlmf//gcKni8W1Nme6Dj0KhtWPTrsNpp6cZQR6k6HG/diEvZVcQ8DMmYyQ==} + engines: {node: '>=8'} + peerDependencies: + ink: '>=2.0.0' + react: '>=16.8.0' + + ink-confirm-input@2.0.0: + resolution: {integrity: sha512-YCd7a9XW0DIIbOhF3XiLo3WF86mOart9qI1qN56wT5IDJxU+j8BanEZh5/QXoazyIPSv1iXlHPIlRB5cbZIMIA==} + engines: {node: '>=10'} + peerDependencies: + ink: '>=2' + react: '>=16' + + ink-scroll-list@0.4.1: + resolution: {integrity: sha512-2GcjnBXRe0sTSMC03SCKX6IkNAsYYgcpvAN+ggAiaqeg+s+qA9Ls0iVTOmB+Ize/9AVts8xloG4aRcrOy/7Xxg==} + peerDependencies: + ink: '>=6' + react: '>=19' + + ink-scroll-view@0.3.7: + resolution: {integrity: sha512-lUBLxSbVry/+UtJhuvRu6wumP43+ScVp69J7e+hmYwz1kTkahWfkVwWOu7Mn1DMPb8AU8bnsmEsr6kvSJvnaRw==} + peerDependencies: + ink: ^5 || ^6 || ^7 + react: ^18 || ^19 + + ink-select-input@6.2.0: + resolution: {integrity: sha512-304fZXxkpYxJ9si5lxRCaX01GNlmPBgOZumXXRnPYbHW/iI31cgQynqk2tRypGLOF1cMIwPUzL2LSm6q4I5rQQ==} + engines: {node: '>=18'} + peerDependencies: + ink: '>=5.0.0' + react: '>=18.0.0' + + ink-spinner@5.0.0: + resolution: {integrity: sha512-EYEasbEjkqLGyPOUc8hBJZNuC5GvXGMLu0w5gdTNskPc7Izc5vO3tdQEYnzvshucyGCBXc86ig0ujXPMWaQCdA==} + engines: {node: '>=14.16'} + peerDependencies: + ink: '>=4.0.0' + react: '>=18.0.0' + + ink-table@3.1.0: + resolution: {integrity: sha512-qxVb4DIaEaJryvF9uZGydnmP9Hkmas3DCKVpEcBYC0E4eJd3qNgNe+PZKuzgCERFe9LfAS1TNWxCr9+AU4v3YA==} + peerDependencies: + ink: '>=3.0.0' + react: '>=16.8.0' + + ink-text-input@3.3.0: + resolution: {integrity: sha512-gO4wrOf2ie3YuEARTIwGlw37lMjFn3Gk6CKIDrMlHb46WFMagZU7DplohjM24zynlqfnXA5UDEIfC2NBcvD8kg==} + engines: {node: '>=8'} + peerDependencies: + ink: ^2.0.0 + react: ^16.5.2 + + ink-text-input@6.0.0: + resolution: {integrity: sha512-Fw64n7Yha5deb1rHY137zHTAbSTNelUKuB5Kkk2HACXEtwIHBCf9OH2tP/LQ9fRYTl1F0dZgbW0zPnZk6FA9Lw==} + engines: {node: '>=18'} + peerDependencies: + ink: '>=5' + react: '>=18' + + ink@6.8.0: + resolution: {integrity: sha512-sbl1RdLOgkO9isK42WCZlJCFN9hb++sX9dsklOvfd1YQ3bQ2AiFu12Q6tFlr0HvEUvzraJntQCCpfEoUe9DSzA==} + engines: {node: '>=20'} + peerDependencies: + '@types/react': '>=19.0.0' + react: '>=19.0.0' + react-devtools-core: '>=6.1.2' + peerDependenciesMeta: + '@types/react': + optional: true + react-devtools-core: + optional: true + inline-style-parser@0.2.7: resolution: {integrity: sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==} + inquirer@12.11.1: + resolution: {integrity: sha512-9VF7mrY+3OmsAfjH3yKz/pLbJ5z22E23hENKw3/LNSaA/sAt3v49bDRY+Ygct1xwuKT+U+cBfTzjCPySna69Qw==} + engines: {node: '>=18'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + internmap@1.0.1: resolution: {integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==} @@ -6564,14 +6967,18 @@ packages: resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} engines: {node: '>=12'} - ip-address@10.2.0: - resolution: {integrity: sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA==} + ip-address@10.4.0: + resolution: {integrity: sha512-oSK96Grm3aP6OrS263xVxbNDGVL7rzBtYdpGqlDG8iQdoenDoTs/nkki+DflYbAEE8Xl6o5YxhxlrKvI3nqKXQ==} engines: {node: '>= 12'} ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} + is-accessor-descriptor@1.0.2: + resolution: {integrity: sha512-AIbwAcazqP3R65dGvqk1V+a+vE5Fg1yu/ZKMOiBWSUIXXiwQkYmXQcVa2O0nh0tSDKDFKxG2mY7dB1Sr4hEP1g==} + engines: {node: '>= 0.4'} + is-alphabetical@2.0.1: resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} @@ -6581,13 +6988,24 @@ packages: is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + is-buffer@1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} + is-data-descriptor@1.0.1: + resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==} + engines: {node: '>= 0.4'} + is-decimal@2.0.1: resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + is-descriptor@1.0.4: + resolution: {integrity: sha512-bv5z95W0dDtLfKwDfkTNxaRxmISBD3eQBKJeVxv2AQ7MjuUnDNG7cIQqvFtMOUYhsILWHhMayWdoGqNqYYYjww==} + engines: {node: '>= 0.4'} + is-docker@2.2.1: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} @@ -6610,6 +7028,10 @@ packages: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} + is-fullwidth-code-point@5.1.0: + resolution: {integrity: sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==} + engines: {node: '>=18'} + is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -6617,6 +7039,11 @@ packages: is-hexadecimal@2.0.1: resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + is-in-ci@2.0.0: + resolution: {integrity: sha512-cFeerHriAnhrQSbpAxL37W1wcJKUUX07HyLWZCW1URJT/ra3GyUTzBgUnh24TMVfNTV2Hij2HLxkPHFZfOZy5w==} + engines: {node: '>=20'} + hasBin: true + is-in-ssh@1.0.0: resolution: {integrity: sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw==} engines: {node: '>=20'} @@ -6633,6 +7060,10 @@ packages: is-node-process@1.2.0: resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==} + is-number@3.0.0: + resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} + engines: {node: '>=0.10.0'} + is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} @@ -6685,6 +7116,10 @@ packages: is-unsafe@2.0.0: resolution: {integrity: sha512-2LdV822R+wmI86unXA93WCFpL6g+av8ynWk0nrHyJqGop5VoocYsSLFgN8jrfalT6iGeLNM4KXuVSsULP53kEA==} + is-wayland@0.1.0: + resolution: {integrity: sha512-QkbMsWkIfkrzOPxenwye0h56iAXirZYHG9eHVPb22fO9y+wPbaX/CHacOWBa/I++4ohTcByimhM1/nyCsH8KNA==} + engines: {node: '>=20'} + is-wsl@2.2.0: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} @@ -6693,11 +7128,15 @@ packages: resolution: {integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==} engines: {node: '>=16'} + is64bit@2.0.0: + resolution: {integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==} + engines: {node: '>=18'} + isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - isbot@5.1.43: - resolution: {integrity: sha512-drJhFmibra4LO6Wd7D3Oi6UICRK9244vSZkmxzhlZP0TTdwCA2ueK4PEkUkzPYeuqug9+cqqdWPgihjk5+83Cg==} + isbot@5.2.1: + resolution: {integrity: sha512-dJ+LpKyClQZ7NG+j3OensC/mAZkGpukE9YUrgPYvAZj2doVL0edfDgywTUh5CXa0o+nW9a1V9e5+CJTX8+SxRw==} engines: {node: '>=18'} isexe@2.0.0: @@ -6707,8 +7146,8 @@ packages: resolution: {integrity: sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==} engines: {node: '>=18'} - isomorphic-git@1.38.5: - resolution: {integrity: sha512-4HBmx1UB+SdRaQh7+zN7lvFQxc4zl7s0oIM/1+5xveu6+QrOeFfx5QDeRNpqCzFHICISEdbK7GilsTsrgE006Q==} + isomorphic-git@1.40.0: + resolution: {integrity: sha512-/CbnxwZqIm17y3c/z0INbkgEKSvFerXtO/NGgaRxZ8nvL3eoMtbjuAS7f4Pj7lZzj8HaultvDD1ClJTBVDl89g==} engines: {node: '>=14.17'} hasBin: true @@ -6723,8 +7162,8 @@ packages: resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==} hasBin: true - jose@6.2.3: - resolution: {integrity: sha512-YYVDInQKFJfR/xa3ojUTl8c2KoTwiL1R5Wg9YCydwH0x0B9grbzlg5HC7mMjCtUJjbQ/YnGEZIhI5tCgfTb4Hw==} + jose@6.2.7: + resolution: {integrity: sha512-hq1OB1bALKfydZNoViyg6hPVGV4i93ny9Op+n4zP5RSf7SCZEXa/TsG2O3IEr7+WlHRTPnpqDmHfMH6qXAD60w==} js-base64@3.8.0: resolution: {integrity: sha512-65kvbemyZhj+ExQt1PEFyBEjL5vAHysu1lJdW1AwhhChkO8ZBPizYk/m9GVrpbS2Je1hF+UYZ+6KywqtZV8mHw==} @@ -6735,12 +7174,12 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-yaml@3.15.0: - resolution: {integrity: sha512-ttBQIIQPDeLjpPOohtUdXuXUVoA2uIB6fEH9HyJ7234s5mBJ5wTx20njxplLZQgLaOfpmPQA7X2t5AX6tIPbog==} + js-yaml@3.15.1: + resolution: {integrity: sha512-S99WuO3HlhO3XN41EtYUNl9zzXjoJx7QvmipxsJVxtCBT0YHEFy+iOJhjSvrmV12nYhWpZaM8lPHkJm0yUMbag==} hasBin: true - js-yaml@4.3.0: - resolution: {integrity: sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==} + js-yaml@4.3.1: + resolution: {integrity: sha512-CY6crGq313MX8GkwvB7tzgp99vjQxY1++5y10/BKN/GUfHqWaOGQMNZkBvqSzsZKWk/ijwHlWzzkLulsGHhjWQ==} hasBin: true jsdom@28.1.0: @@ -6810,6 +7249,10 @@ packages: khroma@2.1.0: resolution: {integrity: sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==} + kind-of@3.2.2: + resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} + engines: {node: '>=0.10.0'} + kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} @@ -6822,14 +7265,14 @@ packages: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} - knip@6.17.1: - resolution: {integrity: sha512-HcQsZSQ4Ymhuay4BVzJtM5pFZNDSomYYqcNCZOSITPQh9g18a09DqziWAxSt2G+BH9wGlG+0ZjWpEnaFlnKseQ==} + knip@6.31.0: + resolution: {integrity: sha512-NbeIEmUS2VUMjAkbiSNOKPJeV9wpCsr0660sUyKyMQbk4Iom0++nTLInVp4MJ+LfR4kORnw67bDi5tvO7YLnzA==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - kysely@0.28.17: - resolution: {integrity: sha512-nbD8lB9EB3wNdMhOCdx5Li8DxnLbvKByylRLcJ1h+4SkrowVeECAyZlyiKMThF7xFdRz0jSQ2MoJr+wXux2y0Q==} - engines: {node: '>=20.0.0'} + kysely@0.29.4: + resolution: {integrity: sha512-y5mVgQNkMbs1eK9Xyc0pmNdabN2wHhRYY/5r4W5HrUT1rYCEPeVNSj1RUJeSDKT3U0p+mXCvLgkrFuIafYI6BA==} + engines: {node: '>=22.0.0'} launch-editor@2.14.1: resolution: {integrity: sha512-QWBrQsMpH7gPr965dsKD/3cKWiNoTjpATQf++Xq63N6sKRGMwlVXz41O1IZTMfZQgBctD/K5Zt06+/I6pP6+HA==} @@ -7039,6 +7482,10 @@ packages: longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + lru-cache@11.5.2: resolution: {integrity: sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==} engines: {node: 20 || >=22} @@ -7046,8 +7493,8 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - lucide-react@1.27.0: - resolution: {integrity: sha512-rJicGl/3Fly/E0rOH1YmPZ6e49JCnKknh1ox1vpHnkfjujAkKA6sqUZvH3MTAaXXjgexyUwgNwTJzTtYuAFYJw==} + lucide-react@1.28.0: + resolution: {integrity: sha512-fARAFJULsGuDDydjp6+6blekG/sBIM29TerzLjc9bQUKAcEfrSc4ZQKb25KRz4OMKd87cZTb5dgq0w/T6KufVg==} peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -7055,11 +7502,15 @@ packages: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true + macos-version@6.0.0: + resolution: {integrity: sha512-O2S8voA+pMfCHhBn/TIYDXzJ1qNHpPDU32oFxglKnVdJABiYYITt45oLkV9yhwA3E2FDwn3tQqUFrTsr1p3sBQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + magic-string@0.30.21: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} - magicast@0.5.3: - resolution: {integrity: sha512-pVKE4UdSQ7DvHzivsCIFx2BJn1mHG6KsyrFcaxFx6tONdneEuThrDx0Cj3AMg58KyN4pzYT+LHOotxDQDjNvkw==} + magicast@0.5.4: + resolution: {integrity: sha512-llBEhWm1SacoRwgHUoQJYtwp4PBLF4faQi5TCpIGyGs9n4y5+juI0tDgyKIfpqxckRHaHzouUEph3THklWh03w==} markdown-table@3.0.4: resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} @@ -7123,6 +7574,24 @@ packages: mdast-util-to-hast@13.2.1: resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==} + mdast-util-to-markdown-cjk-friendly-gfm-strikethrough@1.0.0: + resolution: {integrity: sha512-1ePVfB4P/vz3xSsm6H3D32r6VYGErxclnuLLFK02/2ReF+UdEKm7caulK6Vm0LBIp5gPRtB2Z1OYDznCkX3k2w==} + engines: {node: '>=18'} + peerDependencies: + '@types/mdast': '*' + peerDependenciesMeta: + '@types/mdast': + optional: true + + mdast-util-to-markdown-cjk-friendly@1.0.0: + resolution: {integrity: sha512-BoaAm8mlJ+LAYz0Qs532Y3ciTuQYgBUPZcSFbvC/ZKmEMAKgulw84YvQK1gI34t/vL2euSfuaWlqczkTBgamkw==} + engines: {node: '>=18'} + peerDependencies: + '@types/mdast': '*' + peerDependenciesMeta: + '@types/mdast': + optional: true + mdast-util-to-markdown@2.1.2: resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} @@ -7132,14 +7601,10 @@ packages: mdn-data@2.27.1: resolution: {integrity: sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==} - media-typer@1.1.0: - resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} + media-typer@1.1.1: + resolution: {integrity: sha512-yz3xRaG20c6/BOzvYoDaGtPmGscs7YivItZEEqe6GbwNfHuxu9YNmvnEkMzKldAGY4/80pRcQRZSEnhquk9XuQ==} engines: {node: '>= 0.8'} - meow@14.1.0: - resolution: {integrity: sha512-EDYo6VlmtnumlcBCbh1gLJ//9jvM/ndXHfVXIFrZVr6fGcwTUyCTFNTLCKuY3ffbK8L/+3Mzqnd58RojiZqHVw==} - engines: {node: '>=20'} - merge-descriptors@2.0.0: resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==} engines: {node: '>=18'} @@ -7151,8 +7616,9 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - mermaid@11.15.0: - resolution: {integrity: sha512-pTMbcf3rWdtLiYGpmoTjHEpeY8seiy6sR+9nD7LOs8KfUbHE4lOUAprTRqRAcWSQ6MQpdX+YEsxShtGsINtPtw==} + meriyah@6.1.4: + resolution: {integrity: sha512-Sz8FzjzI0kN13GK/6MVEsVzMZEPvOhnmmI1lU5+/1cGOiK3QUahntrNNtdVeihrO7t9JpoH75iMNXg6R6uWflQ==} + engines: {node: '>=18.0.0'} mermaid@11.16.0: resolution: {integrity: sha512-Zvm3kbstgdpvIJPPItlL7fppIZ3kibvc1oZIGxdvk9t6UFz6flv+Jw7FtRGKwfcI8OckmH04LqG6LlS6X4B1pA==} @@ -7317,8 +7783,12 @@ packages: engines: {node: '>=22.0.0'} hasBin: true - minimatch@10.2.5: - resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} + miniflare@5.20260730.0-alpha: + resolution: {integrity: sha512-8/dspSXDshP6nSkCpjKO7BYc2qZoYSXm7iM+QxY7qJyJpAB3onnQSaiu0cvKJlfuMGwULl55hG69FJCcCMXU1Q==} + engines: {node: '>=22.0.0'} + + minimatch@10.2.6: + resolution: {integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==} engines: {node: 18 || 20 || >=22} minimatch@3.1.5: @@ -7333,21 +7803,21 @@ packages: mkdirp-classic@0.5.3: resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} - modern-tar@0.7.6: - resolution: {integrity: sha512-sweCIVXzx1aIGTCdzcMlSZt1h8k5Tmk08VNAuRk3IU28XamGiOH5ypi11g6De2CH7PhYqSSnGy2A/EFhbWnVKg==} + modern-tar@0.7.7: + resolution: {integrity: sha512-t9VmxaqrmANnEOBhpSDI6HD192Ge48k8vmWqQQL7hSFEqHEYwZbbsu49+aKLWZeRvFs3j1pMhXOqqF4kPlvjkQ==} engines: {node: '>=18.0.0'} module-details-from-path@1.0.4: resolution: {integrity: sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==} - motion-dom@12.42.2: - resolution: {integrity: sha512-5gIMWLp/PycBtJRJWRgjxke5n8dlvkSn2DrYW+tr3XcqAZY1xZh6BJyooJXCM8wdfM7wfMjkBJNLge1CKPUIRA==} + motion-dom@12.43.0: + resolution: {integrity: sha512-azKON4d9S65PEoFUiQTMTgPheEmzf2QngdRc50AKfJp9Q9mmcBVw22c8eMq9k8kxOFHdL7+WZY7N/5F/lwiDag==} motion-utils@12.39.0: resolution: {integrity: sha512-8nadJAJjTtqRkmRF36FoJTrywK9nnFmnPwnSMyxaOCU7GDjN9RTMJIxx9De8ErM+vpPhMccr/6fo5WciyQLnMQ==} - motion@12.42.2: - resolution: {integrity: sha512-Atvv11yUKIid41cVrRBDVX5m8tF8kNpExRSlbpt6APClhDjtwQssgFHhQzejxw7/7YYbjHSPKBVbHo05BuJT5Q==} + motion@12.43.0: + resolution: {integrity: sha512-BQgQbSa9Hn3/mtbib0MK53y6JSANa+YKUKlaYnWzAVDH424RYQ5LVpV3pNiWH00BA2z4ojsSdMzqT7g2FQwjuQ==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 || ^19.0.0 @@ -7377,6 +7847,10 @@ packages: typescript: optional: true + mute-stream@2.0.0: + resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} + engines: {node: ^18.17.0 || >=20.5.0} + mute-stream@3.0.0: resolution: {integrity: sha512-dkEJPVvun4FryqBmZ5KhDo0K9iDXAwn08tMLDinNdRBNPcYEDiWYysLcc6k3mjTMlbP9KyylvRpd4wFtwrT9rw==} engines: {node: ^20.17.0 || >=22.9.0} @@ -7396,8 +7870,8 @@ packages: engines: {node: ^22 || ^24 || >=26} hasBin: true - nanostores@1.3.0: - resolution: {integrity: sha512-XPUa/jz+P1oJvN9VBxw4L9MtdFfaH3DAryqPssqhb2kXjmb9npz0dly6rCsgFWOPr4Yg9mTfM3MDZgZZ+7A3lA==} + nanostores@1.4.2: + resolution: {integrity: sha512-Wxv8Roefr2nqtiRG0bnaFlpYqpIVtOEeJZHaH+4nGgOK1/7n6OHOuHCb/bhqrNQgZM8fyd0s1PqhdrJc9Ib44g==} engines: {node: ^20.0.0 || >=22.0.0} napi-build-utils@2.0.0: @@ -7414,8 +7888,8 @@ packages: resolution: {integrity: sha512-W5ZNO5KRPB5TkYmGVD9F6YqhsglXJzE6etpbmT+f6EQElhiX/UTG551cnsRGvLG3fyZEg9HwaDmNmj5nwJ4z9g==} engines: {node: '>=10'} - node-addon-api@8.9.0: - resolution: {integrity: sha512-ekZMeaaIzSQTSpr7X2X3iJM7lTzgnx8ahAG9pJfT/7+14mlEM8ZYQ9cgCDvSSRbReFK0oHli3WrZdCiRsgAT9Q==} + node-addon-api@8.9.1: + resolution: {integrity: sha512-4eUQWVPCUUUiBjLnHS3cXWeC6ryoPUc0U3rP7IuzapoGbzMqd/r6KKO0clr0b+snQhsrueFEhCZDdK+LK7hxKg==} engines: {node: ^18 || ^20 || >= 21} node-gyp-build@4.8.4: @@ -7427,8 +7901,8 @@ packages: engines: {node: '>=16.0.0'} hasBin: true - node-releases@2.0.50: - resolution: {integrity: sha512-J6l92tKHX6w8Jy5nO1Vuc01NoIiRGi/d6qBKVxh+IQ8Cr3b6HbVNfKiF8ZpFKufTwpwxMmce2W3iQZ861ZRyTg==} + node-releases@2.0.51: + resolution: {integrity: sha512-wRNIrw4DmVLKQlbgOMdkMx27Wrpzes2hh5Jtbi2bjPd+4wJstWIqP5A+lscnqbm0xxmT5Bpg8Lec5ItEBwx6BQ==} engines: {node: '>=18'} npm-run-path@4.0.1: @@ -7447,6 +7921,10 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} + object-hash@2.2.0: + resolution: {integrity: sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==} + engines: {node: '>= 6'} + object-inspect@1.13.4: resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} engines: {node: '>= 0.4'} @@ -7455,8 +7933,8 @@ packages: resolution: {integrity: sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A==} engines: {node: '>= 10'} - obug@2.1.3: - resolution: {integrity: sha512-9miFgM2OFba7hB+pRgvtV84pYTBaoTHohvmIgiRt6dRIzbwEOIaNaP+dIlGs2fNFoB0SeISs0Jz5WFVRid6Xyg==} + obug@2.1.4: + resolution: {integrity: sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==} engines: {node: '>=12.20.0'} on-finished@2.4.1: @@ -7480,6 +7958,10 @@ packages: oniguruma-to-es@4.3.6: resolution: {integrity: sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==} + open@10.2.0: + resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} + engines: {node: '>=18'} + open@11.0.0: resolution: {integrity: sha512-smsWv2LzFjP03xmvFoJ331ss6h+jixfA4UUV/Bsiyuu4YJPfN+FIQGOIiv4w9/+MoHkfkJ22UIaQWRVFRfH6Vw==} engines: {node: '>=20'} @@ -7514,8 +7996,12 @@ packages: resolution: {integrity: sha512-/DaPStu0s2zzNSRRniKyTPM6Z/o+DapOp2JYNKDL8AsgaBGPK2IdZyB87SQjVH+xeQPz+Qr9mrjglfkYgtbVRA==} engines: {node: ^20.19.0 || >=22.12.0} - oxc-resolver@11.21.3: - resolution: {integrity: sha512-2Mx3fKQz7+xgrBONjsxOgCGtMHOn38/HxMzW1I5efwXB5a4lRN0Vp40gYUJFBWJslcrvwoofTrqoTnLbwTd3pA==} + oxc-parser@0.142.0: + resolution: {integrity: sha512-kKR+jPiRJYJDexVoziIg/FVGvr1fT1FZSSJOk6tVoMKKSlsf1Cso+cgGCJkOEDWOP174vRntCPFKg+AS7InWvw==} + engines: {node: ^20.19.0 || >=22.12.0} + + oxc-resolver@11.24.2: + resolution: {integrity: sha512-FY91FiDBj7ls5MsFS9jN3tjz2o0/zsdSsymlakySaBwVJZorHhkWyICLZMKxlu1R9vYo+sd3z1jwb4J8x7bNDw==} oxfmt@0.60.0: resolution: {integrity: sha512-fViX6i+gJuZWY+jI/fnR6WRbRj70GZ9RlCd30MygJrHTUNc4DxvKHWw8vBjMjffv3PgU5qWDR0AzmojQByqaZA==} @@ -7585,8 +8071,8 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} - package-manager-detector@1.6.0: - resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==} + package-manager-detector@1.8.0: + resolution: {integrity: sha512-yQA4H19AmPEoMUeavPMDIe1higySl/gH/yaQrkT/s07Qp+7pp2hYz30N3z2l5BkjVkF9Ow6o0wjJamm2y7Sn0A==} pako@1.0.11: resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} @@ -7622,10 +8108,10 @@ packages: partial-json@0.1.7: resolution: {integrity: sha512-Njv/59hHaokb/hRUjce3Hdv12wd60MtM9Z5Olmn+nehe0QDAsRtRbJPvJ0Z91TusF0SuZRIvnM+S4l6EIP8leA==} - partyserver@0.5.8: - resolution: {integrity: sha512-htgSwiBcBu9zIYLrsxBAOvdkjukHvncbTk0nDrJgfruvZ08rxtEN1Ab4T7j9osykP80Bq3zA2oWFd3ngc4Z9uw==} + partyserver@0.5.9: + resolution: {integrity: sha512-0T1OGQD9Ggllrlp8Bt8XLOglEEktH4bui28Z1dbSGEX/iFmZnEWR148Qmvc1Od3rl64OAOfVtr2sG4XOMI9Y6Q==} peerDependencies: - '@cloudflare/workers-types': ^4.20260424.1 + '@cloudflare/workers-types': ^4.20260424.1 || ^5.20260703.1 partysocket@1.3.0: resolution: {integrity: sha512-1zToNyolZFK/7nuAw/K2bZrNzFqaZyRoCEkS+9vG6WSC5ikrN6qWRe96q6ImU51uptz2r+dAwSkwhJVdQi4LiA==} @@ -7635,6 +8121,10 @@ packages: react: optional: true + patch-console@2.0.0: + resolution: {integrity: sha512-0YNdUceMdaQwoKce1gatDScmMo5pu/tfABfnzEqeG0gtTmd7mh/WcwgUjtAeOU7N8nFFlbQBnFK2gXW5fGvmMA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} @@ -7711,8 +8201,8 @@ packages: resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} engines: {node: '>=8.6'} - picomatch@4.0.4: - resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} + picomatch@4.0.5: + resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==} engines: {node: '>=12'} pify@4.0.1: @@ -7753,12 +8243,8 @@ packages: resolution: {integrity: sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==} engines: {node: '>=4'} - postcss@8.5.16: - resolution: {integrity: sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==} - engines: {node: ^10 || ^12 || >=14} - - postcss@8.5.18: - resolution: {integrity: sha512-xdB1oSLHbz1vRWgCDalrCqEFTWzFlhqFC5tIHLMOSUIjhm3XXQ1qrFy8S/ESr1JYRRXqM3c1QFiMZUJdUTqyMQ==} + postcss@8.5.25: + resolution: {integrity: sha512-DTPx3RWSSnWyzLxQnlH0rJP+EW5ekl16ZU4/psbIhA0e53kJfdgaN5vKM+xP7yJtXVu+nfdVFmlgFDEKAe4Pyw==} engines: {node: ^10 || ^12 || >=14} postgres-array@2.0.0: @@ -7777,11 +8263,11 @@ packages: resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} engines: {node: '>=0.10.0'} - posthog-js@1.407.3: - resolution: {integrity: sha512-b9Kc7HVN6nh+xsh1JrcLYHv9bbYLwYUM9belJtNVUFZSJWWfFcZRJJP6L+KeanAeu2VxSFSpioVA39pjjolv4A==} + posthog-js@1.409.5: + resolution: {integrity: sha512-s1iJz+vq0YAluUD4OwLjUFIJt/9pqiiB6MITvHWIS16a7pqTJqbSLXsd5/8kJcIgfrOSZHe+mdYAXLYcJCS4LQ==} - posthog-node@5.46.1: - resolution: {integrity: sha512-WjCqExq44pBdyg9MSsH6UAE0tNZ88p4aIuVFicgqhjf2Fbws6IhS4ioYUa4aBrbUPS9EDRXtBTtF5DpP1ml8Pw==} + posthog-node@5.47.3: + resolution: {integrity: sha512-mhKaZOGLgD5aKKTj6xNRE2K9vRJnRIj4FNZeguDNnCR0k8RKJh71KO78+UqVdOONBsMzoqb01AD/B+TtsK7YSw==} engines: {node: ^20.20.0 || >=22.22.0} peerDependencies: rxjs: ^7.0.0 @@ -7793,8 +8279,12 @@ packages: resolution: {integrity: sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==} engines: {node: '>=20'} - preact@10.29.7: - resolution: {integrity: sha512-DCHYrK/B10yUD3ZjLfhZ3WIE/9Vf9VFUODcRE2dRomTYDpJk6z6L9wecSfhfE6M9ZTHUdyQkoC46arIDhEV84Q==} + powershell-utils@0.2.0: + resolution: {integrity: sha512-ZlsFlG7MtSFCoc5xreOvBAozCJ6Pf06opgJjh9ONEv418xpZSAzNjstD36C6+JwOnfSqOW/9uDkqKjezTdxZhw==} + engines: {node: '>=20'} + + preact@10.29.8: + resolution: {integrity: sha512-ej2aVZ+vZ8WO7tvlQWRM9N63A0KzF9q4mWJfDUHgYaIofWY9hu74QdnQrjoPMmZi2/nZ5gN0bJCQF49xQqx09Q==} peerDependencies: preact-render-to-string: '>=5' peerDependenciesMeta: @@ -7811,8 +8301,8 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier@3.8.3: - resolution: {integrity: sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw==} + prettier@3.9.6: + resolution: {integrity: sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g==} engines: {node: '>=14'} hasBin: true @@ -7832,8 +8322,11 @@ packages: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} - property-information@7.1.0: - resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} + prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + + property-information@7.2.0: + resolution: {integrity: sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg==} prosemirror-changeset@2.4.1: resolution: {integrity: sha512-96WBLhOaYhJ+kPhLg3uW359Tz6I/MfcrQfL4EGv4SrcqKEMC1gmoGrXHecPE8eOwTVCJ4IwgfzM8fFad25wNfw==} @@ -7871,13 +8364,17 @@ packages: prosemirror-transform@1.12.0: resolution: {integrity: sha512-GxboyN4AMIsoHNtz5uf2r2Ru551i5hWeCMD6E2Ib4Eogqoub0NflniaBPVQ4MrGE5yZ8JV9tUHg9qcZTTrcN4w==} - prosemirror-view@1.42.1: - resolution: {integrity: sha512-rRqzZnRgkyh69XoOMrfFJHwauHscLBmHbq772kwbic1ymQAM8gXjzEbJse5j1ep2UO2HRIAQL0bY3kZ/RoqjVw==} + prosemirror-view@1.42.2: + resolution: {integrity: sha512-Pdg0l5kXm8aLDquFAnQFTCITg0q44sLqBlHlpsVLD9segdOao8TOfQdAhCrCXyVgPSRr6UDDROOIWA3bIrN9YQ==} proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} + proxy-from-env@2.1.0: + resolution: {integrity: sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==} + engines: {node: '>=10'} + pump@3.0.4: resolution: {integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==} @@ -7931,9 +8428,18 @@ packages: peerDependencies: react: ^19.2.8 + react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + react-is@17.0.2: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + react-reconciler@0.33.0: + resolution: {integrity: sha512-KetWRytFv1epdpJc3J4G75I4WrplZE5jOL7Yq0p34+OVOKF4Se7WrdIdVC45XsSSmUTlht2FM/fM1FZb1mfQeA==} + engines: {node: '>=0.10.0'} + peerDependencies: + react: ^19.2.0 + react-resizable-panels@4.12.2: resolution: {integrity: sha512-NwY5LCo4WrxVvDh0xoMML6EMLPONP/8ckKcIdpnojxexoatZdjLiRqLJQjQK5CPkd4SYiB/2M5BVrjZBQtOO7Q==} peerDependencies: @@ -7956,8 +8462,8 @@ packages: resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==} engines: {node: '>= 20.19.0'} - recast@0.23.12: - resolution: {integrity: sha512-dEWRjcINDu/F4l2dYx57ugBtD7HV9KXESyxhzw/MqWLeglJrsjJKqACPyUPg+6AF8mIgm+Zi0dZ3ACoIg+QtpA==} + recast@0.23.19: + resolution: {integrity: sha512-T98lym7kH+pnZmRaD8yDRdaNqyUbwnbEBx0MuchrzMFOEMray4AO3ZJoTUZ5r78Ao78X/OhzW0DL8GB85w/I2w==} engines: {node: '>= 4'} regex-recursion@6.0.2: @@ -7990,8 +8496,8 @@ packages: rehype-stringify@10.0.1: resolution: {integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==} - remark-cjk-friendly-gfm-strikethrough@2.0.1: - resolution: {integrity: sha512-pWKj25O2eLXIL1aBupayl1fKhco+Brw8qWUWJPVB9EBzbQNd7nGLj0nLmJpggWsGLR5j5y40PIdjxby9IEYTuA==} + remark-cjk-friendly-gfm-strikethrough@2.3.1: + resolution: {integrity: sha512-JE3TGgouk/sy92SemNMEUhO5mNP4on04cmzOV3s3R5Dbk160ewmpM4tgPiinKKvoJ5UW2fTu7FOYsjVbusSA9w==} engines: {node: '>=18'} peerDependencies: '@types/mdast': ^4.0.0 @@ -8000,8 +8506,8 @@ packages: '@types/mdast': optional: true - remark-cjk-friendly@2.0.1: - resolution: {integrity: sha512-6WwkoQyZf/4j5k53zdFYrR8Ca+UVn992jXdLUSBDZR4eBpFhKyVxmA4gUHra/5fesjGIxrDhHesNr/sVoiiysA==} + remark-cjk-friendly@2.3.1: + resolution: {integrity: sha512-f+pKZRxCRwNEGFBKNRAZAqU91GIK1SAo3ZyFHWRUgC9zcxRR0BXKd6YwqgSsxtW0rNpUDtONj7H5nje2WL3fcA==} engines: {node: '>=18'} peerDependencies: '@types/mdast': ^4.0.0 @@ -8054,6 +8560,10 @@ packages: resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + restore-cursor@5.1.0: resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} engines: {node: '>=18'} @@ -8101,12 +8611,23 @@ packages: resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==} engines: {node: '>=18'} + run-async@4.0.6: + resolution: {integrity: sha512-IoDlSLTs3Yq593mb3ZoKWKXMNu3UpObxhgA/Xuid5p4bbfi2jdY1Hj0m1K+0/tEuQTxIGMhQDqGjKb7RuxGpAQ==} + engines: {node: '>=0.12.0'} + + run-jxa@3.0.0: + resolution: {integrity: sha512-4f2CrY7H+sXkKXJn/cE6qRA3z+NMVO7zvlZ/nUV0e62yWftpiLAfw5eV9ZdomzWd2TXWwEIiGjAT57+lWIzzvA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} rw@1.3.3: resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} + rxjs@7.8.2: + resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} + safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} @@ -8128,6 +8649,9 @@ packages: resolution: {integrity: sha512-SMguiTnYrhpLdk3PwfzHeotrcwi8bNV4iemL9tx9poR/yeaMYwB9VzR1w7b57DuWpuqR8n6oZboi0hj3AxZxQg==} hasBin: true + semifies@1.0.0: + resolution: {integrity: sha512-xXR3KGeoxTNWPD4aBvL5NUpMTT7WMANr3EWnaS190QVkY52lqqcVRD7Q05UVbBhiWDGWMlJEUam9m7uFFGVScw==} + semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -8145,14 +8669,24 @@ packages: resolution: {integrity: sha512-YAy8Od6KV+uuwUuU50np8fGB/Aues6Y0nAhA9y/hId74PlKUcme4pXcBD46NWKr1Q4osN/iseZ17YqO1XfmI8g==} engines: {node: '>=20.0.0'} - seroval-plugins@1.5.5: - resolution: {integrity: sha512-+BDhqYM6CEn3x09v44dpa9p6974FuUB2dxk+Ctn04k0cO1Zt6QODTXfmEZK0eBaTe/fJBvP4NMGuNJ+R8T+QMg==} + seroval-plugins@1.5.6: + resolution: {integrity: sha512-HXuLAX2pu/UByPpaeo/TaMfvMIi+1QqIoPJYCcAtU8QkVNwgR6MPlGuCQTErV1JwraaMbYaWVIBX7mppzGLATQ==} + engines: {node: '>=10'} + peerDependencies: + seroval: ^1.0 + + seroval-plugins@1.6.0: + resolution: {integrity: sha512-CbR5DP5DPicpd9RwRUzka7hi4x1577eGFXJVBW409LXqqJNst99JSUTZ8CXcnskQX7laPOWpmzliq0gBZEGlrQ==} engines: {node: '>=10'} peerDependencies: seroval: ^1.0 - seroval@1.5.5: - resolution: {integrity: sha512-bSjOuPcwPKLSJNhr9+bZxA20nQxVle5J5MNsYRVE6cIg7KpRLXGupymePavu0jrxlPiPsr4xGZSB8yUY2sH2sw==} + seroval@1.5.6: + resolution: {integrity: sha512-rVQVWjjSvlINzaQPZH5JFqsqEsIWdTxY3iJZCnTL/5gQbXIRooVZKI60tVCkOVfzcRPejboxO2t0P89dg5mQaA==} + engines: {node: '>=10'} + + seroval@1.6.0: + resolution: {integrity: sha512-TBwwKfscTEgnBEWmYKKeCcmCGmrJi0LV6qNUY//WBA3MDesh/zfn+KOMq/ckpxM4gZ0ouAE706A1eenekM2sug==} engines: {node: '>=10'} serve-static@2.2.1: @@ -8174,8 +8708,8 @@ packages: engines: {node: '>= 0.10'} hasBin: true - shadcn@4.15.0: - resolution: {integrity: sha512-fFTpfOuRwqjpXGp/sKpAxJkjdgv1jf8bDrW1xi0cVn2k7WJ5ijV/gjkAlkAidGDjhEkgcUuxVdm4oRB9r8BivA==} + shadcn@4.16.1: + resolution: {integrity: sha512-XLFzfNNIUPlUlyheFEzj0H4Vnhi9nI0nl3Nfgg8HYXW1FkUVhVT1X+mgmOUW8aWL5SeG0A+yJIV5fm3Hr9MVkQ==} engines: {node: '>=20.18.1'} hasBin: true @@ -8191,12 +8725,12 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shell-quote@1.8.4: - resolution: {integrity: sha512-VsC6n6vz1ihYYyZZwX7YZSF5l5x36ca17OC+a69h94YqB7X6XLwf+5MOgynYir2SLFUbl8gIYvBo8K8RoNQ6bQ==} + shell-quote@1.10.0: + resolution: {integrity: sha512-w1aiOKwKuRgtwAReIIj89puqg+I7GvX4IbLrvmhXbzQsj1+Zwi4VO3+fa6ZF91TWSjIxoEkKnMeHcLEODK5ZXA==} engines: {node: '>= 0.4'} - shiki@4.3.1: - resolution: {integrity: sha512-oR+qDVi2OjX1tmDpyv+3KviX01KzO6Af+0NNnKnsp9491UEGz2YpxTuJboS/6VhYpTdqzmuJBuiTlrAWWJAssw==} + shiki@4.4.1: + resolution: {integrity: sha512-rFP+iYKzjLEIqiMiKANhARqiAbk4deDhWnBtnUO/K0D0dPxMGDH4N0FVfBY/VeI+lPrV4wNGCHQZp7EOr7NNBw==} engines: {node: '>=20'} side-channel-list@1.0.1: @@ -8238,14 +8772,18 @@ packages: sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - smol-toml@1.6.1: - resolution: {integrity: sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==} - engines: {node: '>= 18'} + slice-ansi@8.0.0: + resolution: {integrity: sha512-stxByr12oeeOyY2BlviTNQlYV5xOj47GirPr4yA1hE9JCtxfQN0+tVbkxwCtYDQWhEKWFHsEK48ORg5jrouCAg==} + engines: {node: '>=20'} smol-toml@1.7.0: resolution: {integrity: sha512-aqVvWoyO21L23mb+drl4RmMXbf6N7FdHjAhTRA9ZBL7apWBgfWC16KjrASI+1p9GAroljyMHj6fK67i0UiTNvQ==} engines: {node: '>= 18'} + smol-toml@1.7.1: + resolution: {integrity: sha512-PPlsspAZ4jbMBu5DMFhfUGDQLu/vrL4SyBROVS37x8ynnVmFIs1VPBz1Co8Xks3TvpIaZXmU85y4DrQ+UyVFoQ==} + engines: {node: '>= 18'} + solid-js@1.9.12: resolution: {integrity: sha512-QzKaSJq2/iDrWR1As6MHZQ8fQkdOBf8GReYb7L5iKwMGceg7HxDcaOHk0at66tNgn9U2U7dXo8ZZpLIAmGMzgw==} @@ -8295,6 +8833,10 @@ packages: engines: {node: '>=20.16.0'} hasBin: true + stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} @@ -8302,8 +8844,8 @@ packages: resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} engines: {node: '>= 0.8'} - std-env@4.1.0: - resolution: {integrity: sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==} + std-env@4.2.0: + resolution: {integrity: sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw==} stdin-discarder@0.2.2: resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} @@ -8326,6 +8868,10 @@ packages: resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} engines: {node: '>=18'} + string-width@8.2.2: + resolution: {integrity: sha512-GaPUh5gfdrYzqeVNZvUfT23vYYxXzKYidUcnMtJg/3rxRV63EFZy3k6xfKlmfeJD0176lnUV/Usr3XcwSvFzpg==} + engines: {node: '>=20'} + string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} @@ -8394,6 +8940,10 @@ packages: stylis@4.4.0: resolution: {integrity: sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA==} + subsume@4.0.0: + resolution: {integrity: sha512-BWnYJElmHbYZ/zKevy+TG+SsyoFCmRPDHJbR1MzLxkPOv1Jp/4hGhVUtP98s+wZBsBsHwCXvPTP0x287/WMjGg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + supports-color@10.2.2: resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==} engines: {node: '>=18'} @@ -8402,21 +8952,29 @@ packages: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + svelte@5.56.3: resolution: {integrity: sha512-w7JvrM5IFl5cmfbY0TLik9o7mjRUJmRMhOR51tBPu708Gr/MjbGs7VnJnr/B0CaXeI4vtnOh7RKxDr0cwhMdDA==} engines: {node: '>=18'} - swr@2.4.1: - resolution: {integrity: sha512-2CC6CiKQtEwaEeNiqWTAw9PGykW8SR5zZX8MZk6TeAvEAnVS7Visz8WzphqgtQ8v2xz/4Q5K+j+SeMaKXeeQIA==} + swr@2.4.2: + resolution: {integrity: sha512-ej644Y2bvkIajfR32KGeSSdBXQW+ScjGjkybZgSE7kFpk9eGnV44XY9FJylXi+W75pavSX1PVNB57W5EbhGIYw==} peerDependencies: react: ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - systeminformation@5.31.11: - resolution: {integrity: sha512-I6O7iaUj23AXRgCPDDnvi3xHvdOLp4+1YMbF+X194lJwY1NeWojgHJPhslVKcmTtrLTguRk3QJK+xEdTiI3P0w==} - engines: {node: '>=8.0.0'} + system-architecture@0.1.0: + resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} + engines: {node: '>=18'} + + systeminformation@5.33.1: + resolution: {integrity: sha512-DEN6ICHk3Tk0Uf/hrAHh7xlt7iL5CJFBtPZinA0H62DrGG/KPKqq/Nzj6lCXPS4Ay/sf/14zNnk9LpqKzBIc+w==} + engines: {node: '>=10.0.0'} os: [darwin, linux, win32, freebsd, openbsd, netbsd, sunos, android] hasBin: true @@ -8441,6 +8999,10 @@ packages: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} + terminal-size@4.0.1: + resolution: {integrity: sha512-avMLDQpUI9I5XFrklECw1ZEUPJhqzcwSWsyyI8blhRLT+8N1jLJWLWWYQpB2q2xthq8xDvjZPISVh53T/+CLYQ==} + engines: {node: '>=18'} + throttleit@2.1.0: resolution: {integrity: sha512-nt6AMGKW1p/70DF/hGBdJB57B8Tspmbp5gfJ8ilhLnt7kkr2ye7hzD6NVG8GGErk2HWF34igrL2CXmNIkzKqKw==} engines: {node: '>=18'} @@ -8451,8 +9013,8 @@ packages: tinybench@2.9.0: resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} - tinyexec@1.1.2: - resolution: {integrity: sha512-dAqSqE/RabpBKI8+h26GfLq6Vb3JVXs30XYQjdMjaj/c2tS8IYYMbIzP599KtRj7c57/wYApb3QjgRgXmrCukA==} + tinyexec@1.3.0: + resolution: {integrity: sha512-QKAl9m8gWWGHV8jZcPeym6j+XULi6tOf1mT83WYJ4Lk2ytW/uwAWkrP0uFsdoYMdueVJ0qs26wZ+23xeB4ibNQ==} engines: {node: '>=18'} tinyglobby@0.2.17: @@ -8463,15 +9025,15 @@ packages: resolution: {integrity: sha512-Pugqs6M0m7Lv1I7FtxN4aoyToKg1C4tu+/381vH35y8oENM/Ai7f7C4StcoK4/+BSw9ebcS8jRiVrORFKCALLw==} engines: {node: ^20.0.0 || >=22.0.0} - tinyrainbow@3.1.0: - resolution: {integrity: sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==} + tinyrainbow@3.1.1: + resolution: {integrity: sha512-yau8yJdTt989Mm0Bd/236QnzEiPf2xLLTqUZRUJOo/3CB078LSwzei343DgtJVmfJKJE3TMINY1u42SQsP6mXw==} engines: {node: '>=14.0.0'} - tldts-core@7.4.8: - resolution: {integrity: sha512-c1P7u0EhACHj7lPy4MJm8iTFEU8+nB0LCtddH0fhP7noaVoXAqafMtOOeX+ulpuPBqnrRgRhw494RICT3mbhnw==} + tldts-core@7.4.10: + resolution: {integrity: sha512-KnQjp53ZekKgm/r3l+u8kJGGzYgrWdP8+Mql7a4vijh2WE0IrZWspQj/TpTxDho/YxO+AnOZnIjQcCD+q6iJsw==} - tldts@7.4.8: - resolution: {integrity: sha512-htwgN/8KRB3z3vnC0BOETVh2m499g5GmyTK9Wq5JBLX3FNz6tSBveAd+fQhzy9hkjif8vy2jwDMR1sGhLtZl2A==} + tldts@7.4.10: + resolution: {integrity: sha512-GgouD1B+sWwvkaEq8vXC15DjQitxbvs12oIXELpconwm+Tg3zfcEv4jgzq3vtKverDXsg3VI8aRgNL2Nra0Iog==} hasBin: true to-buffer@1.2.2: @@ -8482,6 +9044,10 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} + to-rotated@1.0.0: + resolution: {integrity: sha512-KsEID8AfgUy+pxVRLsWp0VzCa69wxzUDZnzGbyIST/bcgcrMvTYoFBX/QORH4YApoD89EDuUovx4BTdpOn319Q==} + engines: {node: '>=18'} + toidentifier@1.0.1: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} @@ -8508,8 +9074,8 @@ packages: trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - ts-dedent@2.2.0: - resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} + ts-dedent@2.3.0: + resolution: {integrity: sha512-JfJeIHke7y2egdGGgRAvpCwYFUsHlM2gPcrVOxFkznt/4uzQ7HFmvE63iFHVLBJNDuyDOQgijDK/tXH/f6Msjg==} engines: {node: '>=6.10'} ts-morph@26.0.0: @@ -8522,11 +9088,6 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tsx@4.23.0: - resolution: {integrity: sha512-eUdUIaCr963q2h5u3+QwvYp0+eqPvn+egeqZUm0hwERCqqx1E3kK5ehbGCvqSE5MQAULr67ww0cA3jKc3YkM1w==} - engines: {node: '>=18.0.0'} - hasBin: true - tsx@4.23.1: resolution: {integrity: sha512-GQHnkIfxyx1wYCOS/wonik5MVRZU9hi1TEZmzGZSCJB1y9YgoZ8H6itNE/u4suE+yLmOzuE4E5S4TZ/ZX2wcWQ==} engines: {node: '>=18.0.0'} @@ -8546,9 +9107,17 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - type-fest@5.7.0: - resolution: {integrity: sha512-1URUxUqfHFM1c+zfSPsa3gnkO7Aq21qyH75SIduNYz4SzY964rn1X2vCMQaHSHhktiw+0kPa2iyb6PUpXqB6Vg==} - engines: {node: '>=20'} + type-fest@1.4.0: + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} + + type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} + + type-fest@4.41.0: + resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} + engines: {node: '>=16'} type-fest@5.8.0: resolution: {integrity: sha512-YGYEVz3Fm5iy/AybuA0oyNFq7H4CgQNfRp/qfe8nurE1kuCeNm3/vfm9X4Mtl+qLyaKJUh5xrFZwogr41SMjYA==} @@ -8582,8 +9151,8 @@ packages: resolution: {integrity: sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A==} engines: {node: '>=18'} - unbash@4.0.1: - resolution: {integrity: sha512-1ajSo3813sDoVIHx4inJdUS4l5L2ic5cFiddemPiyjb/PZEoBAhFwHtbaEdRDFxbAKy7FCG7s5ww3/uCFawuIA==} + unbash@4.0.4: + resolution: {integrity: sha512-60m9IVGbavD6jholbxt0jVBXZkEB/HsMZq7Tyaghseve2/Sf0zQRAIfWsD34sde+DKP2tBxJS2wP88ZM0D1FhA==} engines: {node: '>=14'} undici-types@8.3.0: @@ -8593,6 +9162,10 @@ packages: resolution: {integrity: sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==} engines: {node: '>=20.18.1'} + undici@7.29.0: + resolution: {integrity: sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw==} + engines: {node: '>=20.18.1'} + unenv@2.0.0-rc.24: resolution: {integrity: sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==} @@ -8603,6 +9176,10 @@ packages: unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + unique-string@3.0.0: + resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} + engines: {node: '>=12'} + unist-util-find-after@5.0.0: resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} @@ -8632,9 +9209,38 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - unplugin@3.0.0: - resolution: {integrity: sha512-0Mqk3AT2TZCXWKdcoaufeXNukv2mTrEZExeXlHIOZXdqYoHHr4n51pymnwV8x2BOVxwXbK2HLlI7usrqMpycdg==} + unplugin@3.3.0: + resolution: {integrity: sha512-qa66K+crbfyE6JK10GjvbJeRrOsuC/JpbnHctfyp/i4oBTxWOzJfRZyDiOk1PtErMFRu8JhsU/wPvOdBNWe5Rg==} engines: {node: ^20.19.0 || >=22.12.0} + peerDependencies: + '@farmfe/core': '*' + '@rspack/core': '*' + bun-types-no-globals: '*' + esbuild: '*' + rolldown: '*' + rollup: '*' + unloader: '*' + vite: '*' + webpack: '*' + peerDependenciesMeta: + '@farmfe/core': + optional: true + '@rspack/core': + optional: true + bun-types-no-globals: + optional: true + esbuild: + optional: true + rolldown: + optional: true + rollup: + optional: true + unloader: + optional: true + vite: + optional: true + webpack: + optional: true until-async@3.0.2: resolution: {integrity: sha512-IiSk4HlzAMqTUseHHe3VhIGyuFmN90zMTpD3Z3y8jeQbzLIq500MVM7Jq2vUAnTKAFPJrqwkzr6PoTcPhGcOiw==} @@ -8685,8 +9291,8 @@ packages: resolution: {integrity: sha512-hhy975B+ToseJaSJp3mURHriZUrMgaM2qx0BkP62kN6Yp46rw7EE3dl8ExFWYdn00OIwe7GbsA5PknvstNWG4Q==} hasBin: true - vite-plus@0.2.6: - resolution: {integrity: sha512-fFX8GLENhtzvnE4NmTPC8INRxjD2kZKcqUW0p7jOdawmHTNZqM5FiieyWOG6WH1a/axu9FCsbUNb918grfzDTw==} + vite-plus@0.2.7: + resolution: {integrity: sha512-4xFo1nDtH/isWBdJaCgmctMiNohbuxa0uiKA/cbpL8jT18Ax73Lt6rK20/LkqPG5a/HpvPNhDCS1QK58pH4txA==} engines: {node: ^20.19.0 || ^22.18.0 || >=24.11.0} hasBin: true peerDependencies: @@ -8829,6 +9435,15 @@ packages: engines: {node: '>=8'} hasBin: true + widest-line@6.0.0: + resolution: {integrity: sha512-U89AsyEeAsyoF0zVJBkG9zBgekjgjK7yk9sje3F4IQpXBJ10TF6ByLlIfjMhcmHMJgHZI4KHt4rdNfktzxIAMA==} + engines: {node: '>=20'} + + window-size@1.1.1: + resolution: {integrity: sha512-5D/9vujkmVQ7pSmc0SCBmHXbkv6eaHwXEx65MywhmUMsI8sGqJ972APq1lotfcwMKPFLuCFfL8xGHLIp7jaBmA==} + engines: {node: '>= 0.10.0'} + hasBin: true + word-wrap@1.2.5: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} @@ -8838,6 +9453,11 @@ packages: engines: {node: '>=16'} hasBin: true + workerd@1.20260730.1: + resolution: {integrity: sha512-zmfNIjwYSWFY5chGBOjWtH3xAE7p97FTC6vR4Ep98290ho6AeAR/NVcBD274YCLEUYzqm8yxdtZlxMybU8a3jA==} + engines: {node: '>=16'} + hasBin: true + workers-ai-provider@4.0.0: resolution: {integrity: sha512-FkhwMP1EP/MKXR8Jv1o7wLVKfTqu0h/PUaEmhZ7gyDiioib5Wsh3oPAKhG+7+SWfU3roTDHaEWlJpkJjpXu+fQ==} peerDependencies: @@ -8864,6 +9484,20 @@ packages: '@cloudflare/workers-types': optional: true + wrangler@4.118.0: + resolution: {integrity: sha512-9pkBw/b8zWqGx2S+oLhgHMR1M/4VOE8SynUFABnGWiSFGlcOQ4xiI/B71Xf66RYP2xzngU37IQFPtUruij3lYw==} + engines: {node: '>=22.0.0'} + hasBin: true + peerDependencies: + '@cloudflare/workers-types': ^5.20260730.1 + peerDependenciesMeta: + '@cloudflare/workers-types': + optional: true + + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -8887,6 +9521,22 @@ packages: utf-8-validate: optional: true + ws@8.21.1: + resolution: {integrity: sha512-+0NTnW77fFN/DjQi6k/Sq/Yvk4Sgajw7urW8V+asjXnRgDs9gyGkdb7EzgfhA4goXsRIZKE28fzIXBHEzhuiWw==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + wsl-utils@0.1.0: + resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} + engines: {node: '>=18'} + wsl-utils@0.3.1: resolution: {integrity: sha512-g/eziiSUNBSsdDJtCLB8bdYEUMj4jR7AGeUo96p/3dTafgjHhpF4RiCFPiRILwjQoDXx5MqkBr4fwWtR3Ky4Wg==} engines: {node: '>=20'} @@ -8957,10 +9607,18 @@ packages: resolution: {integrity: sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==} engines: {node: ^20.19.0 || ^22.12.0 || >=23} + yargs@18.1.0: + resolution: {integrity: sha512-2rAgRKu54VsHkqI0/tYkmluGXHD4KW7yZoycuqDQ15QOTnc2VVfy0nN/1eMhnQLO00A+dwtK20xuCnc1YGeUyg==} + engines: {node: ^20.19.0 || ^22.12.0 || >=23} + yjs@13.6.31: resolution: {integrity: sha512-Eq+5BRfbeGyqGVrTJL3bEcr8gKkxPuyuoHmAwpk52fDb8kOVMrfVSTRPd6yiGgX5Fskb96qCRjzjbRjrL4YEnw==} engines: {node: '>=16.0.0', npm: '>=8.0.0'} + yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} @@ -8969,14 +9627,21 @@ packages: resolution: {integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==} engines: {node: '>=12.20'} - yocto-spinner@1.2.0: - resolution: {integrity: sha512-Yw0hUB6UA3o4YUgKy3oSe9a4cxoaZ9sBfYDw+JSxo6Id0KoJGoxzPA24qqUXYKBWABs/zDSGTz9kww7t3F0XGw==} + yocto-spinner@1.2.2: + resolution: {integrity: sha512-DODGl1wJjA/s5pnJFKau9lIYHT81lnhob1i3e1TjxZRxEhWRKl74nTbWE6H5KlkViQQTo/Z29YFdxzTZAMY3ng==} engines: {node: '>=18.19'} - yoctocolors@2.1.2: - resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} + yoctocolors-cjs@2.1.3: + resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} + engines: {node: '>=18'} + + yoctocolors@2.2.0: + resolution: {integrity: sha512-xYqdZFUK/VYazNl/oCDYN+3WloWQwMfZxBoiNt6qNyk+xfOdi598muWE42rNZFp1kNOiqW936q5RhUdnpqElSg==} engines: {node: '>=18'} + yoga-layout@3.2.1: + resolution: {integrity: sha512-0LPOt3AxKqMdFBZA3HBAt/t/8vIKq7VaQYbuA8WxCgung+p9TVyKRYdpvCb80HcdTN2NkbIKbhNwKUfm3tQywQ==} + youch-core@0.3.3: resolution: {integrity: sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==} @@ -8997,11 +9662,11 @@ packages: peerDependencies: zod: ^3.25.28 || ^4 - zod-validation-error@3.5.4: - resolution: {integrity: sha512-+hEiRIiPobgyuFlEojnqjJnhFvg4r/i3cqgcm67eehZf/WBaK3g6cD02YU9mtdVxZjv8CzCA9n/Rhrs3yAAvAw==} + zod-validation-error@4.0.2: + resolution: {integrity: sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==} engines: {node: '>=18.0.0'} peerDependencies: - zod: ^3.24.4 + zod: ^3.25.0 || ^4.0.0 zod@3.25.76: resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} @@ -9046,17 +9711,17 @@ snapshots: '@ai-sdk/provider-utils': 5.0.12(zod@4.4.3) zod: 4.4.3 - '@ai-sdk/gateway@4.0.28(zod@4.4.3)': + '@ai-sdk/gateway@4.0.37(zod@4.4.3)': dependencies: - '@ai-sdk/provider': 4.0.3 - '@ai-sdk/provider-utils': 5.0.12(zod@4.4.3) + '@ai-sdk/provider': 4.0.4 + '@ai-sdk/provider-utils': 5.0.18(zod@4.4.3) '@vercel/oidc': 3.2.0 zod: 4.4.3 - '@ai-sdk/mcp@2.0.16(zod@4.4.3)': + '@ai-sdk/mcp@2.0.22(zod@4.4.3)': dependencies: - '@ai-sdk/provider': 4.0.3 - '@ai-sdk/provider-utils': 5.0.12(zod@4.4.3) + '@ai-sdk/provider': 4.0.4 + '@ai-sdk/provider-utils': 5.0.18(zod@4.4.3) pkce-challenge: 5.0.1 zod: 4.4.3 @@ -9074,32 +9739,74 @@ snapshots: eventsource-parser: 3.1.0 zod: 4.4.3 + '@ai-sdk/provider-utils@5.0.18(zod@4.4.3)': + dependencies: + '@ai-sdk/provider': 4.0.4 + '@standard-schema/spec': 1.1.0 + '@workflow/serde': 4.1.0 + eventsource-parser: 3.1.0 + undici: 7.29.0 + zod: 4.4.3 + '@ai-sdk/provider@4.0.3': dependencies: json-schema: 0.4.0 - '@ai-sdk/react@4.0.40(react@19.2.8)(zod@4.4.3)': + '@ai-sdk/provider@4.0.4': dependencies: - '@ai-sdk/mcp': 2.0.16(zod@4.4.3) - '@ai-sdk/provider': 4.0.3 - '@ai-sdk/provider-utils': 5.0.12(zod@4.4.3) - ai: 7.0.37(zod@4.4.3) + json-schema: 0.4.0 + + '@ai-sdk/react@4.0.51(react@19.2.8)(zod@4.4.3)': + dependencies: + '@ai-sdk/mcp': 2.0.22(zod@4.4.3) + '@ai-sdk/provider': 4.0.4 + '@ai-sdk/provider-utils': 5.0.18(zod@4.4.3) + ai: 7.0.48(zod@4.4.3) react: 19.2.8 - swr: 2.4.1(react@19.2.8) + swr: 2.4.2(react@19.2.8) throttleit: 2.1.0 transitivePeerDependencies: - zod + '@alcalzone/ansi-tokenize@0.2.5': + dependencies: + ansi-styles: 6.2.3 + is-fullwidth-code-point: 5.1.0 + '@antfu/install-pkg@1.1.0': dependencies: - package-manager-detector: 1.6.0 - tinyexec: 1.1.2 + package-manager-detector: 1.8.0 + tinyexec: 1.3.0 + + '@apm-js-collab/code-transformer-bundler-plugins@0.7.3': + dependencies: + '@apm-js-collab/code-transformer': 0.18.1 + es-module-lexer: 2.3.1 + magic-string: 0.30.21 + module-details-from-path: 1.0.4 + + '@apm-js-collab/code-transformer@0.18.1': + dependencies: + '@types/estree': 1.0.9 + astring: 1.9.0 + esquery: 1.7.0 + meriyah: 6.1.4 + semifies: 1.0.0 + source-map: 0.6.1 + + '@apm-js-collab/tracing-hooks@0.13.0': + dependencies: + '@apm-js-collab/code-transformer': 0.18.1 + debug: 4.4.3 + module-details-from-path: 1.0.4 + transitivePeerDependencies: + - supports-color '@asamuzakjp/css-color@5.1.11': dependencies: '@asamuzakjp/generational-cache': 1.0.1 - '@csstools/css-calc': 3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) - '@csstools/css-color-parser': 4.1.9(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) + '@csstools/css-calc': 3.3.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) + '@csstools/css-color-parser': 4.1.10(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) '@csstools/css-tokenizer': 4.0.0 optional: true @@ -9133,7 +9840,7 @@ snapshots: '@babel/code-frame@8.0.0': dependencies: - '@babel/helper-validator-identifier': 8.0.2 + '@babel/helper-validator-identifier': 8.0.4 js-tokens: 10.0.0 '@babel/compat-data@7.29.7': {} @@ -9141,14 +9848,14 @@ snapshots: '@babel/core@7.29.7': dependencies: '@babel/code-frame': 7.29.7 - '@babel/generator': 7.29.7 + '@babel/generator': 7.29.8 '@babel/helper-compilation-targets': 7.29.7 '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) '@babel/helpers': 7.29.7 - '@babel/parser': 7.29.7 + '@babel/parser': 7.29.8 '@babel/template': 7.29.7 - '@babel/traverse': 7.29.7 - '@babel/types': 7.29.7 + '@babel/traverse': 7.29.8 + '@babel/types': 7.29.8 '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 debug: 4.4.3 @@ -9158,18 +9865,18 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/generator@7.29.7': + '@babel/generator@7.29.8': dependencies: - '@babel/parser': 7.29.7 - '@babel/types': 7.29.7 + '@babel/parser': 7.29.8 + '@babel/types': 7.29.8 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 '@babel/generator@8.0.0': dependencies: - '@babel/parser': 8.0.0 - '@babel/types': 8.0.0 + '@babel/parser': 8.0.4 + '@babel/types': 8.0.4 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 '@types/jsesc': 2.5.1 @@ -9177,17 +9884,17 @@ snapshots: '@babel/helper-annotate-as-pure@7.29.7': dependencies: - '@babel/types': 7.29.7 + '@babel/types': 7.29.8 '@babel/helper-annotate-as-pure@8.0.0': dependencies: - '@babel/types': 8.0.0 + '@babel/types': 8.0.4 '@babel/helper-compilation-targets@7.29.7': dependencies: '@babel/compat-data': 7.29.7 '@babel/helper-validator-option': 7.29.7 - browserslist: 4.28.4 + browserslist: 4.28.7 lru-cache: 5.1.1 semver: 6.3.1 @@ -9199,7 +9906,7 @@ snapshots: '@babel/helper-optimise-call-expression': 7.29.7 '@babel/helper-replace-supers': 7.29.7(@babel/core@7.29.7) '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 - '@babel/traverse': 7.29.7 + '@babel/traverse': 7.29.8 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -9212,7 +9919,7 @@ snapshots: '@babel/helper-optimise-call-expression': 8.0.0 '@babel/helper-replace-supers': 8.0.1(@babel/core@7.29.7) '@babel/helper-skip-transparent-expression-wrappers': 8.0.0 - '@babel/traverse': 8.0.0 + '@babel/traverse': 8.0.4 semver: 7.8.5 '@babel/helper-globals@7.29.7': {} @@ -9221,20 +9928,20 @@ snapshots: '@babel/helper-member-expression-to-functions@7.29.7': dependencies: - '@babel/traverse': 7.29.7 - '@babel/types': 7.29.7 + '@babel/traverse': 7.29.8 + '@babel/types': 7.29.8 transitivePeerDependencies: - supports-color '@babel/helper-member-expression-to-functions@8.0.0': dependencies: - '@babel/traverse': 8.0.0 - '@babel/types': 8.0.0 + '@babel/traverse': 8.0.4 + '@babel/types': 8.0.4 '@babel/helper-module-imports@7.29.7': dependencies: - '@babel/traverse': 7.29.7 - '@babel/types': 7.29.7 + '@babel/traverse': 7.29.8 + '@babel/types': 7.29.8 transitivePeerDependencies: - supports-color @@ -9243,17 +9950,17 @@ snapshots: '@babel/core': 7.29.7 '@babel/helper-module-imports': 7.29.7 '@babel/helper-validator-identifier': 7.29.7 - '@babel/traverse': 7.29.7 + '@babel/traverse': 7.29.8 transitivePeerDependencies: - supports-color '@babel/helper-optimise-call-expression@7.29.7': dependencies: - '@babel/types': 7.29.7 + '@babel/types': 7.29.8 '@babel/helper-optimise-call-expression@8.0.0': dependencies: - '@babel/types': 8.0.0 + '@babel/types': 8.0.4 '@babel/helper-plugin-utils@7.29.7': {} @@ -9266,7 +9973,7 @@ snapshots: '@babel/core': 7.29.7 '@babel/helper-member-expression-to-functions': 7.29.7 '@babel/helper-optimise-call-expression': 7.29.7 - '@babel/traverse': 7.29.7 + '@babel/traverse': 7.29.8 transitivePeerDependencies: - supports-color @@ -9275,46 +9982,42 @@ snapshots: '@babel/core': 7.29.7 '@babel/helper-member-expression-to-functions': 8.0.0 '@babel/helper-optimise-call-expression': 8.0.0 - '@babel/traverse': 8.0.0 + '@babel/traverse': 8.0.4 '@babel/helper-skip-transparent-expression-wrappers@7.29.7': dependencies: - '@babel/traverse': 7.29.7 - '@babel/types': 7.29.7 + '@babel/traverse': 7.29.8 + '@babel/types': 7.29.8 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@8.0.0': dependencies: - '@babel/traverse': 8.0.0 - '@babel/types': 8.0.0 - - '@babel/helper-string-parser@7.27.1': {} + '@babel/traverse': 8.0.4 + '@babel/types': 8.0.4 '@babel/helper-string-parser@7.29.7': {} '@babel/helper-string-parser@8.0.0': {} - '@babel/helper-validator-identifier@7.28.5': {} - '@babel/helper-validator-identifier@7.29.7': {} - '@babel/helper-validator-identifier@8.0.2': {} + '@babel/helper-validator-identifier@8.0.4': {} '@babel/helper-validator-option@7.29.7': {} '@babel/helpers@7.29.7': dependencies: '@babel/template': 7.29.7 - '@babel/types': 7.29.7 + '@babel/types': 7.29.8 - '@babel/parser@7.29.7': + '@babel/parser@7.29.8': dependencies: - '@babel/types': 7.29.7 + '@babel/types': 7.29.8 - '@babel/parser@8.0.0': + '@babel/parser@8.0.4': dependencies: - '@babel/types': 8.0.0 + '@babel/types': 8.0.4 '@babel/plugin-proposal-decorators@8.0.2(@babel/core@7.29.7)': dependencies: @@ -9372,141 +10075,134 @@ snapshots: dependencies: core-js-pure: 3.49.0 - '@babel/runtime@7.29.2': {} - '@babel/runtime@7.29.7': {} '@babel/template@7.29.7': dependencies: '@babel/code-frame': 7.29.7 - '@babel/parser': 7.29.7 - '@babel/types': 7.29.7 + '@babel/parser': 7.29.8 + '@babel/types': 7.29.8 '@babel/template@8.0.0': dependencies: '@babel/code-frame': 8.0.0 - '@babel/parser': 8.0.0 - '@babel/types': 8.0.0 + '@babel/parser': 8.0.4 + '@babel/types': 8.0.4 - '@babel/traverse@7.29.7': + '@babel/traverse@7.29.8': dependencies: '@babel/code-frame': 7.29.7 - '@babel/generator': 7.29.7 + '@babel/generator': 7.29.8 '@babel/helper-globals': 7.29.7 - '@babel/parser': 7.29.7 + '@babel/parser': 7.29.8 '@babel/template': 7.29.7 - '@babel/types': 7.29.7 + '@babel/types': 7.29.8 debug: 4.4.3 transitivePeerDependencies: - supports-color - '@babel/traverse@8.0.0': + '@babel/traverse@8.0.4': dependencies: '@babel/code-frame': 8.0.0 '@babel/generator': 8.0.0 '@babel/helper-globals': 8.0.0 - '@babel/parser': 8.0.0 + '@babel/parser': 8.0.4 '@babel/template': 8.0.0 - '@babel/types': 8.0.0 - obug: 2.1.3 + '@babel/types': 8.0.4 + obug: 2.1.4 - '@babel/types@7.29.0': - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 - - '@babel/types@7.29.7': + '@babel/types@7.29.8': dependencies: '@babel/helper-string-parser': 7.29.7 '@babel/helper-validator-identifier': 7.29.7 - '@babel/types@8.0.0': + '@babel/types@8.0.4': dependencies: '@babel/helper-string-parser': 8.0.0 - '@babel/helper-validator-identifier': 8.0.2 + '@babel/helper-validator-identifier': 8.0.4 - '@base-ui/react@1.6.0(@date-fns/tz@1.5.0)(@types/react@19.2.17)(date-fns@4.3.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + '@base-ui/react@1.6.0(@date-fns/tz@1.5.0)(@types/react@19.2.18)(date-fns@4.3.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@babel/runtime': 7.29.2 - '@base-ui/utils': 0.3.1(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - '@floating-ui/react-dom': 2.1.8(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - '@floating-ui/utils': 0.2.11 + '@babel/runtime': 7.29.7 + '@base-ui/utils': 0.3.1(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@floating-ui/react-dom': 2.1.9(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@floating-ui/utils': 0.2.12 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) use-sync-external-store: 1.6.0(react@19.2.8) optionalDependencies: '@date-fns/tz': 1.5.0 - '@types/react': 19.2.17 + '@types/react': 19.2.18 date-fns: 4.3.0 - '@base-ui/utils@0.3.1(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + '@base-ui/utils@0.3.1(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@babel/runtime': 7.29.2 - '@floating-ui/utils': 0.2.11 + '@babel/runtime': 7.29.7 + '@floating-ui/utils': 0.2.12 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) reselect: 5.2.0 use-sync-external-store: 1.6.0(react@19.2.8) optionalDependencies: - '@types/react': 19.2.17 + '@types/react': 19.2.18 - '@better-auth/core@1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.3)(kysely@0.28.17)(nanostores@1.3.0)': + '@better-auth/core@1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.7)(kysely@0.29.4)(nanostores@1.4.2)': dependencies: '@better-auth/utils': 0.4.2 '@better-fetch/fetch': 1.3.1 '@opentelemetry/semantic-conventions': 1.43.0 '@standard-schema/spec': 1.1.0 better-call: 1.3.7(zod@4.4.3) - jose: 6.2.3 - kysely: 0.28.17 - nanostores: 1.3.0 + jose: 6.2.7 + kysely: 0.29.4 + nanostores: 1.4.2 zod: 4.4.3 optionalDependencies: - '@cloudflare/workers-types': 5.20260727.1 + '@cloudflare/workers-types': 5.20260801.1 '@opentelemetry/api': 1.9.1 - '@better-auth/drizzle-adapter@1.6.25(@better-auth/core@1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.3)(kysely@0.28.17)(nanostores@1.3.0))(@better-auth/utils@0.4.2)(drizzle-orm@0.45.2(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.28.17)(pg@8.22.0)(sql.js@1.14.1))': + '@better-auth/drizzle-adapter@1.6.25(@better-auth/core@1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.7)(kysely@0.29.4)(nanostores@1.4.2))(@better-auth/utils@0.4.2)(drizzle-orm@0.45.2(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.29.4)(pg@8.22.0)(sql.js@1.14.1))': dependencies: - '@better-auth/core': 1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.3)(kysely@0.28.17)(nanostores@1.3.0) + '@better-auth/core': 1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.7)(kysely@0.29.4)(nanostores@1.4.2) '@better-auth/utils': 0.4.2 optionalDependencies: - drizzle-orm: 0.45.2(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.28.17)(pg@8.22.0)(sql.js@1.14.1) + drizzle-orm: 0.45.2(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.29.4)(pg@8.22.0)(sql.js@1.14.1) - '@better-auth/kysely-adapter@1.6.25(@better-auth/core@1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.3)(kysely@0.28.17)(nanostores@1.3.0))(@better-auth/utils@0.4.2)(kysely@0.28.17)': + '@better-auth/kysely-adapter@1.6.25(@better-auth/core@1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.7)(kysely@0.29.4)(nanostores@1.4.2))(@better-auth/utils@0.4.2)(kysely@0.29.4)': dependencies: - '@better-auth/core': 1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.3)(kysely@0.28.17)(nanostores@1.3.0) + '@better-auth/core': 1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.7)(kysely@0.29.4)(nanostores@1.4.2) '@better-auth/utils': 0.4.2 optionalDependencies: - kysely: 0.28.17 + kysely: 0.29.4 - '@better-auth/memory-adapter@1.6.25(@better-auth/core@1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.3)(kysely@0.28.17)(nanostores@1.3.0))(@better-auth/utils@0.4.2)': + '@better-auth/memory-adapter@1.6.25(@better-auth/core@1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.7)(kysely@0.29.4)(nanostores@1.4.2))(@better-auth/utils@0.4.2)': dependencies: - '@better-auth/core': 1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.3)(kysely@0.28.17)(nanostores@1.3.0) + '@better-auth/core': 1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.7)(kysely@0.29.4)(nanostores@1.4.2) '@better-auth/utils': 0.4.2 - '@better-auth/mongo-adapter@1.6.25(@better-auth/core@1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.3)(kysely@0.28.17)(nanostores@1.3.0))(@better-auth/utils@0.4.2)': + '@better-auth/mongo-adapter@1.6.25(@better-auth/core@1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.7)(kysely@0.29.4)(nanostores@1.4.2))(@better-auth/utils@0.4.2)': dependencies: - '@better-auth/core': 1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.3)(kysely@0.28.17)(nanostores@1.3.0) + '@better-auth/core': 1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.7)(kysely@0.29.4)(nanostores@1.4.2) '@better-auth/utils': 0.4.2 - '@better-auth/oauth-provider@1.6.25(@better-auth/core@1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.3)(kysely@0.28.17)(nanostores@1.3.0))(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-auth@1.6.25(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(@tanstack/react-start@1.168.32(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.28.17)(pg@8.22.0)(sql.js@1.14.1))(pg@8.22.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(solid-js@1.9.12)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vitest@4.1.10)(vue@3.5.38(typescript@6.0.3)))(better-call@1.3.7(zod@4.4.3))': + '@better-auth/oauth-provider@1.6.25(@better-auth/core@1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.7)(kysely@0.29.4)(nanostores@1.4.2))(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(better-auth@1.6.25(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(@tanstack/react-start@1.168.32(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(rolldown@1.1.2)(rollup@4.62.2))(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.29.4)(pg@8.22.0)(sql.js@1.14.1))(pg@8.22.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(solid-js@1.9.12)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vitest@4.1.10)(vue@3.5.38(typescript@6.0.3)))(better-call@1.3.7(zod@4.4.3))': dependencies: - '@better-auth/core': 1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.3)(kysely@0.28.17)(nanostores@1.3.0) + '@better-auth/core': 1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.7)(kysely@0.29.4)(nanostores@1.4.2) '@better-auth/utils': 0.4.2 '@better-fetch/fetch': 1.3.1 - better-auth: 1.6.25(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(@tanstack/react-start@1.168.32(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.28.17)(pg@8.22.0)(sql.js@1.14.1))(pg@8.22.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(solid-js@1.9.12)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vitest@4.1.10)(vue@3.5.38(typescript@6.0.3)) + better-auth: 1.6.25(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(@tanstack/react-start@1.168.32(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(rolldown@1.1.2)(rollup@4.62.2))(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.29.4)(pg@8.22.0)(sql.js@1.14.1))(pg@8.22.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(solid-js@1.9.12)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vitest@4.1.10)(vue@3.5.38(typescript@6.0.3)) better-call: 1.3.7(zod@4.4.3) - jose: 6.2.3 + jose: 6.2.7 zod: 4.4.3 - '@better-auth/prisma-adapter@1.6.25(@better-auth/core@1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.3)(kysely@0.28.17)(nanostores@1.3.0))(@better-auth/utils@0.4.2)': + '@better-auth/prisma-adapter@1.6.25(@better-auth/core@1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.7)(kysely@0.29.4)(nanostores@1.4.2))(@better-auth/utils@0.4.2)': dependencies: - '@better-auth/core': 1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.3)(kysely@0.28.17)(nanostores@1.3.0) + '@better-auth/core': 1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.7)(kysely@0.29.4)(nanostores@1.4.2) '@better-auth/utils': 0.4.2 - '@better-auth/telemetry@1.6.25(@better-auth/core@1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.3)(kysely@0.28.17)(nanostores@1.3.0))(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)': + '@better-auth/telemetry@1.6.25(@better-auth/core@1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.7)(kysely@0.29.4)(nanostores@1.4.2))(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)': dependencies: - '@better-auth/core': 1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.3)(kysely@0.28.17)(nanostores@1.3.0) + '@better-auth/core': 1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.7)(kysely@0.29.4)(nanostores@1.4.2) '@better-auth/utils': 0.4.2 '@better-fetch/fetch': 1.3.1 @@ -9531,14 +10227,14 @@ snapshots: '@chevrotain/types@11.1.2': {} - '@cloudflare/codemode@0.5.0(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@tanstack/ai@0.22.0(@opentelemetry/api@1.9.1))(ai@7.0.37(zod@4.4.3))(zod@4.4.3)': + '@cloudflare/codemode@0.5.1(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@tanstack/ai@0.22.0(@opentelemetry/api@1.9.1))(ai@7.0.48(zod@4.4.3))(zod@4.4.3)': dependencies: '@types/json-schema': 7.0.15 - acorn: 8.17.0 + acorn: 8.18.0 optionalDependencies: '@modelcontextprotocol/sdk': 1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3) '@tanstack/ai': 0.22.0(@opentelemetry/api@1.9.1) - ai: 7.0.37(zod@4.4.3) + ai: 7.0.48(zod@4.4.3) zod: 4.4.3 '@cloudflare/containers@0.3.7': {} @@ -9550,38 +10246,38 @@ snapshots: '@cloudflare/containers': 0.3.7 aws4fetch: 1.0.20 capnweb: 0.8.0 - hono: 4.12.27 + hono: 4.12.33 - '@cloudflare/shell@0.4.3(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@tanstack/ai@0.22.0(@opentelemetry/api@1.9.1))(ai@7.0.37(zod@4.4.3))(zod@4.4.3)': + '@cloudflare/shell@0.4.3(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@tanstack/ai@0.22.0(@opentelemetry/api@1.9.1))(ai@7.0.48(zod@4.4.3))(zod@4.4.3)': dependencies: - '@cloudflare/codemode': 0.5.0(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@tanstack/ai@0.22.0(@opentelemetry/api@1.9.1))(ai@7.0.37(zod@4.4.3))(zod@4.4.3) - isomorphic-git: 1.38.5 + '@cloudflare/codemode': 0.5.1(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@tanstack/ai@0.22.0(@opentelemetry/api@1.9.1))(ai@7.0.48(zod@4.4.3))(zod@4.4.3) + isomorphic-git: 1.40.0 transitivePeerDependencies: - '@modelcontextprotocol/sdk' - '@tanstack/ai' - ai - zod - '@cloudflare/think@0.15.0(patch_hash=1325490ec006d39225ccf20fdf92d9c0a193a58c0427100f2b4b3c1b95a82576)(@ai-sdk/react@4.0.40(react@19.2.8)(zod@4.4.3))(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@tanstack/ai@0.22.0(@opentelemetry/api@1.9.1))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(agents@0.19.0(patch_hash=b4925f176922f992a0781ffa357da123a7e05876e924b4ff009585baa101bf4d)(@ai-sdk/react@4.0.40(react@19.2.8)(zod@4.4.3))(@babel/core@7.29.7)(@babel/runtime@7.29.7)(@cloudflare/workers-types@5.20260727.1)(@tanstack/ai@0.22.0(@opentelemetry/api@1.9.1))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(ai@7.0.37(zod@4.4.3))(chat@4.31.0(ai@7.0.37(zod@4.4.3))(zod@4.4.3))(just-bash@3.0.2)(react@19.2.8)(rolldown@1.1.2)(zod@4.4.3))(ai@7.0.37(zod@4.4.3))(react@19.2.8)(zod@4.4.3)': + '@cloudflare/think@0.15.0(patch_hash=1325490ec006d39225ccf20fdf92d9c0a193a58c0427100f2b4b3c1b95a82576)(@ai-sdk/react@4.0.51(react@19.2.8)(zod@4.4.3))(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@tanstack/ai@0.22.0(@opentelemetry/api@1.9.1))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(agents@0.19.0(patch_hash=b4925f176922f992a0781ffa357da123a7e05876e924b4ff009585baa101bf4d)(@ai-sdk/react@4.0.51(react@19.2.8)(zod@4.4.3))(@babel/core@7.29.7)(@babel/runtime@7.29.7)(@cloudflare/workers-types@5.20260801.1)(@tanstack/ai@0.22.0(@opentelemetry/api@1.9.1))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(ai@7.0.48(zod@4.4.3))(chat@4.31.0(ai@7.0.48(zod@4.4.3))(zod@4.4.3))(just-bash@3.0.2)(react@19.2.8)(rolldown@1.1.2)(zod@4.4.3))(ai@7.0.48(zod@4.4.3))(react@19.2.8)(zod@4.4.3)': dependencies: '@ai-sdk/anthropic': 4.0.21(zod@4.4.3) '@ai-sdk/openai': 4.0.20(zod@4.4.3) - '@cloudflare/codemode': 0.5.0(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@tanstack/ai@0.22.0(@opentelemetry/api@1.9.1))(ai@7.0.37(zod@4.4.3))(zod@4.4.3) - '@cloudflare/shell': 0.4.3(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@tanstack/ai@0.22.0(@opentelemetry/api@1.9.1))(ai@7.0.37(zod@4.4.3))(zod@4.4.3) - agents: 0.19.0(patch_hash=b4925f176922f992a0781ffa357da123a7e05876e924b4ff009585baa101bf4d)(@ai-sdk/react@4.0.40(react@19.2.8)(zod@4.4.3))(@babel/core@7.29.7)(@babel/runtime@7.29.7)(@cloudflare/workers-types@5.20260727.1)(@tanstack/ai@0.22.0(@opentelemetry/api@1.9.1))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(ai@7.0.37(zod@4.4.3))(chat@4.31.0(ai@7.0.37(zod@4.4.3))(zod@4.4.3))(just-bash@3.0.2)(react@19.2.8)(rolldown@1.1.2)(zod@4.4.3) - ai: 7.0.37(zod@4.4.3) + '@cloudflare/codemode': 0.5.1(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@tanstack/ai@0.22.0(@opentelemetry/api@1.9.1))(ai@7.0.48(zod@4.4.3))(zod@4.4.3) + '@cloudflare/shell': 0.4.3(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@tanstack/ai@0.22.0(@opentelemetry/api@1.9.1))(ai@7.0.48(zod@4.4.3))(zod@4.4.3) + agents: 0.19.0(patch_hash=b4925f176922f992a0781ffa357da123a7e05876e924b4ff009585baa101bf4d)(@ai-sdk/react@4.0.51(react@19.2.8)(zod@4.4.3))(@babel/core@7.29.7)(@babel/runtime@7.29.7)(@cloudflare/workers-types@5.20260801.1)(@tanstack/ai@0.22.0(@opentelemetry/api@1.9.1))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(ai@7.0.48(zod@4.4.3))(chat@4.31.0(ai@7.0.48(zod@4.4.3))(zod@4.4.3))(just-bash@3.0.2)(react@19.2.8)(rolldown@1.1.2)(zod@4.4.3) + ai: 7.0.48(zod@4.4.3) aywson: 0.0.16 - chat: 4.31.0(ai@7.0.37(zod@4.4.3))(zod@4.4.3) + chat: 4.31.0(ai@7.0.48(zod@4.4.3))(zod@4.4.3) create-think: 0.1.1 just-bash: 3.0.2 smol-toml: 1.7.0 - workers-ai-provider: 4.0.0(@ai-sdk/anthropic@4.0.21(zod@4.4.3))(@ai-sdk/openai@4.0.20(zod@4.4.3))(ai@7.0.37(zod@4.4.3)) + workers-ai-provider: 4.0.0(@ai-sdk/anthropic@4.0.21(zod@4.4.3))(@ai-sdk/openai@4.0.20(zod@4.4.3))(ai@7.0.48(zod@4.4.3)) yargs: 18.0.0 zod: 4.4.3 optionalDependencies: - '@ai-sdk/react': 4.0.40(react@19.2.8)(zod@4.4.3) + '@ai-sdk/react': 4.0.51(react@19.2.8)(zod@4.4.3) react: 19.2.8 - vite: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)' + vite: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)' transitivePeerDependencies: - '@ai-sdk/google' - '@ai-sdk/provider' @@ -9595,28 +10291,34 @@ snapshots: optionalDependencies: workerd: 1.20260722.1 - '@cloudflare/vite-plugin@1.47.0(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(wrangler@4.114.0(@cloudflare/workers-types@5.20260727.1))': + '@cloudflare/unenv-preset@2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260730.1)': dependencies: - '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260722.1) - miniflare: 4.20260722.0 unenv: 2.0.0-rc.24 - vite: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)' - workerd: 1.20260722.1 - wrangler: 4.114.0(@cloudflare/workers-types@5.20260727.1) + optionalDependencies: + workerd: 1.20260730.1 + + '@cloudflare/vite-plugin@1.50.0(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(wrangler@4.118.0(@cloudflare/workers-types@5.20260801.1))': + dependencies: + '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260730.1) + miniflare: 5.20260730.0-alpha + unenv: 2.0.0-rc.24 + vite: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)' + workerd: 1.20260730.1 + wrangler: 4.118.0(@cloudflare/workers-types@5.20260801.1) ws: 8.21.0 transitivePeerDependencies: - bufferutil - utf-8-validate - '@cloudflare/vitest-pool-workers@0.18.8(@cloudflare/workers-types@5.20260727.1)(@vitest/runner@4.1.10)(@vitest/snapshot@4.1.10)(vitest@4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.1)(@vitest/browser-preview@4.1.10)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(jsdom@28.1.0(@noble/hashes@2.2.0))(msw@2.14.6(@types/node@26.1.1)(typescript@6.0.3)))': + '@cloudflare/vitest-pool-workers@0.18.8(@cloudflare/workers-types@5.20260801.1)(@vitest/runner@4.1.10)(@vitest/snapshot@4.1.10)(vitest@4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.2)(@vitest/browser-preview@4.1.10)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(jsdom@28.1.0(@noble/hashes@2.2.0))(msw@2.14.6(@types/node@26.1.2)(typescript@6.0.3)))': dependencies: '@vitest/runner': 4.1.10 '@vitest/snapshot': 4.1.10 cjs-module-lexer: 1.2.3 esbuild: 0.28.1 miniflare: 4.20260722.0 - vitest: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.1)(@vitest/browser-preview@4.1.10)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(jsdom@28.1.0(@noble/hashes@2.2.0))(msw@2.14.6(@types/node@26.1.1)(typescript@6.0.3)) - wrangler: 4.114.0(@cloudflare/workers-types@5.20260727.1) + vitest: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.2)(@vitest/browser-preview@4.1.10)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(jsdom@28.1.0(@noble/hashes@2.2.0))(msw@2.14.6(@types/node@26.1.2)(typescript@6.0.3)) + wrangler: 4.114.0(@cloudflare/workers-types@5.20260801.1) zod: 3.25.76 transitivePeerDependencies: - '@cloudflare/workers-types' @@ -9626,30 +10328,45 @@ snapshots: '@cloudflare/workerd-darwin-64@1.20260722.1': optional: true + '@cloudflare/workerd-darwin-64@1.20260730.1': + optional: true + '@cloudflare/workerd-darwin-arm64@1.20260722.1': optional: true + '@cloudflare/workerd-darwin-arm64@1.20260730.1': + optional: true + '@cloudflare/workerd-linux-64@1.20260722.1': optional: true + '@cloudflare/workerd-linux-64@1.20260730.1': + optional: true + '@cloudflare/workerd-linux-arm64@1.20260722.1': optional: true + '@cloudflare/workerd-linux-arm64@1.20260730.1': + optional: true + '@cloudflare/workerd-windows-64@1.20260722.1': optional: true - '@cloudflare/workers-types@5.20260727.1': {} + '@cloudflare/workerd-windows-64@1.20260730.1': + optional: true + + '@cloudflare/workers-types@5.20260801.1': {} - '@commitlint/cli@21.2.1(@types/node@26.1.1)(conventional-commits-parser@7.0.1)(typescript@6.0.3)': + '@commitlint/cli@21.2.1(@types/node@26.1.2)(conventional-commits-parser@7.1.2)(typescript@6.0.3)': dependencies: '@commitlint/config-conventional': 21.2.0 '@commitlint/format': 21.2.0 '@commitlint/lint': 21.2.0 - '@commitlint/load': 21.2.0(@types/node@26.1.1)(typescript@6.0.3) - '@commitlint/read': 21.2.1(conventional-commits-parser@7.0.1) + '@commitlint/load': 21.2.0(@types/node@26.1.2)(typescript@6.0.3) + '@commitlint/read': 21.2.1(conventional-commits-parser@7.1.2) '@commitlint/types': 21.2.0 - tinyexec: 1.1.2 - yargs: 18.0.0 + tinyexec: 1.3.0 + yargs: 18.1.0 transitivePeerDependencies: - '@types/node' - conventional-commits-filter @@ -9669,7 +10386,7 @@ snapshots: '@commitlint/ensure@21.2.0': dependencies: '@commitlint/types': 21.2.0 - es-toolkit: 1.46.1 + es-toolkit: 1.50.0 '@commitlint/execute-rule@21.0.1': {} @@ -9690,15 +10407,15 @@ snapshots: '@commitlint/rules': 21.2.0 '@commitlint/types': 21.2.0 - '@commitlint/load@21.2.0(@types/node@26.1.1)(typescript@6.0.3)': + '@commitlint/load@21.2.0(@types/node@26.1.2)(typescript@6.0.3)': dependencies: '@commitlint/config-validator': 21.2.0 '@commitlint/execute-rule': 21.0.1 '@commitlint/resolve-extends': 21.2.0 '@commitlint/types': 21.2.0 cosmiconfig: 9.0.2(typescript@6.0.3) - cosmiconfig-typescript-loader: 6.3.0(@types/node@26.1.1)(cosmiconfig@9.0.2(typescript@6.0.3))(typescript@6.0.3) - es-toolkit: 1.46.1 + cosmiconfig-typescript-loader: 6.3.0(@types/node@26.1.2)(cosmiconfig@9.0.2(typescript@6.0.3))(typescript@6.0.3) + es-toolkit: 1.50.0 is-plain-obj: 4.1.0 picocolors: 1.1.1 transitivePeerDependencies: @@ -9711,14 +10428,14 @@ snapshots: dependencies: '@commitlint/types': 21.2.0 conventional-changelog-angular: 9.2.1 - conventional-commits-parser: 7.0.1 + conventional-commits-parser: 7.1.2 - '@commitlint/read@21.2.1(conventional-commits-parser@7.0.1)': + '@commitlint/read@21.2.1(conventional-commits-parser@7.1.2)': dependencies: '@commitlint/top-level': 21.2.0 '@commitlint/types': 21.2.0 - '@conventional-changelog/git-client': 3.1.0(conventional-commits-parser@7.0.1) - tinyexec: 1.1.2 + '@conventional-changelog/git-client': 3.1.0(conventional-commits-parser@7.1.2) + tinyexec: 1.3.0 transitivePeerDependencies: - conventional-commits-filter - conventional-commits-parser @@ -9727,7 +10444,7 @@ snapshots: dependencies: '@commitlint/config-validator': 21.2.0 '@commitlint/types': 21.2.0 - es-toolkit: 1.46.1 + es-toolkit: 1.50.0 global-directory: 5.0.0 resolve-from: 5.0.0 @@ -9746,7 +10463,7 @@ snapshots: '@commitlint/types@21.2.0': dependencies: - conventional-commits-parser: 7.0.1 + conventional-commits-parser: 7.1.2 picocolors: 1.1.1 '@content-collections/core@0.15.2(typescript@6.0.3)': @@ -9757,7 +10474,7 @@ snapshots: esbuild: 0.25.12 gray-matter: 4.0.3 p-limit: 6.2.0 - picomatch: 4.0.4 + picomatch: 4.0.5 pluralize: 8.0.0 serialize-javascript: 7.0.7 tinyglobby: 0.2.17 @@ -9768,21 +10485,21 @@ snapshots: dependencies: '@content-collections/core': 0.15.2(typescript@6.0.3) - '@content-collections/vite@0.3.0(@content-collections/core@0.15.2(typescript@6.0.3))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))': + '@content-collections/vite@0.3.0(@content-collections/core@0.15.2(typescript@6.0.3))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))': dependencies: '@content-collections/core': 0.15.2(typescript@6.0.3) '@content-collections/integrations': 0.5.0(@content-collections/core@0.15.2(typescript@6.0.3)) - vite: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)' + vite: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)' '@contextcompany/custom@1.2.2': {} - '@conventional-changelog/git-client@3.1.0(conventional-commits-parser@7.0.1)': + '@conventional-changelog/git-client@3.1.0(conventional-commits-parser@7.1.2)': dependencies: '@simple-libs/child-process-utils': 2.0.0 '@simple-libs/stream-utils': 2.0.0 semver: 7.8.5 optionalDependencies: - conventional-commits-parser: 7.0.1 + conventional-commits-parser: 7.1.2 '@conventional-changelog/template@1.2.1': {} @@ -9793,16 +10510,16 @@ snapshots: '@csstools/color-helpers@6.1.0': optional: true - '@csstools/css-calc@3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': + '@csstools/css-calc@3.3.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': dependencies: '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) '@csstools/css-tokenizer': 4.0.0 optional: true - '@csstools/css-color-parser@4.1.9(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': + '@csstools/css-color-parser@4.1.10(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': dependencies: '@csstools/color-helpers': 6.1.0 - '@csstools/css-calc': 3.2.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) + '@csstools/css-calc': 3.3.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) '@csstools/css-tokenizer': 4.0.0 optional: true @@ -9812,7 +10529,7 @@ snapshots: '@csstools/css-tokenizer': 4.0.0 optional: true - '@csstools/css-syntax-patches-for-csstree@1.1.6(css-tree@3.2.1)': + '@csstools/css-syntax-patches-for-csstree@1.1.7(css-tree@3.2.1)': optionalDependencies: css-tree: 3.2.1 optional: true @@ -9864,7 +10581,7 @@ snapshots: '@dnd-kit/state@0.5.0': dependencies: - '@preact/signals-core': 1.14.2 + '@preact/signals-core': 1.14.4 tslib: 2.8.1 '@dotenvx/dotenvx@1.75.1': @@ -9876,31 +10593,31 @@ snapshots: enquirer: 2.4.1 env-paths: 2.2.1 execa: 5.1.1 - fdir: 6.5.0(picomatch@4.0.4) + fdir: 6.5.0(picomatch@4.0.5) ignore: 5.3.2 object-treeify: 1.1.33 open: 8.4.2 - picomatch: 4.0.4 - systeminformation: 5.31.11 - undici: 7.28.0 + picomatch: 4.0.5 + systeminformation: 5.33.1 + undici: 7.29.0 which: 4.0.0 - yocto-spinner: 1.2.0 + yocto-spinner: 1.2.2 '@dotenvx/primitives@0.8.0': {} '@drizzle-team/brocli@0.10.2': {} - '@embedpdf/core@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3))': + '@embedpdf/core@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3))': dependencies: - '@embedpdf/engines': 2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)) + '@embedpdf/engines': 2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)) '@embedpdf/models': 2.14.4 - preact: 10.29.7 + preact: 10.29.8 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) - svelte: 5.56.3(@typescript-eslint/types@8.61.1) + svelte: 5.56.3(@typescript-eslint/types@8.65.0) vue: 3.5.38(typescript@6.0.3) - '@embedpdf/engines@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3))': + '@embedpdf/engines@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3))': dependencies: '@embedpdf/fonts-arabic': 1.0.0 '@embedpdf/fonts-hebrew': 1.0.0 @@ -9911,10 +10628,10 @@ snapshots: '@embedpdf/fonts-tc': 1.0.0 '@embedpdf/models': 2.14.4 '@embedpdf/pdfium': 2.14.4 - preact: 10.29.7 + preact: 10.29.8 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) - svelte: 5.56.3(@typescript-eslint/types@8.61.1) + svelte: 5.56.3(@typescript-eslint/types@8.65.0) vue: 3.5.38(typescript@6.0.3) '@embedpdf/fonts-arabic@1.0.0': {} @@ -9935,135 +10652,135 @@ snapshots: '@embedpdf/pdfium@2.14.4': {} - '@embedpdf/plugin-annotation@2.14.4(7d4cbc3ae911c506a74f2f3d0537b711)': + '@embedpdf/plugin-annotation@2.14.4(5d91c6be4cadfe702f7d628f7fe6772c)': dependencies: - '@embedpdf/core': 2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)) + '@embedpdf/core': 2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)) '@embedpdf/models': 2.14.4 - '@embedpdf/plugin-history': 2.14.4(@embedpdf/core@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)) - '@embedpdf/plugin-interaction-manager': 2.14.4(@embedpdf/core@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)) - '@embedpdf/plugin-scroll': 2.14.4(@embedpdf/core@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(@embedpdf/plugin-viewport@2.14.4(@embedpdf/core@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)) - '@embedpdf/plugin-selection': 2.14.4(@embedpdf/core@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(@embedpdf/plugin-interaction-manager@2.14.4(@embedpdf/core@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)) - '@embedpdf/utils': 2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)) - preact: 10.29.7 + '@embedpdf/plugin-history': 2.14.4(@embedpdf/core@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)) + '@embedpdf/plugin-interaction-manager': 2.14.4(@embedpdf/core@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)) + '@embedpdf/plugin-scroll': 2.14.4(@embedpdf/core@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(@embedpdf/plugin-viewport@2.14.4(@embedpdf/core@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)) + '@embedpdf/plugin-selection': 2.14.4(@embedpdf/core@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(@embedpdf/plugin-interaction-manager@2.14.4(@embedpdf/core@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)) + '@embedpdf/utils': 2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)) + preact: 10.29.8 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) - svelte: 5.56.3(@typescript-eslint/types@8.61.1) + svelte: 5.56.3(@typescript-eslint/types@8.65.0) vue: 3.5.38(typescript@6.0.3) - '@embedpdf/plugin-document-manager@2.14.4(@embedpdf/core@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3))': + '@embedpdf/plugin-document-manager@2.14.4(@embedpdf/core@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3))': dependencies: - '@embedpdf/core': 2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)) + '@embedpdf/core': 2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)) '@embedpdf/models': 2.14.4 - preact: 10.29.7 + preact: 10.29.8 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) - svelte: 5.56.3(@typescript-eslint/types@8.61.1) + svelte: 5.56.3(@typescript-eslint/types@8.65.0) vue: 3.5.38(typescript@6.0.3) - '@embedpdf/plugin-history@2.14.4(@embedpdf/core@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3))': + '@embedpdf/plugin-history@2.14.4(@embedpdf/core@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3))': dependencies: - '@embedpdf/core': 2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)) + '@embedpdf/core': 2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)) '@embedpdf/models': 2.14.4 - preact: 10.29.7 + preact: 10.29.8 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) - svelte: 5.56.3(@typescript-eslint/types@8.61.1) + svelte: 5.56.3(@typescript-eslint/types@8.65.0) vue: 3.5.38(typescript@6.0.3) - '@embedpdf/plugin-interaction-manager@2.14.4(@embedpdf/core@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3))': + '@embedpdf/plugin-interaction-manager@2.14.4(@embedpdf/core@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3))': dependencies: - '@embedpdf/core': 2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)) + '@embedpdf/core': 2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)) '@embedpdf/models': 2.14.4 - preact: 10.29.7 + preact: 10.29.8 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) - svelte: 5.56.3(@typescript-eslint/types@8.61.1) + svelte: 5.56.3(@typescript-eslint/types@8.65.0) vue: 3.5.38(typescript@6.0.3) - '@embedpdf/plugin-render@2.14.4(@embedpdf/core@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3))': + '@embedpdf/plugin-render@2.14.4(@embedpdf/core@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3))': dependencies: - '@embedpdf/core': 2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)) + '@embedpdf/core': 2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)) '@embedpdf/models': 2.14.4 - preact: 10.29.7 + preact: 10.29.8 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) - svelte: 5.56.3(@typescript-eslint/types@8.61.1) + svelte: 5.56.3(@typescript-eslint/types@8.65.0) vue: 3.5.38(typescript@6.0.3) - '@embedpdf/plugin-rotate@2.14.4(@embedpdf/core@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3))': + '@embedpdf/plugin-rotate@2.14.4(@embedpdf/core@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3))': dependencies: - '@embedpdf/core': 2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)) + '@embedpdf/core': 2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)) '@embedpdf/models': 2.14.4 - preact: 10.29.7 + preact: 10.29.8 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) - svelte: 5.56.3(@typescript-eslint/types@8.61.1) + svelte: 5.56.3(@typescript-eslint/types@8.65.0) vue: 3.5.38(typescript@6.0.3) - '@embedpdf/plugin-scroll@2.14.4(@embedpdf/core@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(@embedpdf/plugin-viewport@2.14.4(@embedpdf/core@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3))': + '@embedpdf/plugin-scroll@2.14.4(@embedpdf/core@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(@embedpdf/plugin-viewport@2.14.4(@embedpdf/core@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3))': dependencies: - '@embedpdf/core': 2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)) + '@embedpdf/core': 2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)) '@embedpdf/models': 2.14.4 - '@embedpdf/plugin-viewport': 2.14.4(@embedpdf/core@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)) - preact: 10.29.7 + '@embedpdf/plugin-viewport': 2.14.4(@embedpdf/core@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)) + preact: 10.29.8 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) - svelte: 5.56.3(@typescript-eslint/types@8.61.1) + svelte: 5.56.3(@typescript-eslint/types@8.65.0) vue: 3.5.38(typescript@6.0.3) - '@embedpdf/plugin-selection@2.14.4(@embedpdf/core@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(@embedpdf/plugin-interaction-manager@2.14.4(@embedpdf/core@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3))': + '@embedpdf/plugin-selection@2.14.4(@embedpdf/core@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(@embedpdf/plugin-interaction-manager@2.14.4(@embedpdf/core@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3))': dependencies: - '@embedpdf/core': 2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)) + '@embedpdf/core': 2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)) '@embedpdf/models': 2.14.4 - '@embedpdf/plugin-interaction-manager': 2.14.4(@embedpdf/core@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)) - '@embedpdf/utils': 2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)) - preact: 10.29.7 + '@embedpdf/plugin-interaction-manager': 2.14.4(@embedpdf/core@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)) + '@embedpdf/utils': 2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)) + preact: 10.29.8 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) - svelte: 5.56.3(@typescript-eslint/types@8.61.1) + svelte: 5.56.3(@typescript-eslint/types@8.65.0) vue: 3.5.38(typescript@6.0.3) - '@embedpdf/plugin-tiling@2.14.4(67f7ecf86b9059fdacb4a28439ad5ba9)': + '@embedpdf/plugin-tiling@2.14.4(ac4721d7bd1726c55a381cb6f8777b72)': dependencies: - '@embedpdf/core': 2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)) + '@embedpdf/core': 2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)) '@embedpdf/models': 2.14.4 - '@embedpdf/plugin-render': 2.14.4(@embedpdf/core@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)) - '@embedpdf/plugin-scroll': 2.14.4(@embedpdf/core@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(@embedpdf/plugin-viewport@2.14.4(@embedpdf/core@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)) - '@embedpdf/plugin-viewport': 2.14.4(@embedpdf/core@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)) - preact: 10.29.7 + '@embedpdf/plugin-render': 2.14.4(@embedpdf/core@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)) + '@embedpdf/plugin-scroll': 2.14.4(@embedpdf/core@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(@embedpdf/plugin-viewport@2.14.4(@embedpdf/core@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)) + '@embedpdf/plugin-viewport': 2.14.4(@embedpdf/core@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)) + preact: 10.29.8 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) - svelte: 5.56.3(@typescript-eslint/types@8.61.1) + svelte: 5.56.3(@typescript-eslint/types@8.65.0) vue: 3.5.38(typescript@6.0.3) - '@embedpdf/plugin-viewport@2.14.4(@embedpdf/core@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3))': + '@embedpdf/plugin-viewport@2.14.4(@embedpdf/core@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3))': dependencies: - '@embedpdf/core': 2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)) + '@embedpdf/core': 2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)) '@embedpdf/models': 2.14.4 - preact: 10.29.7 + preact: 10.29.8 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) - svelte: 5.56.3(@typescript-eslint/types@8.61.1) + svelte: 5.56.3(@typescript-eslint/types@8.65.0) vue: 3.5.38(typescript@6.0.3) - '@embedpdf/plugin-zoom@2.14.4(patch_hash=0510267c484dfeaac9d1f5321c6991b3d8103d39e26182e94e2838e2e9867a39)(73bed704a65db3f4645324cb8ef357b2)': + '@embedpdf/plugin-zoom@2.14.4(patch_hash=0510267c484dfeaac9d1f5321c6991b3d8103d39e26182e94e2838e2e9867a39)(ac836f97ee711155fa372ab9d8b5a4b7)': dependencies: - '@embedpdf/core': 2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)) + '@embedpdf/core': 2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)) '@embedpdf/models': 2.14.4 - '@embedpdf/plugin-scroll': 2.14.4(@embedpdf/core@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(@embedpdf/plugin-viewport@2.14.4(@embedpdf/core@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)) - '@embedpdf/plugin-viewport': 2.14.4(@embedpdf/core@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3)) - preact: 10.29.7 + '@embedpdf/plugin-scroll': 2.14.4(@embedpdf/core@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(@embedpdf/plugin-viewport@2.14.4(@embedpdf/core@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)) + '@embedpdf/plugin-viewport': 2.14.4(@embedpdf/core@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)))(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3)) + preact: 10.29.8 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) - svelte: 5.56.3(@typescript-eslint/types@8.61.1) + svelte: 5.56.3(@typescript-eslint/types@8.65.0) vue: 3.5.38(typescript@6.0.3) - '@embedpdf/utils@2.14.4(preact@10.29.7)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vue@3.5.38(typescript@6.0.3))': + '@embedpdf/utils@2.14.4(preact@10.29.8)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vue@3.5.38(typescript@6.0.3))': dependencies: - preact: 10.29.7 + preact: 10.29.8 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) - svelte: 5.56.3(@typescript-eslint/types@8.61.1) + svelte: 5.56.3(@typescript-eslint/types@8.65.0) vue: 3.5.38(typescript@6.0.3) '@emnapi/core@1.10.0': @@ -10072,13 +10789,13 @@ snapshots: tslib: 2.8.1 optional: true - '@emnapi/core@1.11.0': + '@emnapi/core@1.11.1': dependencies: '@emnapi/wasi-threads': 1.2.2 tslib: 2.8.1 optional: true - '@emnapi/core@1.11.1': + '@emnapi/core@1.11.2': dependencies: '@emnapi/wasi-threads': 1.2.2 tslib: 2.8.1 @@ -10089,12 +10806,17 @@ snapshots: tslib: 2.8.1 optional: true - '@emnapi/runtime@1.11.0': + '@emnapi/runtime@1.11.1': dependencies: tslib: 2.8.1 optional: true - '@emnapi/runtime@1.11.1': + '@emnapi/runtime@1.11.2': + dependencies: + tslib: 2.8.1 + optional: true + + '@emnapi/runtime@1.11.3': dependencies: tslib: 2.8.1 optional: true @@ -10111,7 +10833,7 @@ snapshots: '@esbuild-kit/core-utils@3.3.2': dependencies: - esbuild: 0.18.20 + esbuild: 0.25.12 source-map-support: 0.5.21 '@esbuild-kit/esm-loader@2.6.5': @@ -10125,144 +10847,96 @@ snapshots: '@esbuild/aix-ppc64@0.28.1': optional: true - '@esbuild/android-arm64@0.18.20': - optional: true - '@esbuild/android-arm64@0.25.12': optional: true '@esbuild/android-arm64@0.28.1': optional: true - '@esbuild/android-arm@0.18.20': - optional: true - '@esbuild/android-arm@0.25.12': optional: true '@esbuild/android-arm@0.28.1': optional: true - '@esbuild/android-x64@0.18.20': - optional: true - '@esbuild/android-x64@0.25.12': optional: true '@esbuild/android-x64@0.28.1': optional: true - '@esbuild/darwin-arm64@0.18.20': - optional: true - '@esbuild/darwin-arm64@0.25.12': optional: true '@esbuild/darwin-arm64@0.28.1': optional: true - '@esbuild/darwin-x64@0.18.20': - optional: true - '@esbuild/darwin-x64@0.25.12': optional: true '@esbuild/darwin-x64@0.28.1': optional: true - '@esbuild/freebsd-arm64@0.18.20': - optional: true - '@esbuild/freebsd-arm64@0.25.12': optional: true '@esbuild/freebsd-arm64@0.28.1': optional: true - '@esbuild/freebsd-x64@0.18.20': - optional: true - '@esbuild/freebsd-x64@0.25.12': optional: true '@esbuild/freebsd-x64@0.28.1': optional: true - '@esbuild/linux-arm64@0.18.20': - optional: true - '@esbuild/linux-arm64@0.25.12': optional: true '@esbuild/linux-arm64@0.28.1': optional: true - '@esbuild/linux-arm@0.18.20': - optional: true - '@esbuild/linux-arm@0.25.12': optional: true '@esbuild/linux-arm@0.28.1': optional: true - '@esbuild/linux-ia32@0.18.20': - optional: true - '@esbuild/linux-ia32@0.25.12': optional: true '@esbuild/linux-ia32@0.28.1': optional: true - '@esbuild/linux-loong64@0.18.20': - optional: true - '@esbuild/linux-loong64@0.25.12': optional: true '@esbuild/linux-loong64@0.28.1': optional: true - '@esbuild/linux-mips64el@0.18.20': - optional: true - '@esbuild/linux-mips64el@0.25.12': optional: true '@esbuild/linux-mips64el@0.28.1': optional: true - '@esbuild/linux-ppc64@0.18.20': - optional: true - '@esbuild/linux-ppc64@0.25.12': optional: true '@esbuild/linux-ppc64@0.28.1': optional: true - '@esbuild/linux-riscv64@0.18.20': - optional: true - '@esbuild/linux-riscv64@0.25.12': optional: true '@esbuild/linux-riscv64@0.28.1': optional: true - '@esbuild/linux-s390x@0.18.20': - optional: true - '@esbuild/linux-s390x@0.25.12': optional: true '@esbuild/linux-s390x@0.28.1': optional: true - '@esbuild/linux-x64@0.18.20': - optional: true - '@esbuild/linux-x64@0.25.12': optional: true @@ -10275,9 +10949,6 @@ snapshots: '@esbuild/netbsd-arm64@0.28.1': optional: true - '@esbuild/netbsd-x64@0.18.20': - optional: true - '@esbuild/netbsd-x64@0.25.12': optional: true @@ -10290,9 +10961,6 @@ snapshots: '@esbuild/openbsd-arm64@0.28.1': optional: true - '@esbuild/openbsd-x64@0.18.20': - optional: true - '@esbuild/openbsd-x64@0.25.12': optional: true @@ -10305,43 +10973,31 @@ snapshots: '@esbuild/openharmony-arm64@0.28.1': optional: true - '@esbuild/sunos-x64@0.18.20': - optional: true - '@esbuild/sunos-x64@0.25.12': optional: true '@esbuild/sunos-x64@0.28.1': optional: true - '@esbuild/win32-arm64@0.18.20': - optional: true - '@esbuild/win32-arm64@0.25.12': optional: true '@esbuild/win32-arm64@0.28.1': optional: true - '@esbuild/win32-ia32@0.18.20': - optional: true - '@esbuild/win32-ia32@0.25.12': optional: true '@esbuild/win32-ia32@0.28.1': optional: true - '@esbuild/win32-x64@0.18.20': - optional: true - '@esbuild/win32-x64@0.25.12': optional: true '@esbuild/win32-x64@0.28.1': optional: true - '@eslint-community/eslint-utils@4.9.1(eslint@9.39.4(jiti@2.7.0))': + '@eslint-community/eslint-utils@4.10.1(eslint@9.39.4(jiti@2.7.0))': dependencies: eslint: 9.39.4(jiti@2.7.0) eslint-visitor-keys: 3.4.3 @@ -10372,7 +11028,7 @@ snapshots: globals: 14.0.0 ignore: 5.3.2 import-fresh: 3.3.1 - js-yaml: 4.3.0 + js-yaml: 4.3.1 minimatch: 3.1.5 strip-json-comments: 3.1.1 transitivePeerDependencies: @@ -10392,42 +11048,28 @@ snapshots: '@noble/hashes': 2.2.0 optional: true - '@floating-ui/core@1.7.5': - dependencies: - '@floating-ui/utils': 0.2.11 - '@floating-ui/core@1.8.0': dependencies: '@floating-ui/utils': 0.2.12 - optional: true - - '@floating-ui/dom@1.7.6': - dependencies: - '@floating-ui/core': 1.7.5 - '@floating-ui/utils': 0.2.11 '@floating-ui/dom@1.8.0': dependencies: '@floating-ui/core': 1.8.0 '@floating-ui/utils': 0.2.12 - optional: true - '@floating-ui/react-dom@2.1.8(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + '@floating-ui/react-dom@2.1.9(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@floating-ui/dom': 1.7.6 + '@floating-ui/dom': 1.8.0 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) - '@floating-ui/utils@0.2.11': {} - - '@floating-ui/utils@0.2.12': - optional: true + '@floating-ui/utils@0.2.12': {} '@fontsource-variable/geist@5.3.0': {} - '@hono/node-server@1.19.14(hono@4.12.27)': + '@hono/node-server@1.19.17(hono@4.12.33)': dependencies: - hono: 4.12.27 + hono: 4.12.33 '@humanfs/core@0.19.2': dependencies: @@ -10449,7 +11091,7 @@ snapshots: '@iconify/types@2.0.0': {} - '@iconify/utils@3.1.3': + '@iconify/utils@3.1.4': dependencies: '@antfu/install-pkg': 1.1.0 '@iconify/types': 2.0.0 @@ -10544,7 +11186,7 @@ snapshots: '@img/sharp-wasm32@0.35.2': dependencies: - '@emnapi/runtime': 1.11.1 + '@emnapi/runtime': 1.11.3 optional: true '@img/sharp-webcontainers-wasm32@0.35.2': @@ -10561,36 +11203,161 @@ snapshots: '@img/sharp-win32-x64@0.35.2': optional: true + '@inquirer/ansi@1.0.2': {} + '@inquirer/ansi@2.0.7': optional: true - '@inquirer/confirm@6.1.1(@types/node@26.1.1)': + '@inquirer/checkbox@4.3.2(@types/node@26.1.2)': + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@26.1.2) + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@26.1.2) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 26.1.2 + + '@inquirer/confirm@5.1.21(@types/node@26.1.2)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@26.1.2) + '@inquirer/type': 3.0.10(@types/node@26.1.2) + optionalDependencies: + '@types/node': 26.1.2 + + '@inquirer/confirm@6.1.1(@types/node@26.1.2)': dependencies: - '@inquirer/core': 11.2.1(@types/node@26.1.1) - '@inquirer/type': 4.0.7(@types/node@26.1.1) + '@inquirer/core': 11.2.1(@types/node@26.1.2) + '@inquirer/type': 4.0.7(@types/node@26.1.2) optionalDependencies: - '@types/node': 26.1.1 + '@types/node': 26.1.2 optional: true - '@inquirer/core@11.2.1(@types/node@26.1.1)': + '@inquirer/core@10.3.2(@types/node@26.1.2)': + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@26.1.2) + cli-width: 4.1.0 + mute-stream: 2.0.0 + signal-exit: 4.1.0 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 26.1.2 + + '@inquirer/core@11.2.1(@types/node@26.1.2)': dependencies: '@inquirer/ansi': 2.0.7 '@inquirer/figures': 2.0.7 - '@inquirer/type': 4.0.7(@types/node@26.1.1) + '@inquirer/type': 4.0.7(@types/node@26.1.2) cli-width: 4.1.0 fast-wrap-ansi: 0.2.2 mute-stream: 3.0.0 signal-exit: 4.1.0 optionalDependencies: - '@types/node': 26.1.1 + '@types/node': 26.1.2 optional: true + '@inquirer/editor@4.2.23(@types/node@26.1.2)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@26.1.2) + '@inquirer/external-editor': 1.0.3(@types/node@26.1.2) + '@inquirer/type': 3.0.10(@types/node@26.1.2) + optionalDependencies: + '@types/node': 26.1.2 + + '@inquirer/expand@4.0.23(@types/node@26.1.2)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@26.1.2) + '@inquirer/type': 3.0.10(@types/node@26.1.2) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 26.1.2 + + '@inquirer/external-editor@1.0.3(@types/node@26.1.2)': + dependencies: + chardet: 2.2.0 + iconv-lite: 0.7.3 + optionalDependencies: + '@types/node': 26.1.2 + + '@inquirer/figures@1.0.15': {} + '@inquirer/figures@2.0.7': optional: true - '@inquirer/type@4.0.7(@types/node@26.1.1)': + '@inquirer/input@4.3.1(@types/node@26.1.2)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@26.1.2) + '@inquirer/type': 3.0.10(@types/node@26.1.2) + optionalDependencies: + '@types/node': 26.1.2 + + '@inquirer/number@3.0.23(@types/node@26.1.2)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@26.1.2) + '@inquirer/type': 3.0.10(@types/node@26.1.2) + optionalDependencies: + '@types/node': 26.1.2 + + '@inquirer/password@4.0.23(@types/node@26.1.2)': + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@26.1.2) + '@inquirer/type': 3.0.10(@types/node@26.1.2) + optionalDependencies: + '@types/node': 26.1.2 + + '@inquirer/prompts@7.10.1(@types/node@26.1.2)': + dependencies: + '@inquirer/checkbox': 4.3.2(@types/node@26.1.2) + '@inquirer/confirm': 5.1.21(@types/node@26.1.2) + '@inquirer/editor': 4.2.23(@types/node@26.1.2) + '@inquirer/expand': 4.0.23(@types/node@26.1.2) + '@inquirer/input': 4.3.1(@types/node@26.1.2) + '@inquirer/number': 3.0.23(@types/node@26.1.2) + '@inquirer/password': 4.0.23(@types/node@26.1.2) + '@inquirer/rawlist': 4.1.11(@types/node@26.1.2) + '@inquirer/search': 3.2.2(@types/node@26.1.2) + '@inquirer/select': 4.4.2(@types/node@26.1.2) + optionalDependencies: + '@types/node': 26.1.2 + + '@inquirer/rawlist@4.1.11(@types/node@26.1.2)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@26.1.2) + '@inquirer/type': 3.0.10(@types/node@26.1.2) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 26.1.2 + + '@inquirer/search@3.2.2(@types/node@26.1.2)': + dependencies: + '@inquirer/core': 10.3.2(@types/node@26.1.2) + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@26.1.2) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 26.1.2 + + '@inquirer/select@4.4.2(@types/node@26.1.2)': + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@26.1.2) + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@26.1.2) + yoctocolors-cjs: 2.1.3 + optionalDependencies: + '@types/node': 26.1.2 + + '@inquirer/type@3.0.10(@types/node@26.1.2)': + optionalDependencies: + '@types/node': 26.1.2 + + '@inquirer/type@4.0.7(@types/node@26.1.2)': optionalDependencies: - '@types/node': 26.1.1 + '@types/node': 26.1.2 optional: true '@jitl/quickjs-ffi-types@0.32.0': {} @@ -10635,19 +11402,21 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 - '@mermaid-js/parser@1.1.1': + '@mermaid-js/parser@1.2.0': dependencies: '@chevrotain/types': 11.1.2 - '@mermaid-js/parser@1.2.0': + '@mishieck/ink-titled-box@0.3.0(ink@6.8.0(@types/react@19.2.18)(react@19.2.8))(react@19.2.8)(typescript@6.0.3)': dependencies: - '@chevrotain/types': 11.1.2 + ink: 6.8.0(@types/react@19.2.18)(react@19.2.8) + react: 19.2.8 + typescript: 6.0.3 '@mixmark-io/domino@2.2.0': {} '@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@3.25.76)': dependencies: - '@hono/node-server': 1.19.14(hono@4.12.27) + '@hono/node-server': 1.19.17(hono@4.12.33) ajv: 8.20.0 ajv-formats: 3.0.1(ajv@8.20.0) content-type: 1.0.5 @@ -10656,9 +11425,9 @@ snapshots: eventsource: 3.0.7 eventsource-parser: 3.1.0 express: 5.2.1 - express-rate-limit: 8.5.2(express@5.2.1) - hono: 4.12.27 - jose: 6.2.3 + express-rate-limit: 8.6.1(express@5.2.1) + hono: 4.12.33 + jose: 6.2.7 json-schema-typed: 8.0.2 pkce-challenge: 5.0.1 raw-body: 3.0.2 @@ -10671,7 +11440,7 @@ snapshots: '@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3)': dependencies: - '@hono/node-server': 1.19.14(hono@4.12.27) + '@hono/node-server': 1.19.17(hono@4.12.33) ajv: 8.20.0 ajv-formats: 3.0.1(ajv@8.20.0) content-type: 1.0.5 @@ -10680,9 +11449,9 @@ snapshots: eventsource: 3.0.7 eventsource-parser: 3.1.0 express: 5.2.1 - express-rate-limit: 8.5.2(express@5.2.1) - hono: 4.12.27 - jose: 6.2.3 + express-rate-limit: 8.6.1(express@5.2.1) + hono: 4.12.33 + jose: 6.2.7 json-schema-typed: 8.0.2 pkce-challenge: 5.0.1 raw-body: 3.0.2 @@ -10695,7 +11464,7 @@ snapshots: '@mongodb-js/zstd@7.0.0': dependencies: - node-addon-api: 8.9.0 + node-addon-api: 8.9.1 prebuild-install: 7.1.3 optional: true @@ -10709,31 +11478,31 @@ snapshots: strict-event-emitter: 0.5.1 optional: true - '@napi-rs/wasm-runtime@1.1.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': + '@napi-rs/wasm-runtime@1.2.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': dependencies: '@emnapi/core': 1.10.0 '@emnapi/runtime': 1.10.0 - '@tybys/wasm-util': 0.10.2 + '@tybys/wasm-util': 0.10.3 optional: true - '@napi-rs/wasm-runtime@1.1.5(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.0)': + '@napi-rs/wasm-runtime@1.2.2(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)': dependencies: - '@emnapi/core': 1.11.0 - '@emnapi/runtime': 1.11.0 - '@tybys/wasm-util': 0.10.2 + '@emnapi/core': 1.11.1 + '@emnapi/runtime': 1.11.1 + '@tybys/wasm-util': 0.10.3 optional: true - '@napi-rs/wasm-runtime@1.1.6(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': + '@napi-rs/wasm-runtime@1.2.2(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)': dependencies: - '@emnapi/core': 1.10.0 - '@emnapi/runtime': 1.10.0 + '@emnapi/core': 1.11.2 + '@emnapi/runtime': 1.11.2 '@tybys/wasm-util': 0.10.3 optional: true - '@napi-rs/wasm-runtime@1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)': + '@napi-rs/wasm-runtime@1.2.2(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3)': dependencies: - '@emnapi/core': 1.11.1 - '@emnapi/runtime': 1.11.1 + '@emnapi/core': 1.11.2 + '@emnapi/runtime': 1.11.3 '@tybys/wasm-util': 0.10.3 optional: true @@ -10741,7 +11510,7 @@ snapshots: '@noble/hashes@2.2.0': {} - '@nodable/entities@2.2.0': {} + '@nodable/entities@3.0.0': {} '@nodelib/fs.scandir@2.1.5': dependencies: @@ -10787,43 +11556,68 @@ snapshots: '@open-draft/until@2.1.0': optional: true - '@opentelemetry/api-logs@0.214.0': + '@opentelemetry/api-logs@0.220.0': dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/api@1.9.1': {} - '@opentelemetry/core@2.8.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/core@2.10.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 '@opentelemetry/semantic-conventions': 1.43.0 - '@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/instrumentation@0.220.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/api-logs': 0.214.0 - import-in-the-middle: 3.1.0 + '@opentelemetry/api-logs': 0.220.0 + import-in-the-middle: 3.3.3 require-in-the-middle: 8.0.1 transitivePeerDependencies: - supports-color - '@opentelemetry/resources@2.8.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/resources@2.10.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.8.0(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.43.0 - '@opentelemetry/sdk-trace-base@2.8.0(@opentelemetry/api@1.9.1)': + '@opentelemetry/sdk-trace-base@2.10.0(@opentelemetry/api@1.9.1)': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.8.0(@opentelemetry/api@1.9.1) - '@opentelemetry/resources': 2.8.0(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace': 2.10.0(@opentelemetry/api@1.9.1) '@opentelemetry/semantic-conventions': 1.43.0 - '@opentelemetry/semantic-conventions@1.41.1': {} + '@opentelemetry/sdk-trace@2.10.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.43.0 '@opentelemetry/semantic-conventions@1.43.0': {} + '@oslojs/asn1@1.0.0': + dependencies: + '@oslojs/binary': 1.0.0 + + '@oslojs/binary@1.0.0': {} + + '@oslojs/crypto@1.0.1': + dependencies: + '@oslojs/asn1': 1.0.0 + '@oslojs/binary': 1.0.0 + + '@oslojs/encoding@0.4.1': {} + + '@oslojs/encoding@1.1.0': {} + + '@oslojs/jwt@0.2.0': + dependencies: + '@oslojs/encoding': 0.4.1 + '@oxc-parser/binding-android-arm-eabi@0.120.0': optional: true @@ -10833,6 +11627,9 @@ snapshots: '@oxc-parser/binding-android-arm-eabi@0.135.0': optional: true + '@oxc-parser/binding-android-arm-eabi@0.142.0': + optional: true + '@oxc-parser/binding-android-arm64@0.120.0': optional: true @@ -10842,6 +11639,9 @@ snapshots: '@oxc-parser/binding-android-arm64@0.135.0': optional: true + '@oxc-parser/binding-android-arm64@0.142.0': + optional: true + '@oxc-parser/binding-darwin-arm64@0.120.0': optional: true @@ -10851,6 +11651,9 @@ snapshots: '@oxc-parser/binding-darwin-arm64@0.135.0': optional: true + '@oxc-parser/binding-darwin-arm64@0.142.0': + optional: true + '@oxc-parser/binding-darwin-x64@0.120.0': optional: true @@ -10860,6 +11663,9 @@ snapshots: '@oxc-parser/binding-darwin-x64@0.135.0': optional: true + '@oxc-parser/binding-darwin-x64@0.142.0': + optional: true + '@oxc-parser/binding-freebsd-x64@0.120.0': optional: true @@ -10869,6 +11675,9 @@ snapshots: '@oxc-parser/binding-freebsd-x64@0.135.0': optional: true + '@oxc-parser/binding-freebsd-x64@0.142.0': + optional: true + '@oxc-parser/binding-linux-arm-gnueabihf@0.120.0': optional: true @@ -10878,6 +11687,9 @@ snapshots: '@oxc-parser/binding-linux-arm-gnueabihf@0.135.0': optional: true + '@oxc-parser/binding-linux-arm-gnueabihf@0.142.0': + optional: true + '@oxc-parser/binding-linux-arm-musleabihf@0.120.0': optional: true @@ -10887,6 +11699,9 @@ snapshots: '@oxc-parser/binding-linux-arm-musleabihf@0.135.0': optional: true + '@oxc-parser/binding-linux-arm-musleabihf@0.142.0': + optional: true + '@oxc-parser/binding-linux-arm64-gnu@0.120.0': optional: true @@ -10896,6 +11711,9 @@ snapshots: '@oxc-parser/binding-linux-arm64-gnu@0.135.0': optional: true + '@oxc-parser/binding-linux-arm64-gnu@0.142.0': + optional: true + '@oxc-parser/binding-linux-arm64-musl@0.120.0': optional: true @@ -10905,6 +11723,9 @@ snapshots: '@oxc-parser/binding-linux-arm64-musl@0.135.0': optional: true + '@oxc-parser/binding-linux-arm64-musl@0.142.0': + optional: true + '@oxc-parser/binding-linux-ppc64-gnu@0.120.0': optional: true @@ -10914,6 +11735,9 @@ snapshots: '@oxc-parser/binding-linux-ppc64-gnu@0.135.0': optional: true + '@oxc-parser/binding-linux-ppc64-gnu@0.142.0': + optional: true + '@oxc-parser/binding-linux-riscv64-gnu@0.120.0': optional: true @@ -10923,6 +11747,9 @@ snapshots: '@oxc-parser/binding-linux-riscv64-gnu@0.135.0': optional: true + '@oxc-parser/binding-linux-riscv64-gnu@0.142.0': + optional: true + '@oxc-parser/binding-linux-riscv64-musl@0.120.0': optional: true @@ -10932,6 +11759,9 @@ snapshots: '@oxc-parser/binding-linux-riscv64-musl@0.135.0': optional: true + '@oxc-parser/binding-linux-riscv64-musl@0.142.0': + optional: true + '@oxc-parser/binding-linux-s390x-gnu@0.120.0': optional: true @@ -10941,6 +11771,9 @@ snapshots: '@oxc-parser/binding-linux-s390x-gnu@0.135.0': optional: true + '@oxc-parser/binding-linux-s390x-gnu@0.142.0': + optional: true + '@oxc-parser/binding-linux-x64-gnu@0.120.0': optional: true @@ -10950,6 +11783,9 @@ snapshots: '@oxc-parser/binding-linux-x64-gnu@0.135.0': optional: true + '@oxc-parser/binding-linux-x64-gnu@0.142.0': + optional: true + '@oxc-parser/binding-linux-x64-musl@0.120.0': optional: true @@ -10959,6 +11795,9 @@ snapshots: '@oxc-parser/binding-linux-x64-musl@0.135.0': optional: true + '@oxc-parser/binding-linux-x64-musl@0.142.0': + optional: true + '@oxc-parser/binding-openharmony-arm64@0.120.0': optional: true @@ -10968,9 +11807,12 @@ snapshots: '@oxc-parser/binding-openharmony-arm64@0.135.0': optional: true - '@oxc-parser/binding-wasm32-wasi@0.120.0(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)': + '@oxc-parser/binding-openharmony-arm64@0.142.0': + optional: true + + '@oxc-parser/binding-wasm32-wasi@0.120.0(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3)': dependencies: - '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) + '@napi-rs/wasm-runtime': 1.2.2(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3) transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' @@ -10980,14 +11822,21 @@ snapshots: dependencies: '@emnapi/core': 1.10.0 '@emnapi/runtime': 1.10.0 - '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + '@napi-rs/wasm-runtime': 1.2.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) optional: true '@oxc-parser/binding-wasm32-wasi@0.135.0': dependencies: '@emnapi/core': 1.10.0 '@emnapi/runtime': 1.10.0 - '@napi-rs/wasm-runtime': 1.1.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + '@napi-rs/wasm-runtime': 1.2.2(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + optional: true + + '@oxc-parser/binding-wasm32-wasi@0.142.0': + dependencies: + '@emnapi/core': 1.11.2 + '@emnapi/runtime': 1.11.2 + '@napi-rs/wasm-runtime': 1.2.2(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2) optional: true '@oxc-parser/binding-win32-arm64-msvc@0.120.0': @@ -10999,6 +11848,9 @@ snapshots: '@oxc-parser/binding-win32-arm64-msvc@0.135.0': optional: true + '@oxc-parser/binding-win32-arm64-msvc@0.142.0': + optional: true + '@oxc-parser/binding-win32-ia32-msvc@0.120.0': optional: true @@ -11008,6 +11860,9 @@ snapshots: '@oxc-parser/binding-win32-ia32-msvc@0.135.0': optional: true + '@oxc-parser/binding-win32-ia32-msvc@0.142.0': + optional: true + '@oxc-parser/binding-win32-x64-msvc@0.120.0': optional: true @@ -11017,6 +11872,9 @@ snapshots: '@oxc-parser/binding-win32-x64-msvc@0.135.0': optional: true + '@oxc-parser/binding-win32-x64-msvc@0.142.0': + optional: true + '@oxc-project/runtime@0.138.0': {} '@oxc-project/runtime@0.141.0': {} @@ -11033,65 +11891,67 @@ snapshots: '@oxc-project/types@0.141.0': {} - '@oxc-resolver/binding-android-arm-eabi@11.21.3': + '@oxc-project/types@0.142.0': {} + + '@oxc-resolver/binding-android-arm-eabi@11.24.2': optional: true - '@oxc-resolver/binding-android-arm64@11.21.3': + '@oxc-resolver/binding-android-arm64@11.24.2': optional: true - '@oxc-resolver/binding-darwin-arm64@11.21.3': + '@oxc-resolver/binding-darwin-arm64@11.24.2': optional: true - '@oxc-resolver/binding-darwin-x64@11.21.3': + '@oxc-resolver/binding-darwin-x64@11.24.2': optional: true - '@oxc-resolver/binding-freebsd-x64@11.21.3': + '@oxc-resolver/binding-freebsd-x64@11.24.2': optional: true - '@oxc-resolver/binding-linux-arm-gnueabihf@11.21.3': + '@oxc-resolver/binding-linux-arm-gnueabihf@11.24.2': optional: true - '@oxc-resolver/binding-linux-arm-musleabihf@11.21.3': + '@oxc-resolver/binding-linux-arm-musleabihf@11.24.2': optional: true - '@oxc-resolver/binding-linux-arm64-gnu@11.21.3': + '@oxc-resolver/binding-linux-arm64-gnu@11.24.2': optional: true - '@oxc-resolver/binding-linux-arm64-musl@11.21.3': + '@oxc-resolver/binding-linux-arm64-musl@11.24.2': optional: true - '@oxc-resolver/binding-linux-ppc64-gnu@11.21.3': + '@oxc-resolver/binding-linux-ppc64-gnu@11.24.2': optional: true - '@oxc-resolver/binding-linux-riscv64-gnu@11.21.3': + '@oxc-resolver/binding-linux-riscv64-gnu@11.24.2': optional: true - '@oxc-resolver/binding-linux-riscv64-musl@11.21.3': + '@oxc-resolver/binding-linux-riscv64-musl@11.24.2': optional: true - '@oxc-resolver/binding-linux-s390x-gnu@11.21.3': + '@oxc-resolver/binding-linux-s390x-gnu@11.24.2': optional: true - '@oxc-resolver/binding-linux-x64-gnu@11.21.3': + '@oxc-resolver/binding-linux-x64-gnu@11.24.2': optional: true - '@oxc-resolver/binding-linux-x64-musl@11.21.3': + '@oxc-resolver/binding-linux-x64-musl@11.24.2': optional: true - '@oxc-resolver/binding-openharmony-arm64@11.21.3': + '@oxc-resolver/binding-openharmony-arm64@11.24.2': optional: true - '@oxc-resolver/binding-wasm32-wasi@11.21.3': + '@oxc-resolver/binding-wasm32-wasi@11.24.2': dependencies: - '@emnapi/core': 1.11.0 - '@emnapi/runtime': 1.11.0 - '@napi-rs/wasm-runtime': 1.1.5(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.0) + '@emnapi/core': 1.11.2 + '@emnapi/runtime': 1.11.2 + '@napi-rs/wasm-runtime': 1.2.2(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2) optional: true - '@oxc-resolver/binding-win32-arm64-msvc@11.21.3': + '@oxc-resolver/binding-win32-arm64-msvc@11.24.2': optional: true - '@oxc-resolver/binding-win32-x64-msvc@11.21.3': + '@oxc-resolver/binding-win32-x64-msvc@11.24.2': optional: true '@oxfmt/binding-android-arm-eabi@0.60.0': @@ -11299,61 +12159,55 @@ snapshots: '@poppinss/exception@1.2.3': {} - '@posthog/ai@8.4.0(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.8.0(@opentelemetry/api@1.9.1))(posthog-node@5.46.1)': + '@posthog/ai@8.6.0(@opentelemetry/api@1.9.1)(@opentelemetry/sdk-trace-base@2.10.0(@opentelemetry/api@1.9.1))(posthog-node@5.47.3(rxjs@7.8.2))': dependencies: - '@posthog/core': 1.43.1 - posthog-node: 5.46.1 + '@posthog/core': 1.46.1 + posthog-node: 5.47.3(rxjs@7.8.2) uuid: 11.1.1 zod: 4.4.3 optionalDependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/sdk-trace-base': 2.8.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 2.10.0(@opentelemetry/api@1.9.1) - '@posthog/browser-common@0.2.2': + '@posthog/browser-common@0.3.1': dependencies: - '@posthog/core': 1.45.1 - '@posthog/types': 1.398.0 + '@posthog/core': 1.46.1 + '@posthog/types': 1.399.0 - '@posthog/cli@0.7.30': + '@posthog/cli@0.7.34': dependencies: detect-libc: 2.1.2 - '@posthog/core@1.43.1': + '@posthog/core@1.46.1': dependencies: - '@posthog/types': 1.397.0 + '@posthog/types': 1.399.0 - '@posthog/core@1.45.1': - dependencies: - '@posthog/types': 1.398.0 - - '@posthog/mcp@0.10.1(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(posthog-node@5.46.1)': + '@posthog/mcp@0.10.1(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(posthog-node@5.47.3(rxjs@7.8.2))': dependencies: '@modelcontextprotocol/sdk': 1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3) - '@posthog/core': 1.45.1 - posthog-node: 5.46.1 + '@posthog/core': 1.46.1 + posthog-node: 5.47.3(rxjs@7.8.2) '@posthog/plugin-utils@1.1.2': dependencies: cross-spawn: 7.0.6 - '@posthog/react@1.10.3(@types/react@19.2.17)(posthog-js@1.407.3)(react@19.2.8)': + '@posthog/react@1.10.3(@types/react@19.2.18)(posthog-js@1.409.5)(react@19.2.8)': dependencies: - posthog-js: 1.407.3 + posthog-js: 1.409.5 react: 19.2.8 optionalDependencies: - '@types/react': 19.2.17 + '@types/react': 19.2.18 '@posthog/rollup-plugin@1.4.7(rollup@4.62.2)': dependencies: - '@posthog/cli': 0.7.30 + '@posthog/cli': 0.7.34 '@posthog/plugin-utils': 1.1.2 rollup: 4.62.2 - '@posthog/types@1.397.0': {} + '@posthog/types@1.399.0': {} - '@posthog/types@1.398.0': {} - - '@preact/signals-core@1.14.2': {} + '@preact/signals-core@1.14.4': {} '@rolldown/binding-android-arm64@1.1.2': optional: true @@ -11395,7 +12249,7 @@ snapshots: dependencies: '@emnapi/core': 1.11.1 '@emnapi/runtime': 1.11.1 - '@napi-rs/wasm-runtime': 1.1.6(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) + '@napi-rs/wasm-runtime': 1.2.2(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) optional: true '@rolldown/binding-win32-arm64-msvc@1.1.2': @@ -11404,14 +12258,14 @@ snapshots: '@rolldown/binding-win32-x64-msvc@1.1.2': optional: true - '@rolldown/plugin-babel@0.2.3(@babel/core@7.29.7)(@babel/runtime@7.29.7)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(rolldown@1.1.2)': + '@rolldown/plugin-babel@0.2.3(@babel/core@7.29.7)(@babel/runtime@7.29.7)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(rolldown@1.1.2)': dependencies: '@babel/core': 7.29.7 - picomatch: 4.0.4 + picomatch: 4.0.5 rolldown: 1.1.2 optionalDependencies: '@babel/runtime': 7.29.7 - vite: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)' + vite: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)' '@rolldown/pluginutils@1.0.1': {} @@ -11492,85 +12346,95 @@ snapshots: '@sec-ant/readable-stream@0.4.1': {} - '@sentry/core@10.58.0': {} + '@sentry/conventions@0.16.0': {} + + '@sentry/core@10.69.0': + dependencies: + '@sentry/conventions': 0.16.0 - '@sentry/node-core@10.58.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.8.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.8.0(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.41.1)': + '@sentry/node-core@10.69.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.10.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.220.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.10.0(@opentelemetry/api@1.9.1))': dependencies: - '@sentry/core': 10.58.0 - '@sentry/opentelemetry': 10.58.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.8.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.8.0(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.41.1) - import-in-the-middle: 3.1.0 + '@sentry/conventions': 0.16.0 + '@sentry/core': 10.69.0 + '@sentry/opentelemetry': 10.69.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.10.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.10.0(@opentelemetry/api@1.9.1)) + import-in-the-middle: 3.3.3 optionalDependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.8.0(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-trace-base': 2.8.0(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.41.1 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 2.10.0(@opentelemetry/api@1.9.1) - '@sentry/node@10.58.0': + '@sentry/node@10.69.0(@opentelemetry/core@2.10.0(@opentelemetry/api@1.9.1))': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.8.0(@opentelemetry/api@1.9.1) - '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-trace-base': 2.8.0(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.41.1 - '@sentry/core': 10.58.0 - '@sentry/node-core': 10.58.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.8.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.8.0(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.41.1) - '@sentry/opentelemetry': 10.58.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.8.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.8.0(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.41.1) - '@sentry/server-utils': 10.58.0 - import-in-the-middle: 3.1.0 + '@opentelemetry/instrumentation': 0.220.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 2.10.0(@opentelemetry/api@1.9.1) + '@sentry/conventions': 0.16.0 + '@sentry/core': 10.69.0 + '@sentry/node-core': 10.69.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.10.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.220.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.10.0(@opentelemetry/api@1.9.1)) + '@sentry/opentelemetry': 10.69.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.10.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.10.0(@opentelemetry/api@1.9.1)) + '@sentry/server-utils': 10.69.0 + import-in-the-middle: 3.3.3 transitivePeerDependencies: + - '@opentelemetry/core' - '@opentelemetry/exporter-trace-otlp-http' - supports-color - '@sentry/opentelemetry@10.58.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.8.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.8.0(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.41.1)': + '@sentry/opentelemetry@10.69.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.10.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.10.0(@opentelemetry/api@1.9.1))': dependencies: '@opentelemetry/api': 1.9.1 - '@opentelemetry/core': 2.8.0(@opentelemetry/api@1.9.1) - '@opentelemetry/sdk-trace-base': 2.8.0(@opentelemetry/api@1.9.1) - '@opentelemetry/semantic-conventions': 1.41.1 - '@sentry/core': 10.58.0 - - '@sentry/server-utils@10.58.0': - dependencies: - '@sentry/core': 10.58.0 + '@opentelemetry/core': 2.10.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 2.10.0(@opentelemetry/api@1.9.1) + '@sentry/conventions': 0.16.0 + '@sentry/core': 10.69.0 + + '@sentry/server-utils@10.69.0': + dependencies: + '@apm-js-collab/code-transformer-bundler-plugins': 0.7.3 + '@apm-js-collab/tracing-hooks': 0.13.0 + '@sentry/conventions': 0.16.0 + '@sentry/core': 10.69.0 + meriyah: 6.1.4 + transitivePeerDependencies: + - supports-color - '@shikijs/core@4.3.1': + '@shikijs/core@4.4.1': dependencies: - '@shikijs/primitive': 4.3.1 - '@shikijs/types': 4.3.1 + '@shikijs/primitive': 4.4.1 + '@shikijs/types': 4.4.1 '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 hast-util-to-html: 9.0.5 - '@shikijs/engine-javascript@4.3.1': + '@shikijs/engine-javascript@4.4.1': dependencies: - '@shikijs/types': 4.3.1 + '@shikijs/types': 4.4.1 '@shikijs/vscode-textmate': 10.0.2 oniguruma-to-es: 4.3.6 - '@shikijs/engine-oniguruma@4.3.1': + '@shikijs/engine-oniguruma@4.4.1': dependencies: - '@shikijs/types': 4.3.1 + '@shikijs/types': 4.4.1 '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/langs@4.3.1': + '@shikijs/langs@4.4.1': dependencies: - '@shikijs/types': 4.3.1 + '@shikijs/types': 4.4.1 - '@shikijs/primitive@4.3.1': + '@shikijs/primitive@4.4.1': dependencies: - '@shikijs/types': 4.3.1 + '@shikijs/types': 4.4.1 '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 - '@shikijs/themes@4.3.1': + '@shikijs/themes@4.4.1': dependencies: - '@shikijs/types': 4.3.1 + '@shikijs/types': 4.4.1 - '@shikijs/types@4.3.1': + '@shikijs/types@4.4.1': dependencies: '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 '@shikijs/vscode-textmate@10.0.2': {} @@ -11584,54 +12448,55 @@ snapshots: '@sindresorhus/merge-streams@4.0.0': {} - '@solid-primitives/event-listener@2.4.5(solid-js@1.9.12)': + '@solid-primitives/event-listener@2.4.6(solid-js@1.9.12)': dependencies: - '@solid-primitives/utils': 6.4.0(solid-js@1.9.12) + '@solid-primitives/utils': 6.4.1(solid-js@1.9.12) solid-js: 1.9.12 - '@solid-primitives/keyboard@1.3.5(solid-js@1.9.12)': + '@solid-primitives/keyboard@1.3.7(solid-js@1.9.12)': dependencies: - '@solid-primitives/event-listener': 2.4.5(solid-js@1.9.12) - '@solid-primitives/rootless': 1.5.3(solid-js@1.9.12) - '@solid-primitives/utils': 6.4.0(solid-js@1.9.12) + '@solid-primitives/event-listener': 2.4.6(solid-js@1.9.12) + '@solid-primitives/rootless': 1.5.4(solid-js@1.9.12) + '@solid-primitives/utils': 6.4.1(solid-js@1.9.12) solid-js: 1.9.12 - '@solid-primitives/resize-observer@2.1.5(solid-js@1.9.12)': + '@solid-primitives/resize-observer@2.2.0(solid-js@1.9.12)': dependencies: - '@solid-primitives/event-listener': 2.4.5(solid-js@1.9.12) - '@solid-primitives/rootless': 1.5.3(solid-js@1.9.12) - '@solid-primitives/static-store': 0.1.3(solid-js@1.9.12) - '@solid-primitives/utils': 6.4.0(solid-js@1.9.12) + '@solid-primitives/event-listener': 2.4.6(solid-js@1.9.12) + '@solid-primitives/rootless': 1.5.4(solid-js@1.9.12) + '@solid-primitives/static-store': 0.1.4(solid-js@1.9.12) + '@solid-primitives/utils': 6.4.1(solid-js@1.9.12) solid-js: 1.9.12 - '@solid-primitives/rootless@1.5.3(solid-js@1.9.12)': + '@solid-primitives/rootless@1.5.4(solid-js@1.9.12)': dependencies: - '@solid-primitives/utils': 6.4.0(solid-js@1.9.12) + '@solid-primitives/utils': 6.4.1(solid-js@1.9.12) solid-js: 1.9.12 - '@solid-primitives/static-store@0.1.3(solid-js@1.9.12)': + '@solid-primitives/static-store@0.1.4(solid-js@1.9.12)': dependencies: - '@solid-primitives/utils': 6.4.0(solid-js@1.9.12) + '@solid-primitives/utils': 6.4.1(solid-js@1.9.12) solid-js: 1.9.12 - '@solid-primitives/utils@6.4.0(solid-js@1.9.12)': + '@solid-primitives/utils@6.4.1(solid-js@1.9.12)': dependencies: solid-js: 1.9.12 - '@speed-highlight/core@1.2.17': {} + '@speed-highlight/core@1.2.22': {} '@standard-schema/spec@1.1.0': {} '@streamdown/cjk@1.0.3(@types/mdast@4.0.4)(micromark-util-types@2.0.2)(micromark@4.0.2)(react@19.2.8)(unified@11.0.5)': dependencies: react: 19.2.8 - remark-cjk-friendly: 2.0.1(@types/mdast@4.0.4)(micromark-util-types@2.0.2)(micromark@4.0.2)(unified@11.0.5) - remark-cjk-friendly-gfm-strikethrough: 2.0.1(@types/mdast@4.0.4)(micromark-util-types@2.0.2)(micromark@4.0.2)(unified@11.0.5) + remark-cjk-friendly: 2.3.1(@types/mdast@4.0.4)(micromark-util-types@2.0.2)(micromark@4.0.2)(unified@11.0.5) + remark-cjk-friendly-gfm-strikethrough: 2.3.1(@types/mdast@4.0.4)(micromark-util-types@2.0.2)(micromark@4.0.2)(unified@11.0.5) unist-util-visit: 5.1.0 transitivePeerDependencies: - '@types/mdast' - micromark - micromark-util-types + - supports-color - unified '@streamdown/math@1.0.2(react@19.2.8)': @@ -11643,14 +12508,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@sveltejs/acorn-typescript@1.0.11(acorn@8.17.0)': + '@sveltejs/acorn-typescript@1.0.11(acorn@8.18.0)': dependencies: - acorn: 8.17.0 + acorn: 8.18.0 '@tailwindcss/node@4.3.3': dependencies: '@jridgewell/remapping': 2.3.5 - enhanced-resolve: 5.24.3 + enhanced-resolve: 5.24.5 jiti: 2.7.0 lightningcss: 1.32.0 magic-string: 0.30.21 @@ -11713,12 +12578,12 @@ snapshots: postcss-selector-parser: 6.0.10 tailwindcss: 4.3.3 - '@tailwindcss/vite@4.3.3(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))': + '@tailwindcss/vite@4.3.3(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))': dependencies: '@tailwindcss/node': 4.3.3 '@tailwindcss/oxide': 4.3.3 tailwindcss: 4.3.3 - vite: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)' + vite: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)' '@tanstack/ai-event-client@0.3.11(@tanstack/ai@0.22.0(@opentelemetry/api@1.9.1))': dependencies: @@ -11736,15 +12601,15 @@ snapshots: '@opentelemetry/api': 1.9.1 optional: true - '@tanstack/devtools-bundler-core@0.1.1(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)': + '@tanstack/devtools-bundler-core@0.1.1(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3)': dependencies: '@tanstack/devtools-client': 0.0.8 '@tanstack/devtools-event-bus': 0.4.2 chalk: 5.6.2 launch-editor: 2.14.1 magic-string: 0.30.21 - oxc-parser: 0.120.0(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) - picomatch: 4.0.4 + oxc-parser: 0.120.0(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3) + picomatch: 4.0.5 transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' @@ -11757,7 +12622,7 @@ snapshots: '@tanstack/devtools-event-bus@0.4.2': dependencies: - ws: 8.21.0 + ws: 8.21.1 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -11775,13 +12640,13 @@ snapshots: transitivePeerDependencies: - csstype - '@tanstack/devtools-vite@0.8.3(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))': + '@tanstack/devtools-vite@0.8.3(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))': dependencies: - '@tanstack/devtools-bundler-core': 0.1.1(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) + '@tanstack/devtools-bundler-core': 0.1.1(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3) '@tanstack/devtools-client': 0.0.8 '@tanstack/devtools-event-bus': 0.4.2 chalk: 5.6.2 - vite: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)' + vite: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)' transitivePeerDependencies: - '@emnapi/core' - '@emnapi/runtime' @@ -11790,9 +12655,9 @@ snapshots: '@tanstack/devtools@0.13.0(csstype@3.2.3)(solid-js@1.9.12)': dependencies: - '@solid-primitives/event-listener': 2.4.5(solid-js@1.9.12) - '@solid-primitives/keyboard': 1.3.5(solid-js@1.9.12) - '@solid-primitives/resize-observer': 2.1.5(solid-js@1.9.12) + '@solid-primitives/event-listener': 2.4.6(solid-js@1.9.12) + '@solid-primitives/keyboard': 1.3.7(solid-js@1.9.12) + '@solid-primitives/resize-observer': 2.2.0(solid-js@1.9.12) '@tanstack/devtools-client': 0.0.8 '@tanstack/devtools-event-bus': 0.4.2 '@tanstack/devtools-ui': 0.6.0(csstype@3.2.3)(solid-js@1.9.12) @@ -11819,11 +12684,11 @@ snapshots: '@tanstack/query-devtools@5.101.4': {} - '@tanstack/react-devtools@0.10.9(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(csstype@3.2.3)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(solid-js@1.9.12)': + '@tanstack/react-devtools@0.10.9(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(csstype@3.2.3)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(solid-js@1.9.12)': dependencies: '@tanstack/devtools': 0.13.0(csstype@3.2.3)(solid-js@1.9.12) - '@types/react': 19.2.17 - '@types/react-dom': 19.2.3(@types/react@19.2.17) + '@types/react': 19.2.18 + '@types/react-dom': 19.2.4(@types/react@19.2.18) react: 19.2.8 react-dom: 19.2.8(react@19.2.8) transitivePeerDependencies: @@ -11877,7 +12742,7 @@ snapshots: '@tanstack/history': 1.162.0 '@tanstack/react-store': 0.9.3(react-dom@19.2.8(react@19.2.8))(react@19.2.8) '@tanstack/router-core': 1.171.15 - isbot: 5.1.43 + isbot: 5.2.1 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) @@ -11889,23 +12754,29 @@ snapshots: react: 19.2.8 react-dom: 19.2.8(react@19.2.8) - '@tanstack/react-start-rsc@0.1.31(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + '@tanstack/react-start-rsc@0.1.31(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(rolldown@1.1.2)(rollup@4.62.2)': dependencies: '@tanstack/react-router': 1.170.18(react-dom@19.2.8(react@19.2.8))(react@19.2.8) '@tanstack/router-core': 1.171.15 '@tanstack/router-utils': 1.162.2 '@tanstack/start-client-core': 1.170.14 '@tanstack/start-fn-stubs': 1.162.0 - '@tanstack/start-plugin-core': 1.171.24(@tanstack/react-router@1.170.18(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)) + '@tanstack/start-plugin-core': 1.171.24(@tanstack/react-router@1.170.18(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(rolldown@1.1.2)(rollup@4.62.2) '@tanstack/start-server-core': 1.169.17 '@tanstack/start-storage-context': 1.167.17 pathe: 2.0.3 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) transitivePeerDependencies: + - '@farmfe/core' - '@rsbuild/core' + - bun-types-no-globals - crossws + - esbuild + - rolldown + - rollup - supports-color + - unloader - vite - vite-plugin-solid - webpack @@ -11920,26 +12791,32 @@ snapshots: transitivePeerDependencies: - crossws - '@tanstack/react-start@1.168.32(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + '@tanstack/react-start@1.168.32(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(rolldown@1.1.2)(rollup@4.62.2)': dependencies: '@tanstack/react-router': 1.170.18(react-dom@19.2.8(react@19.2.8))(react@19.2.8) '@tanstack/react-start-client': 1.168.16(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - '@tanstack/react-start-rsc': 0.1.31(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@tanstack/react-start-rsc': 0.1.31(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(rolldown@1.1.2)(rollup@4.62.2) '@tanstack/react-start-server': 1.167.22(react-dom@19.2.8(react@19.2.8))(react@19.2.8) '@tanstack/router-utils': 1.162.2 '@tanstack/start-client-core': 1.170.14 - '@tanstack/start-plugin-core': 1.171.24(@tanstack/react-router@1.170.18(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)) + '@tanstack/start-plugin-core': 1.171.24(@tanstack/react-router@1.170.18(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(rolldown@1.1.2)(rollup@4.62.2) '@tanstack/start-server-core': 1.169.17 pathe: 2.0.3 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) optionalDependencies: - vite: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)' + vite: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)' transitivePeerDependencies: + - '@farmfe/core' - '@rspack/core' + - bun-types-no-globals - crossws + - esbuild - react-server-dom-rspack + - rolldown + - rollup - supports-color + - unloader - vite-plugin-solid - webpack @@ -11961,8 +12838,8 @@ snapshots: dependencies: '@tanstack/history': 1.162.0 cookie-es: 3.1.1 - seroval: 1.5.5 - seroval-plugins: 1.5.5(seroval@1.5.5) + seroval: 1.6.0 + seroval-plugins: 1.6.0(seroval@1.6.0) '@tanstack/router-devtools-core@1.168.0(@tanstack/router-core@1.171.15)(csstype@3.2.3)': dependencies: @@ -11974,33 +12851,40 @@ snapshots: '@tanstack/router-generator@1.167.21': dependencies: - '@babel/types': 7.29.7 + '@babel/types': 7.29.8 '@tanstack/router-core': 1.171.15 '@tanstack/router-utils': 1.162.2 '@tanstack/virtual-file-routes': 1.162.0 jiti: 2.7.0 magic-string: 0.30.21 - prettier: 3.8.3 + prettier: 3.9.6 zod: 4.4.3 transitivePeerDependencies: - supports-color - '@tanstack/router-plugin@1.168.23(@tanstack/react-router@1.170.18(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))': + '@tanstack/router-plugin@1.168.23(@tanstack/react-router@1.170.18(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(rolldown@1.1.2)(rollup@4.62.2)': dependencies: '@babel/core': 7.29.7 '@babel/template': 7.29.7 - '@babel/types': 7.29.7 + '@babel/types': 7.29.8 '@tanstack/router-core': 1.171.15 '@tanstack/router-generator': 1.167.21 '@tanstack/router-utils': 1.162.2 chokidar: 5.0.0 - unplugin: 3.0.0 + unplugin: 3.3.0(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(rolldown@1.1.2)(rollup@4.62.2) zod: 4.4.3 optionalDependencies: '@tanstack/react-router': 1.170.18(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - vite: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)' + vite: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)' transitivePeerDependencies: + - '@farmfe/core' + - '@rspack/core' + - bun-types-no-globals + - esbuild + - rolldown + - rollup - supports-color + - unloader '@tanstack/router-ssr-query-core@1.169.1(@tanstack/query-core@5.101.4)(@tanstack/router-core@1.171.15)': dependencies: @@ -12009,9 +12893,9 @@ snapshots: '@tanstack/router-utils@1.162.2': dependencies: - '@babel/generator': 7.29.7 - '@babel/parser': 7.29.7 - '@babel/types': 7.29.7 + '@babel/generator': 7.29.8 + '@babel/parser': 7.29.8 + '@babel/types': 7.29.8 ansis: 4.3.1 babel-dead-code-elimination: 1.0.12 diff: 8.0.4 @@ -12025,38 +12909,45 @@ snapshots: '@tanstack/router-core': 1.171.15 '@tanstack/start-fn-stubs': 1.162.0 '@tanstack/start-storage-context': 1.167.17 - seroval: 1.5.5 + seroval: 1.6.0 '@tanstack/start-fn-stubs@1.162.0': {} - '@tanstack/start-plugin-core@1.171.24(@tanstack/react-router@1.170.18(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))': + '@tanstack/start-plugin-core@1.171.24(@tanstack/react-router@1.170.18(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(rolldown@1.1.2)(rollup@4.62.2)': dependencies: '@babel/code-frame': 7.27.1 '@babel/core': 7.29.7 - '@babel/types': 7.29.7 + '@babel/types': 7.29.8 '@tanstack/router-core': 1.171.15 '@tanstack/router-generator': 1.167.21 - '@tanstack/router-plugin': 1.168.23(@tanstack/react-router@1.170.18(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)) + '@tanstack/router-plugin': 1.168.23(@tanstack/react-router@1.170.18(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(rolldown@1.1.2)(rollup@4.62.2) '@tanstack/router-utils': 1.162.2 '@tanstack/start-server-core': 1.169.17 - exsolve: 1.0.8 - lightningcss: 1.32.0 + exsolve: 1.1.1 + lightningcss: 1.33.0 pathe: 2.0.3 - picomatch: 4.0.4 - seroval: 1.5.5 + picomatch: 4.0.5 + seroval: 1.6.0 source-map: 0.7.6 srvx: 0.11.22 tinyglobby: 0.2.17 ufo: 1.6.4 - vitefu: 1.1.3(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)) + vitefu: 1.1.3(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)) xmlbuilder2: 4.0.3 zod: 4.4.3 optionalDependencies: - vite: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)' + vite: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)' transitivePeerDependencies: + - '@farmfe/core' + - '@rspack/core' - '@tanstack/react-router' + - bun-types-no-globals - crossws + - esbuild + - rolldown + - rollup - supports-color + - unloader - vite-plugin-solid - webpack @@ -12068,7 +12959,7 @@ snapshots: '@tanstack/start-storage-context': 1.167.17 fetchdts: 0.1.7 h3-v2: h3@2.0.1-rc.20 - seroval: 1.5.5 + seroval: 1.6.0 transitivePeerDependencies: - crossws @@ -12097,166 +12988,166 @@ snapshots: dependencies: '@testing-library/dom': 10.4.1 - '@tiptap/core@3.29.1(@tiptap/pm@3.29.1)': + '@tiptap/core@3.29.2(@tiptap/pm@3.29.2)': dependencies: - '@tiptap/pm': 3.29.1 + '@tiptap/pm': 3.29.2 - '@tiptap/extension-blockquote@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1)': + '@tiptap/extension-blockquote@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2)': dependencies: - '@tiptap/core': 3.29.1(@tiptap/pm@3.29.1) - '@tiptap/pm': 3.29.1 + '@tiptap/core': 3.29.2(@tiptap/pm@3.29.2) + '@tiptap/pm': 3.29.2 - '@tiptap/extension-bold@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))': + '@tiptap/extension-bold@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))': dependencies: - '@tiptap/core': 3.29.1(@tiptap/pm@3.29.1) + '@tiptap/core': 3.29.2(@tiptap/pm@3.29.2) - '@tiptap/extension-bubble-menu@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1)': + '@tiptap/extension-bubble-menu@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2)': dependencies: '@floating-ui/dom': 1.8.0 - '@tiptap/core': 3.29.1(@tiptap/pm@3.29.1) - '@tiptap/pm': 3.29.1 + '@tiptap/core': 3.29.2(@tiptap/pm@3.29.2) + '@tiptap/pm': 3.29.2 optional: true - '@tiptap/extension-bullet-list@3.29.1(@tiptap/extension-list@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1))': + '@tiptap/extension-bullet-list@3.29.2(@tiptap/extension-list@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2))': dependencies: - '@tiptap/extension-list': 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1) + '@tiptap/extension-list': 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2) - '@tiptap/extension-character-count@3.29.1(@tiptap/extensions@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1))': + '@tiptap/extension-character-count@3.29.2(@tiptap/extensions@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2))': dependencies: - '@tiptap/extensions': 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1) + '@tiptap/extensions': 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2) - '@tiptap/extension-code-block@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1)': + '@tiptap/extension-code-block@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2)': dependencies: - '@tiptap/core': 3.29.1(@tiptap/pm@3.29.1) - '@tiptap/pm': 3.29.1 + '@tiptap/core': 3.29.2(@tiptap/pm@3.29.2) + '@tiptap/pm': 3.29.2 - '@tiptap/extension-code@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))': + '@tiptap/extension-code@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))': dependencies: - '@tiptap/core': 3.29.1(@tiptap/pm@3.29.1) + '@tiptap/core': 3.29.2(@tiptap/pm@3.29.2) - '@tiptap/extension-collaboration-caret@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1)(@tiptap/y-tiptap@3.0.7(prosemirror-model@1.25.11)(prosemirror-state@1.4.4)(prosemirror-view@1.42.1)(y-protocols@1.0.7(yjs@13.6.31))(yjs@13.6.31))': + '@tiptap/extension-collaboration-caret@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2)(@tiptap/y-tiptap@3.0.8(prosemirror-model@1.25.11)(prosemirror-state@1.4.4)(prosemirror-view@1.42.2)(y-protocols@1.0.7(yjs@13.6.31))(yjs@13.6.31))': dependencies: - '@tiptap/core': 3.29.1(@tiptap/pm@3.29.1) - '@tiptap/pm': 3.29.1 - '@tiptap/y-tiptap': 3.0.7(prosemirror-model@1.25.11)(prosemirror-state@1.4.4)(prosemirror-view@1.42.1)(y-protocols@1.0.7(yjs@13.6.31))(yjs@13.6.31) + '@tiptap/core': 3.29.2(@tiptap/pm@3.29.2) + '@tiptap/pm': 3.29.2 + '@tiptap/y-tiptap': 3.0.8(prosemirror-model@1.25.11)(prosemirror-state@1.4.4)(prosemirror-view@1.42.2)(y-protocols@1.0.7(yjs@13.6.31))(yjs@13.6.31) - '@tiptap/extension-collaboration@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1)(@tiptap/y-tiptap@3.0.7(prosemirror-model@1.25.11)(prosemirror-state@1.4.4)(prosemirror-view@1.42.1)(y-protocols@1.0.7(yjs@13.6.31))(yjs@13.6.31))(yjs@13.6.31)': + '@tiptap/extension-collaboration@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2)(@tiptap/y-tiptap@3.0.8(prosemirror-model@1.25.11)(prosemirror-state@1.4.4)(prosemirror-view@1.42.2)(y-protocols@1.0.7(yjs@13.6.31))(yjs@13.6.31))(yjs@13.6.31)': dependencies: - '@tiptap/core': 3.29.1(@tiptap/pm@3.29.1) - '@tiptap/pm': 3.29.1 - '@tiptap/y-tiptap': 3.0.7(prosemirror-model@1.25.11)(prosemirror-state@1.4.4)(prosemirror-view@1.42.1)(y-protocols@1.0.7(yjs@13.6.31))(yjs@13.6.31) + '@tiptap/core': 3.29.2(@tiptap/pm@3.29.2) + '@tiptap/pm': 3.29.2 + '@tiptap/y-tiptap': 3.0.8(prosemirror-model@1.25.11)(prosemirror-state@1.4.4)(prosemirror-view@1.42.2)(y-protocols@1.0.7(yjs@13.6.31))(yjs@13.6.31) yjs: 13.6.31 - '@tiptap/extension-document@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))': + '@tiptap/extension-document@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))': dependencies: - '@tiptap/core': 3.29.1(@tiptap/pm@3.29.1) + '@tiptap/core': 3.29.2(@tiptap/pm@3.29.2) - '@tiptap/extension-dropcursor@3.29.1(@tiptap/extensions@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1))': + '@tiptap/extension-dropcursor@3.29.2(@tiptap/extensions@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2))': dependencies: - '@tiptap/extensions': 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1) + '@tiptap/extensions': 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2) - '@tiptap/extension-floating-menu@3.29.1(@floating-ui/dom@1.8.0)(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1)': + '@tiptap/extension-floating-menu@3.29.2(@floating-ui/dom@1.8.0)(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2)': dependencies: '@floating-ui/dom': 1.8.0 - '@tiptap/core': 3.29.1(@tiptap/pm@3.29.1) - '@tiptap/pm': 3.29.1 + '@tiptap/core': 3.29.2(@tiptap/pm@3.29.2) + '@tiptap/pm': 3.29.2 optional: true - '@tiptap/extension-gapcursor@3.29.1(@tiptap/extensions@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1))': + '@tiptap/extension-gapcursor@3.29.2(@tiptap/extensions@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2))': dependencies: - '@tiptap/extensions': 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1) + '@tiptap/extensions': 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2) - '@tiptap/extension-hard-break@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))': + '@tiptap/extension-hard-break@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))': dependencies: - '@tiptap/core': 3.29.1(@tiptap/pm@3.29.1) + '@tiptap/core': 3.29.2(@tiptap/pm@3.29.2) - '@tiptap/extension-heading@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))': + '@tiptap/extension-heading@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))': dependencies: - '@tiptap/core': 3.29.1(@tiptap/pm@3.29.1) + '@tiptap/core': 3.29.2(@tiptap/pm@3.29.2) - '@tiptap/extension-highlight@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))': + '@tiptap/extension-highlight@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))': dependencies: - '@tiptap/core': 3.29.1(@tiptap/pm@3.29.1) + '@tiptap/core': 3.29.2(@tiptap/pm@3.29.2) - '@tiptap/extension-horizontal-rule@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1)': + '@tiptap/extension-horizontal-rule@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2)': dependencies: - '@tiptap/core': 3.29.1(@tiptap/pm@3.29.1) - '@tiptap/pm': 3.29.1 + '@tiptap/core': 3.29.2(@tiptap/pm@3.29.2) + '@tiptap/pm': 3.29.2 - '@tiptap/extension-italic@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))': + '@tiptap/extension-italic@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))': dependencies: - '@tiptap/core': 3.29.1(@tiptap/pm@3.29.1) + '@tiptap/core': 3.29.2(@tiptap/pm@3.29.2) - '@tiptap/extension-link@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1)': + '@tiptap/extension-link@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2)': dependencies: - '@tiptap/core': 3.29.1(@tiptap/pm@3.29.1) - '@tiptap/pm': 3.29.1 + '@tiptap/core': 3.29.2(@tiptap/pm@3.29.2) + '@tiptap/pm': 3.29.2 linkifyjs: 4.3.3 - '@tiptap/extension-list-item@3.29.1(@tiptap/extension-list@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1))': + '@tiptap/extension-list-item@3.29.2(@tiptap/extension-list@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2))': dependencies: - '@tiptap/extension-list': 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1) + '@tiptap/extension-list': 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2) - '@tiptap/extension-list-keymap@3.29.1(@tiptap/extension-list@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1))': + '@tiptap/extension-list-keymap@3.29.2(@tiptap/extension-list@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2))': dependencies: - '@tiptap/extension-list': 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1) + '@tiptap/extension-list': 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2) - '@tiptap/extension-list@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1)': + '@tiptap/extension-list@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2)': dependencies: - '@tiptap/core': 3.29.1(@tiptap/pm@3.29.1) - '@tiptap/pm': 3.29.1 + '@tiptap/core': 3.29.2(@tiptap/pm@3.29.2) + '@tiptap/pm': 3.29.2 - '@tiptap/extension-mathematics@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1)(katex@0.17.0)': + '@tiptap/extension-mathematics@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2)(katex@0.17.0)': dependencies: - '@tiptap/core': 3.29.1(@tiptap/pm@3.29.1) - '@tiptap/pm': 3.29.1 + '@tiptap/core': 3.29.2(@tiptap/pm@3.29.2) + '@tiptap/pm': 3.29.2 katex: 0.17.0 - '@tiptap/extension-ordered-list@3.29.1(@tiptap/extension-list@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1))': + '@tiptap/extension-ordered-list@3.29.2(@tiptap/extension-list@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2))': dependencies: - '@tiptap/extension-list': 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1) + '@tiptap/extension-list': 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2) - '@tiptap/extension-paragraph@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))': + '@tiptap/extension-paragraph@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))': dependencies: - '@tiptap/core': 3.29.1(@tiptap/pm@3.29.1) + '@tiptap/core': 3.29.2(@tiptap/pm@3.29.2) - '@tiptap/extension-placeholder@3.29.1(@tiptap/extensions@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1))': + '@tiptap/extension-placeholder@3.29.2(@tiptap/extensions@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2))': dependencies: - '@tiptap/extensions': 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1) + '@tiptap/extensions': 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2) - '@tiptap/extension-strike@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))': + '@tiptap/extension-strike@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))': dependencies: - '@tiptap/core': 3.29.1(@tiptap/pm@3.29.1) + '@tiptap/core': 3.29.2(@tiptap/pm@3.29.2) - '@tiptap/extension-table@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1)': + '@tiptap/extension-table@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2)': dependencies: - '@tiptap/core': 3.29.1(@tiptap/pm@3.29.1) - '@tiptap/pm': 3.29.1 + '@tiptap/core': 3.29.2(@tiptap/pm@3.29.2) + '@tiptap/pm': 3.29.2 - '@tiptap/extension-text-align@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))': + '@tiptap/extension-text-align@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))': dependencies: - '@tiptap/core': 3.29.1(@tiptap/pm@3.29.1) + '@tiptap/core': 3.29.2(@tiptap/pm@3.29.2) - '@tiptap/extension-text@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))': + '@tiptap/extension-text@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))': dependencies: - '@tiptap/core': 3.29.1(@tiptap/pm@3.29.1) + '@tiptap/core': 3.29.2(@tiptap/pm@3.29.2) - '@tiptap/extension-underline@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))': + '@tiptap/extension-underline@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))': dependencies: - '@tiptap/core': 3.29.1(@tiptap/pm@3.29.1) + '@tiptap/core': 3.29.2(@tiptap/pm@3.29.2) - '@tiptap/extensions@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1)': + '@tiptap/extensions@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2)': dependencies: - '@tiptap/core': 3.29.1(@tiptap/pm@3.29.1) - '@tiptap/pm': 3.29.1 + '@tiptap/core': 3.29.2(@tiptap/pm@3.29.2) + '@tiptap/pm': 3.29.2 - '@tiptap/markdown@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1)': + '@tiptap/markdown@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2)': dependencies: - '@tiptap/core': 3.29.1(@tiptap/pm@3.29.1) - '@tiptap/pm': 3.29.1 + '@tiptap/core': 3.29.2(@tiptap/pm@3.29.2) + '@tiptap/pm': 3.29.2 marked: 17.0.6 - '@tiptap/pm@3.29.1': + '@tiptap/pm@3.29.2': dependencies: prosemirror-changeset: 2.4.1 prosemirror-commands: 1.7.1 @@ -12270,58 +13161,58 @@ snapshots: prosemirror-state: 1.4.4 prosemirror-tables: 1.8.5 prosemirror-transform: 1.12.0 - prosemirror-view: 1.42.1 + prosemirror-view: 1.42.2 - '@tiptap/react@3.29.1(@floating-ui/dom@1.8.0)(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + '@tiptap/react@3.29.2(@floating-ui/dom@1.8.0)(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2)(@types/react-dom@19.2.4(@types/react@19.2.18))(@types/react@19.2.18)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: - '@tiptap/core': 3.29.1(@tiptap/pm@3.29.1) - '@tiptap/pm': 3.29.1 - '@types/react': 19.2.17 - '@types/react-dom': 19.2.3(@types/react@19.2.17) + '@tiptap/core': 3.29.2(@tiptap/pm@3.29.2) + '@tiptap/pm': 3.29.2 + '@types/react': 19.2.18 + '@types/react-dom': 19.2.4(@types/react@19.2.18) '@types/use-sync-external-store': 0.0.6 fast-equals: 5.4.1 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) use-sync-external-store: 1.6.0(react@19.2.8) optionalDependencies: - '@tiptap/extension-bubble-menu': 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1) - '@tiptap/extension-floating-menu': 3.29.1(@floating-ui/dom@1.8.0)(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1) + '@tiptap/extension-bubble-menu': 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2) + '@tiptap/extension-floating-menu': 3.29.2(@floating-ui/dom@1.8.0)(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2) transitivePeerDependencies: - '@floating-ui/dom' - '@tiptap/starter-kit@3.29.1': - dependencies: - '@tiptap/core': 3.29.1(@tiptap/pm@3.29.1) - '@tiptap/extension-blockquote': 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1) - '@tiptap/extension-bold': 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1)) - '@tiptap/extension-bullet-list': 3.29.1(@tiptap/extension-list@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1)) - '@tiptap/extension-code': 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1)) - '@tiptap/extension-code-block': 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1) - '@tiptap/extension-document': 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1)) - '@tiptap/extension-dropcursor': 3.29.1(@tiptap/extensions@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1)) - '@tiptap/extension-gapcursor': 3.29.1(@tiptap/extensions@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1)) - '@tiptap/extension-hard-break': 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1)) - '@tiptap/extension-heading': 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1)) - '@tiptap/extension-horizontal-rule': 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1) - '@tiptap/extension-italic': 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1)) - '@tiptap/extension-link': 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1) - '@tiptap/extension-list': 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1) - '@tiptap/extension-list-item': 3.29.1(@tiptap/extension-list@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1)) - '@tiptap/extension-list-keymap': 3.29.1(@tiptap/extension-list@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1)) - '@tiptap/extension-ordered-list': 3.29.1(@tiptap/extension-list@3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1)) - '@tiptap/extension-paragraph': 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1)) - '@tiptap/extension-strike': 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1)) - '@tiptap/extension-text': 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1)) - '@tiptap/extension-underline': 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1)) - '@tiptap/extensions': 3.29.1(@tiptap/core@3.29.1(@tiptap/pm@3.29.1))(@tiptap/pm@3.29.1) - '@tiptap/pm': 3.29.1 - - '@tiptap/y-tiptap@3.0.7(prosemirror-model@1.25.11)(prosemirror-state@1.4.4)(prosemirror-view@1.42.1)(y-protocols@1.0.7(yjs@13.6.31))(yjs@13.6.31)': + '@tiptap/starter-kit@3.29.2': + dependencies: + '@tiptap/core': 3.29.2(@tiptap/pm@3.29.2) + '@tiptap/extension-blockquote': 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2) + '@tiptap/extension-bold': 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2)) + '@tiptap/extension-bullet-list': 3.29.2(@tiptap/extension-list@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2)) + '@tiptap/extension-code': 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2)) + '@tiptap/extension-code-block': 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2) + '@tiptap/extension-document': 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2)) + '@tiptap/extension-dropcursor': 3.29.2(@tiptap/extensions@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2)) + '@tiptap/extension-gapcursor': 3.29.2(@tiptap/extensions@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2)) + '@tiptap/extension-hard-break': 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2)) + '@tiptap/extension-heading': 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2)) + '@tiptap/extension-horizontal-rule': 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2) + '@tiptap/extension-italic': 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2)) + '@tiptap/extension-link': 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2) + '@tiptap/extension-list': 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2) + '@tiptap/extension-list-item': 3.29.2(@tiptap/extension-list@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2)) + '@tiptap/extension-list-keymap': 3.29.2(@tiptap/extension-list@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2)) + '@tiptap/extension-ordered-list': 3.29.2(@tiptap/extension-list@3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2)) + '@tiptap/extension-paragraph': 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2)) + '@tiptap/extension-strike': 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2)) + '@tiptap/extension-text': 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2)) + '@tiptap/extension-underline': 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2)) + '@tiptap/extensions': 3.29.2(@tiptap/core@3.29.2(@tiptap/pm@3.29.2))(@tiptap/pm@3.29.2) + '@tiptap/pm': 3.29.2 + + '@tiptap/y-tiptap@3.0.8(prosemirror-model@1.25.11)(prosemirror-state@1.4.4)(prosemirror-view@1.42.2)(y-protocols@1.0.7(yjs@13.6.31))(yjs@13.6.31)': dependencies: lib0: 0.2.117 prosemirror-model: 1.25.11 prosemirror-state: 1.4.4 - prosemirror-view: 1.42.1 + prosemirror-view: 1.42.2 y-protocols: 1.0.7(yjs@13.6.31) yjs: 13.6.31 @@ -12337,14 +13228,9 @@ snapshots: '@ts-morph/common@0.27.0': dependencies: fast-glob: 3.3.3 - minimatch: 10.2.5 + minimatch: 10.2.6 path-browserify: 1.0.1 - '@tybys/wasm-util@0.10.2': - dependencies: - tslib: 2.8.1 - optional: true - '@tybys/wasm-util@0.10.3': dependencies: tslib: 2.8.1 @@ -12396,7 +13282,7 @@ snapshots: '@types/d3-format@3.0.4': {} - '@types/d3-geo@3.1.0': + '@types/d3-geo@3.1.1': dependencies: '@types/geojson': 7946.0.16 @@ -12412,7 +13298,7 @@ snapshots: '@types/d3-quadtree@3.0.6': {} - '@types/d3-random@3.0.3': {} + '@types/d3-random@3.0.4': {} '@types/d3-scale-chromatic@3.1.0': {} @@ -12457,13 +13343,13 @@ snapshots: '@types/d3-fetch': 3.0.7 '@types/d3-force': 3.0.10 '@types/d3-format': 3.0.4 - '@types/d3-geo': 3.1.0 + '@types/d3-geo': 3.1.1 '@types/d3-hierarchy': 3.1.7 '@types/d3-interpolate': 3.0.4 '@types/d3-path': 3.1.1 '@types/d3-polygon': 3.0.2 '@types/d3-quadtree': 3.0.6 - '@types/d3-random': 3.0.3 + '@types/d3-random': 3.0.4 '@types/d3-scale': 4.0.9 '@types/d3-scale-chromatic': 3.1.0 '@types/d3-selection': 3.0.11 @@ -12490,7 +13376,7 @@ snapshots: '@types/geojson@7946.0.16': {} - '@types/hast@3.0.4': + '@types/hast@3.0.5': dependencies: '@types/unist': 3.0.3 @@ -12508,32 +13394,36 @@ snapshots: '@types/ms@2.1.0': {} - '@types/node@26.1.1': + '@types/node@26.1.2': dependencies: undici-types: 8.3.0 '@types/papaparse@5.5.2': dependencies: - '@types/node': 26.1.1 + '@types/node': 26.1.2 '@types/pg@8.20.0': dependencies: - '@types/node': 26.1.1 + '@types/node': 26.1.2 pg-protocol: 1.15.0 pg-types: 2.2.0 optional: true - '@types/react-dom@19.2.3(@types/react@19.2.17)': + '@types/prettier@3.0.0': + dependencies: + prettier: 3.9.6 + + '@types/react-dom@19.2.4(@types/react@19.2.18)': dependencies: - '@types/react': 19.2.17 + '@types/react': 19.2.18 - '@types/react@19.2.17': + '@types/react@19.2.18': dependencies: csstype: 3.2.3 '@types/set-cookie-parser@2.4.10': dependencies: - '@types/node': 26.1.1 + '@types/node': 26.1.2 optional: true '@types/statuses@2.0.6': @@ -12549,9 +13439,9 @@ snapshots: '@types/validate-npm-package-name@4.0.2': {} - '@typescript-eslint/types@8.61.1': {} + '@typescript-eslint/types@8.65.0': {} - '@ungap/structured-clone@1.3.1': {} + '@ungap/structured-clone@1.3.3': {} '@upsetjs/venn.js@2.0.0': optionalDependencies: @@ -12560,37 +13450,37 @@ snapshots: '@vercel/oidc@3.2.0': {} - '@vitejs/plugin-react@6.0.4(@rolldown/plugin-babel@0.2.3(@babel/core@7.29.7)(@babel/runtime@7.29.7)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(rolldown@1.1.2))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(babel-plugin-react-compiler@1.0.0)': + '@vitejs/plugin-react@6.0.5(@rolldown/plugin-babel@0.2.3(@babel/core@7.29.7)(@babel/runtime@7.29.7)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(rolldown@1.1.2))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(babel-plugin-react-compiler@1.0.0)': dependencies: '@rolldown/pluginutils': 1.0.1 - vite: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)' + vite: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)' optionalDependencies: - '@rolldown/plugin-babel': 0.2.3(@babel/core@7.29.7)(@babel/runtime@7.29.7)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(rolldown@1.1.2) + '@rolldown/plugin-babel': 0.2.3(@babel/core@7.29.7)(@babel/runtime@7.29.7)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(rolldown@1.1.2) babel-plugin-react-compiler: 1.0.0 - '@vitest/browser-preview@4.1.10(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(msw@2.14.6(@types/node@26.1.1)(typescript@6.0.3))(vitest@4.1.10)': + '@vitest/browser-preview@4.1.10(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(msw@2.14.6(@types/node@26.1.2)(typescript@6.0.3))(vitest@4.1.10)': dependencies: '@testing-library/dom': 10.4.1 '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1) - '@vitest/browser': 4.1.10(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(msw@2.14.6(@types/node@26.1.1)(typescript@6.0.3))(vitest@4.1.10) - vitest: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.1)(@vitest/browser-preview@4.1.10)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(jsdom@28.1.0(@noble/hashes@2.2.0))(msw@2.14.6(@types/node@26.1.1)(typescript@6.0.3)) + '@vitest/browser': 4.1.10(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(msw@2.14.6(@types/node@26.1.2)(typescript@6.0.3))(vitest@4.1.10) + vitest: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.2)(@vitest/browser-preview@4.1.10)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(jsdom@28.1.0(@noble/hashes@2.2.0))(msw@2.14.6(@types/node@26.1.2)(typescript@6.0.3)) transitivePeerDependencies: - bufferutil - msw - utf-8-validate - vite - '@vitest/browser@4.1.10(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(msw@2.14.6(@types/node@26.1.1)(typescript@6.0.3))(vitest@4.1.10)': + '@vitest/browser@4.1.10(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(msw@2.14.6(@types/node@26.1.2)(typescript@6.0.3))(vitest@4.1.10)': dependencies: '@blazediff/core': 1.9.1 - '@vitest/mocker': 4.1.10(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(msw@2.14.6(@types/node@26.1.1)(typescript@6.0.3)) + '@vitest/mocker': 4.1.10(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(msw@2.14.6(@types/node@26.1.2)(typescript@6.0.3)) '@vitest/utils': 4.1.10 magic-string: 0.30.21 pngjs: 7.0.0 sirv: 3.0.2 - tinyrainbow: 3.1.0 - vitest: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.1)(@vitest/browser-preview@4.1.10)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(jsdom@28.1.0(@noble/hashes@2.2.0))(msw@2.14.6(@types/node@26.1.1)(typescript@6.0.3)) - ws: 8.21.0 + tinyrainbow: 3.1.1 + vitest: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.2)(@vitest/browser-preview@4.1.10)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(jsdom@28.1.0(@noble/hashes@2.2.0))(msw@2.14.6(@types/node@26.1.2)(typescript@6.0.3)) + ws: 8.21.1 transitivePeerDependencies: - bufferutil - msw @@ -12604,20 +13494,20 @@ snapshots: '@vitest/spy': 4.1.10 '@vitest/utils': 4.1.10 chai: 6.2.2 - tinyrainbow: 3.1.0 + tinyrainbow: 3.1.1 - '@vitest/mocker@4.1.10(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(msw@2.14.6(@types/node@26.1.1)(typescript@6.0.3))': + '@vitest/mocker@4.1.10(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(msw@2.14.6(@types/node@26.1.2)(typescript@6.0.3))': dependencies: '@vitest/spy': 4.1.10 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - msw: 2.14.6(@types/node@26.1.1)(typescript@6.0.3) - vite: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)' + msw: 2.14.6(@types/node@26.1.2)(typescript@6.0.3) + vite: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)' '@vitest/pretty-format@4.1.10': dependencies: - tinyrainbow: 3.1.0 + tinyrainbow: 3.1.1 '@vitest/runner@4.1.10': dependencies: @@ -12637,16 +13527,16 @@ snapshots: dependencies: '@vitest/pretty-format': 4.1.10 convert-source-map: 2.0.0 - tinyrainbow: 3.1.0 + tinyrainbow: 3.1.1 - '@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)': + '@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)': dependencies: '@oxc-project/runtime': 0.138.0 '@oxc-project/types': 0.138.0 - lightningcss: 1.32.0 - postcss: 8.5.16 + lightningcss: 1.33.0 + postcss: 8.5.25 optionalDependencies: - '@types/node': 26.1.1 + '@types/node': 26.1.2 esbuild: 0.28.1 fsevents: 2.3.3 jiti: 2.7.0 @@ -12654,16 +13544,16 @@ snapshots: typescript: 6.0.3 yaml: 2.9.0 - '@voidzero-dev/vite-plus-core@0.2.6(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)': + '@voidzero-dev/vite-plus-core@0.2.7(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)': dependencies: '@oxc-project/runtime': 0.141.0 '@oxc-project/types': 0.141.0 lightningcss: 1.33.0 - postcss: 8.5.18 + postcss: 8.5.25 yuku-codegen: 0.5.48 yuku-parser: 0.5.48 optionalDependencies: - '@types/node': 26.1.1 + '@types/node': 26.1.2 esbuild: 0.28.1 fsevents: 2.3.3 jiti: 2.7.0 @@ -12671,33 +13561,33 @@ snapshots: typescript: 6.0.3 yaml: 2.9.0 - '@voidzero-dev/vite-plus-darwin-arm64@0.2.6': + '@voidzero-dev/vite-plus-darwin-arm64@0.2.7': optional: true - '@voidzero-dev/vite-plus-darwin-x64@0.2.6': + '@voidzero-dev/vite-plus-darwin-x64@0.2.7': optional: true - '@voidzero-dev/vite-plus-linux-arm64-gnu@0.2.6': + '@voidzero-dev/vite-plus-linux-arm64-gnu@0.2.7': optional: true - '@voidzero-dev/vite-plus-linux-arm64-musl@0.2.6': + '@voidzero-dev/vite-plus-linux-arm64-musl@0.2.7': optional: true - '@voidzero-dev/vite-plus-linux-x64-gnu@0.2.6': + '@voidzero-dev/vite-plus-linux-x64-gnu@0.2.7': optional: true - '@voidzero-dev/vite-plus-linux-x64-musl@0.2.6': + '@voidzero-dev/vite-plus-linux-x64-musl@0.2.7': optional: true - '@voidzero-dev/vite-plus-win32-arm64-msvc@0.2.6': + '@voidzero-dev/vite-plus-win32-arm64-msvc@0.2.7': optional: true - '@voidzero-dev/vite-plus-win32-x64-msvc@0.2.6': + '@voidzero-dev/vite-plus-win32-x64-msvc@0.2.7': optional: true '@vue/compiler-core@3.5.38': dependencies: - '@babel/parser': 7.29.7 + '@babel/parser': 7.29.8 '@vue/shared': 3.5.38 entities: 7.0.1 estree-walker: 2.0.2 @@ -12710,14 +13600,14 @@ snapshots: '@vue/compiler-sfc@3.5.38': dependencies: - '@babel/parser': 7.29.7 + '@babel/parser': 7.29.8 '@vue/compiler-core': 3.5.38 '@vue/compiler-dom': 3.5.38 '@vue/compiler-ssr': 3.5.38 '@vue/shared': 3.5.38 estree-walker: 2.0.2 magic-string: 0.30.21 - postcss: 8.5.18 + postcss: 8.5.25 source-map-js: 1.2.1 '@vue/compiler-ssr@3.5.38': @@ -12830,15 +13720,17 @@ snapshots: mime-types: 3.0.2 negotiator: 1.0.0 - acorn-import-attributes@1.9.5(acorn@8.17.0): + acorn-jsx@5.3.2(acorn@8.18.0): dependencies: - acorn: 8.17.0 + acorn: 8.18.0 - acorn-jsx@5.3.2(acorn@8.17.0): - dependencies: - acorn: 8.17.0 + acorn@8.18.0: {} - acorn@8.17.0: {} + agent-base@6.0.2: + dependencies: + debug: 4.4.3 + transitivePeerDependencies: + - supports-color agent-base@7.1.4: optional: true @@ -12852,30 +13744,30 @@ snapshots: prompts: 2.4.2 yaml: 2.9.0 - agents@0.19.0(patch_hash=b4925f176922f992a0781ffa357da123a7e05876e924b4ff009585baa101bf4d)(@ai-sdk/react@4.0.40(react@19.2.8)(zod@4.4.3))(@babel/core@7.29.7)(@babel/runtime@7.29.7)(@cloudflare/workers-types@5.20260727.1)(@tanstack/ai@0.22.0(@opentelemetry/api@1.9.1))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(ai@7.0.37(zod@4.4.3))(chat@4.31.0(ai@7.0.37(zod@4.4.3))(zod@4.4.3))(just-bash@3.0.2)(react@19.2.8)(rolldown@1.1.2)(zod@4.4.3): + agents@0.19.0(patch_hash=b4925f176922f992a0781ffa357da123a7e05876e924b4ff009585baa101bf4d)(@ai-sdk/react@4.0.51(react@19.2.8)(zod@4.4.3))(@babel/core@7.29.7)(@babel/runtime@7.29.7)(@cloudflare/workers-types@5.20260801.1)(@tanstack/ai@0.22.0(@opentelemetry/api@1.9.1))(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(ai@7.0.48(zod@4.4.3))(chat@4.31.0(ai@7.0.48(zod@4.4.3))(zod@4.4.3))(just-bash@3.0.2)(react@19.2.8)(rolldown@1.1.2)(zod@4.4.3): dependencies: '@babel/plugin-proposal-decorators': 8.0.2(@babel/core@7.29.7) '@cfworker/json-schema': 4.1.1 - '@cloudflare/codemode': 0.5.0(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@tanstack/ai@0.22.0(@opentelemetry/api@1.9.1))(ai@7.0.37(zod@4.4.3))(zod@4.4.3) + '@cloudflare/codemode': 0.5.1(@modelcontextprotocol/sdk@1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3))(@tanstack/ai@0.22.0(@opentelemetry/api@1.9.1))(ai@7.0.48(zod@4.4.3))(zod@4.4.3) '@modelcontextprotocol/sdk': 1.29.0(@cfworker/json-schema@4.1.1)(zod@4.4.3) - '@rolldown/plugin-babel': 0.2.3(@babel/core@7.29.7)(@babel/runtime@7.29.7)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(rolldown@1.1.2) + '@rolldown/plugin-babel': 0.2.3(@babel/core@7.29.7)(@babel/runtime@7.29.7)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(rolldown@1.1.2) cron-schedule: 6.0.0 esbuild: 0.28.1 mimetext: 3.0.28 nanoid: 5.1.16 - partyserver: 0.5.8(@cloudflare/workers-types@5.20260727.1) + partyserver: 0.5.9(@cloudflare/workers-types@5.20260801.1) partysocket: 1.3.0(react@19.2.8) react: 19.2.8 yaml: 2.9.0 yargs: 18.0.0 zod: 4.4.3 optionalDependencies: - '@ai-sdk/react': 4.0.40(react@19.2.8)(zod@4.4.3) + '@ai-sdk/react': 4.0.51(react@19.2.8)(zod@4.4.3) '@tanstack/ai': 0.22.0(@opentelemetry/api@1.9.1) - ai: 7.0.37(zod@4.4.3) - chat: 4.31.0(ai@7.0.37(zod@4.4.3))(zod@4.4.3) + ai: 7.0.48(zod@4.4.3) + chat: 4.31.0(ai@7.0.48(zod@4.4.3))(zod@4.4.3) just-bash: 3.0.2 - vite: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)' + vite: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)' transitivePeerDependencies: - '@babel/core' - '@babel/plugin-transform-runtime' @@ -12884,11 +13776,11 @@ snapshots: - rolldown - supports-color - ai@7.0.37(zod@4.4.3): + ai@7.0.48(zod@4.4.3): dependencies: - '@ai-sdk/gateway': 4.0.28(zod@4.4.3) - '@ai-sdk/provider': 4.0.3 - '@ai-sdk/provider-utils': 5.0.12(zod@4.4.3) + '@ai-sdk/gateway': 4.0.37(zod@4.4.3) + '@ai-sdk/provider': 4.0.4 + '@ai-sdk/provider-utils': 5.0.18(zod@4.4.3) zod: 4.4.3 ajv-formats@2.1.1(ajv@8.20.0): @@ -12909,12 +13801,16 @@ snapshots: ajv@8.20.0: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.1.3 + fast-uri: 3.1.5 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 ansi-colors@4.1.3: {} + ansi-escapes@7.3.0: + dependencies: + environment: 1.1.0 + ansi-regex@5.0.1: {} ansi-regex@6.2.2: {} @@ -12931,12 +13827,20 @@ snapshots: anynum@1.0.1: {} + arctic@3.7.0: + dependencies: + '@oslojs/crypto': 1.0.1 + '@oslojs/encoding': 1.1.0 + '@oslojs/jwt': 0.2.0 + argparse@1.0.10: dependencies: sprintf-js: 1.0.3 argparse@2.0.1: {} + argue-cli@3.1.0: {} + aria-query@5.3.0: dependencies: dequal: 2.0.3 @@ -12949,8 +13853,54 @@ snapshots: dependencies: tslib: 2.8.1 + astring@1.9.0: {} + async-lock@1.4.1: {} + asynckit@0.4.0: {} + + atmn@1.1.16(@types/node@26.1.2)(@types/react@19.2.18)(typescript@6.0.3): + dependencies: + '@inquirer/prompts': 7.10.1(@types/node@26.1.2) + '@mishieck/ink-titled-box': 0.3.0(ink@6.8.0(@types/react@19.2.18)(react@19.2.8))(react@19.2.8)(typescript@6.0.3) + '@tanstack/react-query': 5.101.4(react@19.2.8) + '@types/prettier': 3.0.0 + arctic: 3.7.0 + axios: 1.19.0 + cfonts: 3.3.1 + chalk: 5.6.2 + clipboardy: 5.3.2 + commander: 14.0.3 + conf: 13.1.0 + dotenv: 17.4.2 + ervy: 1.0.7 + ink: 6.8.0(@types/react@19.2.18)(react@19.2.8) + ink-big-text: 2.0.0(ink@6.8.0(@types/react@19.2.18)(react@19.2.8))(react@19.2.8) + ink-chart: 0.1.1(ink@6.8.0(@types/react@19.2.18)(react@19.2.8))(react@19.2.8) + ink-confirm-input: 2.0.0(ink@6.8.0(@types/react@19.2.18)(react@19.2.8))(react@19.2.8) + ink-scroll-list: 0.4.1(ink@6.8.0(@types/react@19.2.18)(react@19.2.8))(react@19.2.8) + ink-scroll-view: 0.3.7(ink@6.8.0(@types/react@19.2.18)(react@19.2.8))(react@19.2.8) + ink-select-input: 6.2.0(ink@6.8.0(@types/react@19.2.18)(react@19.2.8))(react@19.2.8) + ink-spinner: 5.0.0(ink@6.8.0(@types/react@19.2.18)(react@19.2.8))(react@19.2.8) + ink-table: 3.1.0(ink@6.8.0(@types/react@19.2.18)(react@19.2.8))(react@19.2.8) + ink-text-input: 6.0.0(ink@6.8.0(@types/react@19.2.18)(react@19.2.8))(react@19.2.8) + inquirer: 12.11.1(@types/node@26.1.2) + jiti: 2.7.0 + open: 10.2.0 + prettier: 3.9.6 + react: 19.2.8 + yocto-spinner: 1.2.2 + zod: 4.4.3 + transitivePeerDependencies: + - '@types/node' + - '@types/react' + - bufferutil + - debug + - react-devtools-core + - supports-color + - typescript + - utf-8-validate + atomically@1.7.0: {} atomically@2.1.1: @@ -12958,16 +13908,18 @@ snapshots: stubborn-fs: 2.0.0 when-exit: 2.1.5 - autumn-js@1.2.44(better-auth@1.6.25(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(@tanstack/react-start@1.168.32(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.28.17)(pg@8.22.0)(sql.js@1.14.1))(pg@8.22.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(solid-js@1.9.12)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vitest@4.1.10)(vue@3.5.38(typescript@6.0.3)))(better-call@1.3.7(zod@4.4.3))(express@5.2.1)(hono@4.12.27)(react@19.2.8): + auto-bind@5.0.1: {} + + autumn-js@1.2.45(better-auth@1.6.25(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(@tanstack/react-start@1.168.32(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(rolldown@1.1.2)(rollup@4.62.2))(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.29.4)(pg@8.22.0)(sql.js@1.14.1))(pg@8.22.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(solid-js@1.9.12)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vitest@4.1.10)(vue@3.5.38(typescript@6.0.3)))(better-call@1.3.7(zod@4.4.3))(express@5.2.1)(hono@4.12.33)(react@19.2.8): dependencies: query-string: 9.4.1 rou3: 0.6.3 zod: 4.4.3 optionalDependencies: - better-auth: 1.6.25(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(@tanstack/react-start@1.168.32(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.28.17)(pg@8.22.0)(sql.js@1.14.1))(pg@8.22.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(solid-js@1.9.12)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vitest@4.1.10)(vue@3.5.38(typescript@6.0.3)) + better-auth: 1.6.25(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(@tanstack/react-start@1.168.32(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(rolldown@1.1.2)(rollup@4.62.2))(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.29.4)(pg@8.22.0)(sql.js@1.14.1))(pg@8.22.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(solid-js@1.9.12)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vitest@4.1.10)(vue@3.5.38(typescript@6.0.3)) better-call: 1.3.7(zod@4.4.3) express: 5.2.1 - hono: 4.12.27 + hono: 4.12.33 react: 19.2.8 available-typed-arrays@1.0.7: @@ -12976,6 +13928,16 @@ snapshots: aws4fetch@1.0.20: {} + axios@1.19.0: + dependencies: + follow-redirects: 1.16.0 + form-data: 4.0.6 + https-proxy-agent: 5.0.1 + proxy-from-env: 2.1.0 + transitivePeerDependencies: + - debug + - supports-color + axobject-query@4.1.0: {} aywson@0.0.16: @@ -12986,15 +13948,15 @@ snapshots: babel-dead-code-elimination@1.0.12: dependencies: '@babel/core': 7.29.7 - '@babel/parser': 7.29.7 - '@babel/traverse': 7.29.7 - '@babel/types': 7.29.7 + '@babel/parser': 7.29.8 + '@babel/traverse': 7.29.8 + '@babel/types': 7.29.8 transitivePeerDependencies: - supports-color babel-plugin-react-compiler@1.0.0: dependencies: - '@babel/types': 7.29.0 + '@babel/types': 7.29.8 bail@2.0.2: {} @@ -13004,37 +13966,37 @@ snapshots: base64-js@1.5.1: {} - baseline-browser-mapping@2.10.40: {} + baseline-browser-mapping@2.11.10: {} - better-auth@1.6.25(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(@tanstack/react-start@1.168.32(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.28.17)(pg@8.22.0)(sql.js@1.14.1))(pg@8.22.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(solid-js@1.9.12)(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vitest@4.1.10)(vue@3.5.38(typescript@6.0.3)): + better-auth@1.6.25(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(@tanstack/react-start@1.168.32(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(rolldown@1.1.2)(rollup@4.62.2))(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.29.4)(pg@8.22.0)(sql.js@1.14.1))(pg@8.22.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(solid-js@1.9.12)(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vitest@4.1.10)(vue@3.5.38(typescript@6.0.3)): dependencies: - '@better-auth/core': 1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.3)(kysely@0.28.17)(nanostores@1.3.0) - '@better-auth/drizzle-adapter': 1.6.25(@better-auth/core@1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.3)(kysely@0.28.17)(nanostores@1.3.0))(@better-auth/utils@0.4.2)(drizzle-orm@0.45.2(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.28.17)(pg@8.22.0)(sql.js@1.14.1)) - '@better-auth/kysely-adapter': 1.6.25(@better-auth/core@1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.3)(kysely@0.28.17)(nanostores@1.3.0))(@better-auth/utils@0.4.2)(kysely@0.28.17) - '@better-auth/memory-adapter': 1.6.25(@better-auth/core@1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.3)(kysely@0.28.17)(nanostores@1.3.0))(@better-auth/utils@0.4.2) - '@better-auth/mongo-adapter': 1.6.25(@better-auth/core@1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.3)(kysely@0.28.17)(nanostores@1.3.0))(@better-auth/utils@0.4.2) - '@better-auth/prisma-adapter': 1.6.25(@better-auth/core@1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.3)(kysely@0.28.17)(nanostores@1.3.0))(@better-auth/utils@0.4.2) - '@better-auth/telemetry': 1.6.25(@better-auth/core@1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.3)(kysely@0.28.17)(nanostores@1.3.0))(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1) + '@better-auth/core': 1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.7)(kysely@0.29.4)(nanostores@1.4.2) + '@better-auth/drizzle-adapter': 1.6.25(@better-auth/core@1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.7)(kysely@0.29.4)(nanostores@1.4.2))(@better-auth/utils@0.4.2)(drizzle-orm@0.45.2(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.29.4)(pg@8.22.0)(sql.js@1.14.1)) + '@better-auth/kysely-adapter': 1.6.25(@better-auth/core@1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.7)(kysely@0.29.4)(nanostores@1.4.2))(@better-auth/utils@0.4.2)(kysely@0.29.4) + '@better-auth/memory-adapter': 1.6.25(@better-auth/core@1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.7)(kysely@0.29.4)(nanostores@1.4.2))(@better-auth/utils@0.4.2) + '@better-auth/mongo-adapter': 1.6.25(@better-auth/core@1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.7)(kysely@0.29.4)(nanostores@1.4.2))(@better-auth/utils@0.4.2) + '@better-auth/prisma-adapter': 1.6.25(@better-auth/core@1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.7)(kysely@0.29.4)(nanostores@1.4.2))(@better-auth/utils@0.4.2) + '@better-auth/telemetry': 1.6.25(@better-auth/core@1.6.25(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.7)(kysely@0.29.4)(nanostores@1.4.2))(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1) '@better-auth/utils': 0.4.2 '@better-fetch/fetch': 1.3.1 '@noble/ciphers': 2.2.0 '@noble/hashes': 2.2.0 better-call: 1.3.7(zod@4.4.3) defu: 6.1.7 - jose: 6.2.3 - kysely: 0.28.17 - nanostores: 1.3.0 + jose: 6.2.7 + kysely: 0.29.4 + nanostores: 1.4.2 zod: 4.4.3 optionalDependencies: - '@tanstack/react-start': 1.168.32(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + '@tanstack/react-start': 1.168.32(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(rolldown@1.1.2)(rollup@4.62.2) drizzle-kit: 0.31.10 - drizzle-orm: 0.45.2(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.28.17)(pg@8.22.0)(sql.js@1.14.1) + drizzle-orm: 0.45.2(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.29.4)(pg@8.22.0)(sql.js@1.14.1) pg: 8.22.0 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) solid-js: 1.9.12 - svelte: 5.56.3(@typescript-eslint/types@8.61.1) - vitest: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.1)(@vitest/browser-preview@4.1.10)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(jsdom@28.1.0(@noble/hashes@2.2.0))(msw@2.14.6(@types/node@26.1.1)(typescript@6.0.3)) + svelte: 5.56.3(@typescript-eslint/types@8.65.0) + vitest: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.2)(@vitest/browser-preview@4.1.10)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(jsdom@28.1.0(@noble/hashes@2.2.0))(msw@2.14.6(@types/node@26.1.2)(typescript@6.0.3)) vue: 3.5.38(typescript@6.0.3) transitivePeerDependencies: - '@cloudflare/workers-types' @@ -13079,12 +14041,12 @@ snapshots: boolbase@2.0.0: {} - brace-expansion@1.1.16: + brace-expansion@1.1.18: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@5.0.7: + brace-expansion@5.0.9: dependencies: balanced-match: 4.0.4 @@ -13092,13 +14054,13 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.28.4: + browserslist@4.28.7: dependencies: - baseline-browser-mapping: 2.10.40 - caniuse-lite: 1.0.30001800 - electron-to-chromium: 1.5.383 - node-releases: 2.0.50 - update-browserslist-db: 1.2.3(browserslist@4.28.4) + baseline-browser-mapping: 2.11.10 + caniuse-lite: 1.0.30001806 + electron-to-chromium: 1.5.399 + node-releases: 2.0.51 + update-browserslist-db: 1.2.3(browserslist@4.28.7) buffer-from@1.1.2: {} @@ -13140,14 +14102,24 @@ snapshots: camelcase@8.0.0: {} - caniuse-lite@1.0.30001800: {} + caniuse-lite@1.0.30001806: {} capnweb@0.8.0: {} ccount@2.0.1: {} + cfonts@3.3.1: + dependencies: + supports-color: 8.1.1 + window-size: 1.1.1 + chai@6.2.2: {} + chalk@3.0.0: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + chalk@4.1.2: dependencies: ansi-styles: 4.3.0 @@ -13163,7 +14135,9 @@ snapshots: character-reference-invalid@2.0.1: {} - chat@4.31.0(ai@7.0.37(zod@4.4.3))(zod@4.4.3): + chardet@2.2.0: {} + + chat@4.31.0(ai@7.0.48(zod@4.4.3))(zod@4.4.3): dependencies: '@workflow/serde': 4.1.0-beta.2 mdast-util-to-string: 4.0.0 @@ -13173,7 +14147,7 @@ snapshots: remend: 1.3.0 unified: 11.0.5 optionalDependencies: - ai: 7.0.37(zod@4.4.3) + ai: 7.0.48(zod@4.4.3) zod: 4.4.3 transitivePeerDependencies: - supports-color @@ -13195,14 +14169,37 @@ snapshots: clean-git-ref@2.0.1: {} + cli-boxes@3.0.0: {} + + cli-cursor@4.0.0: + dependencies: + restore-cursor: 4.0.0 + cli-cursor@5.0.0: dependencies: restore-cursor: 5.1.0 cli-spinners@2.9.2: {} - cli-width@4.1.0: - optional: true + cli-truncate@5.2.0: + dependencies: + slice-ansi: 8.0.0 + string-width: 8.2.2 + + cli-width@4.1.0: {} + + clipboard-image@0.1.0: + dependencies: + run-jxa: 3.0.0 + + clipboardy@5.3.2: + dependencies: + clipboard-image: 0.1.0 + execa: 9.6.1 + is-wayland: 0.1.0 + is-wsl: 3.1.1 + is64bit: 2.0.0 + powershell-utils: 0.2.0 cliui@8.0.1: dependencies: @@ -13221,12 +14218,20 @@ snapshots: code-block-writer@13.0.3: {} + code-excerpt@4.0.0: + dependencies: + convert-to-spaces: 2.0.1 + color-convert@2.0.1: dependencies: color-name: 1.1.4 color-name@1.1.4: {} + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + comma-separated-tokens@2.0.3: {} commander@11.1.0: {} @@ -13254,13 +14259,25 @@ snapshots: pkg-up: 3.1.0 semver: 7.8.5 + conf@13.1.0: + dependencies: + ajv: 8.20.0 + ajv-formats: 3.0.1(ajv@8.20.0) + atomically: 2.1.1 + debounce-fn: 6.0.0 + dot-prop: 9.0.0 + env-paths: 3.0.0 + json-schema-typed: 8.0.2 + semver: 7.8.5 + uint8array-extras: 1.5.0 + conf@15.1.0: dependencies: ajv: 8.20.0 ajv-formats: 3.0.1(ajv@8.20.0) atomically: 2.1.1 debounce-fn: 6.0.0 - dot-prop: 10.1.0 + dot-prop: 10.2.0 env-paths: 3.0.0 json-schema-typed: 8.0.2 semver: 7.8.5 @@ -13282,13 +14299,15 @@ snapshots: dependencies: '@conventional-changelog/template': 1.2.1 - conventional-commits-parser@7.0.1: + conventional-commits-parser@7.1.2: dependencies: '@simple-libs/stream-utils': 2.0.0 - meow: 14.1.0 + argue-cli: 3.1.0 convert-source-map@2.0.0: {} + convert-to-spaces@2.0.1: {} + cookie-es@3.1.1: {} cookie-signature@1.2.2: {} @@ -13314,9 +14333,9 @@ snapshots: dependencies: layout-base: 2.0.1 - cosmiconfig-typescript-loader@6.3.0(@types/node@26.1.1)(cosmiconfig@9.0.2(typescript@6.0.3))(typescript@6.0.3): + cosmiconfig-typescript-loader@6.3.0(@types/node@26.1.2)(cosmiconfig@9.0.2(typescript@6.0.3))(typescript@6.0.3): dependencies: - '@types/node': 26.1.1 + '@types/node': 26.1.2 cosmiconfig: 9.0.2(typescript@6.0.3) jiti: 2.6.1 typescript: 6.0.3 @@ -13325,7 +14344,7 @@ snapshots: dependencies: env-paths: 2.2.1 import-fresh: 3.3.1 - js-yaml: 4.3.0 + js-yaml: 4.3.1 parse-json: 5.2.0 optionalDependencies: typescript: 6.0.3 @@ -13342,6 +14361,10 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + crypto-random-string@4.0.0: + dependencies: + type-fest: 1.4.0 + css-select@7.0.0: dependencies: boolbase: 2.0.0 @@ -13365,24 +14388,24 @@ snapshots: cssstyle@6.2.0: dependencies: '@asamuzakjp/css-color': 5.1.11 - '@csstools/css-syntax-patches-for-csstree': 1.1.6(css-tree@3.2.1) + '@csstools/css-syntax-patches-for-csstree': 1.1.7(css-tree@3.2.1) css-tree: 3.2.1 lru-cache: 11.5.2 optional: true csstype@3.2.3: {} - cytoscape-cose-bilkent@4.1.0(cytoscape@3.33.3): + cytoscape-cose-bilkent@4.1.0(cytoscape@3.34.0): dependencies: cose-base: 1.0.3 - cytoscape: 3.33.3 + cytoscape: 3.34.0 - cytoscape-fcose@2.2.0(cytoscape@3.33.3): + cytoscape-fcose@2.2.0(cytoscape@3.34.0): dependencies: cose-base: 2.2.0 - cytoscape: 3.33.3 + cytoscape: 3.34.0 - cytoscape@3.33.3: {} + cytoscape@3.34.0: {} d3-array@2.12.1: dependencies: @@ -13620,12 +14643,18 @@ snapshots: define-lazy-prop@3.0.0: {} + define-property@1.0.0: + dependencies: + is-descriptor: 1.0.4 + defu@6.1.7: {} delaunator@5.1.0: dependencies: robust-predicates: 3.0.3 + delayed-stream@1.0.0: {} + depd@2.0.0: {} dequal@2.0.3: {} @@ -13634,14 +14663,14 @@ snapshots: dependencies: '@oxc-project/types': 0.132.0 fast-glob: 3.3.3 - minimatch: 10.2.5 + minimatch: 10.2.6 oxc-parser: 0.132.0 - oxc-resolver: 11.21.3 + oxc-resolver: 11.24.2 typescript: 5.9.3 detect-libc@2.1.2: {} - devalue@5.8.1: {} + devalue@5.9.0: {} devlop@1.1.0: dependencies: @@ -13677,7 +14706,7 @@ snapshots: dependencies: domelementtype: 3.0.0 - dompurify@3.4.11: + dompurify@3.4.12: optionalDependencies: '@types/trusted-types': 2.0.7 @@ -13693,14 +14722,18 @@ snapshots: domelementtype: 3.0.0 domhandler: 6.0.1 - dot-prop@10.1.0: + dot-prop@10.2.0: dependencies: - type-fest: 5.7.0 + type-fest: 5.8.0 dot-prop@6.0.1: dependencies: is-obj: 2.0.0 + dot-prop@9.0.0: + dependencies: + type-fest: 4.41.0 + dotenv@17.4.2: {} drizzle-kit@0.31.10: @@ -13708,14 +14741,14 @@ snapshots: '@drizzle-team/brocli': 0.10.2 '@esbuild-kit/esm-loader': 2.6.5 esbuild: 0.25.12 - tsx: 4.23.0 + tsx: 4.23.1 - drizzle-orm@0.45.2(@cloudflare/workers-types@5.20260727.1)(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.28.17)(pg@8.22.0)(sql.js@1.14.1): + drizzle-orm@0.45.2(@cloudflare/workers-types@5.20260801.1)(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.29.4)(pg@8.22.0)(sql.js@1.14.1): optionalDependencies: - '@cloudflare/workers-types': 5.20260727.1 + '@cloudflare/workers-types': 5.20260801.1 '@opentelemetry/api': 1.9.1 '@types/pg': 8.20.0 - kysely: 0.28.17 + kysely: 0.29.4 pg: 8.22.0 sql.js: 1.14.1 @@ -13727,12 +14760,11 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.383: {} + electron-to-chromium@1.5.399: {} emoji-regex@10.6.0: {} - emoji-regex@8.0.0: - optional: true + emoji-regex@8.0.0: {} encodeurl@2.0.0: {} @@ -13741,7 +14773,7 @@ snapshots: once: 1.4.0 optional: true - enhanced-resolve@5.24.3: + enhanced-resolve@5.24.5: dependencies: graceful-fs: 4.2.11 tapable: 2.3.3 @@ -13763,48 +14795,34 @@ snapshots: env-paths@3.0.0: {} + environment@1.1.0: {} + error-ex@1.3.4: dependencies: is-arrayish: 0.2.1 error-stack-parser-es@1.0.5: {} + ervy@1.0.7: {} + es-define-property@1.0.1: {} es-errors@1.3.0: {} - es-module-lexer@2.1.0: {} + es-module-lexer@2.3.1: {} es-object-atoms@1.1.2: dependencies: es-errors: 1.3.0 - es-toolkit@1.46.1: {} + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + has-tostringtag: 1.0.2 + hasown: 2.0.4 - esbuild@0.18.20: - optionalDependencies: - '@esbuild/android-arm': 0.18.20 - '@esbuild/android-arm64': 0.18.20 - '@esbuild/android-x64': 0.18.20 - '@esbuild/darwin-arm64': 0.18.20 - '@esbuild/darwin-x64': 0.18.20 - '@esbuild/freebsd-arm64': 0.18.20 - '@esbuild/freebsd-x64': 0.18.20 - '@esbuild/linux-arm': 0.18.20 - '@esbuild/linux-arm64': 0.18.20 - '@esbuild/linux-ia32': 0.18.20 - '@esbuild/linux-loong64': 0.18.20 - '@esbuild/linux-mips64el': 0.18.20 - '@esbuild/linux-ppc64': 0.18.20 - '@esbuild/linux-riscv64': 0.18.20 - '@esbuild/linux-s390x': 0.18.20 - '@esbuild/linux-x64': 0.18.20 - '@esbuild/netbsd-x64': 0.18.20 - '@esbuild/openbsd-x64': 0.18.20 - '@esbuild/sunos-x64': 0.18.20 - '@esbuild/win32-arm64': 0.18.20 - '@esbuild/win32-ia32': 0.18.20 - '@esbuild/win32-x64': 0.18.20 + es-toolkit@1.50.0: {} esbuild@0.25.12: optionalDependencies: @@ -13868,6 +14886,8 @@ snapshots: escape-html@1.0.3: {} + escape-string-regexp@2.0.0: {} + escape-string-regexp@4.0.0: {} escape-string-regexp@5.0.0: {} @@ -13875,11 +14895,11 @@ snapshots: eslint-plugin-react-hooks@7.1.1(eslint@9.39.4(jiti@2.7.0)): dependencies: '@babel/core': 7.29.7 - '@babel/parser': 7.29.7 + '@babel/parser': 7.29.8 eslint: 9.39.4(jiti@2.7.0) hermes-parser: 0.25.1 zod: 4.4.3 - zod-validation-error: 3.5.4(zod@4.4.3) + zod-validation-error: 4.0.2(zod@4.4.3) transitivePeerDependencies: - supports-color @@ -13903,7 +14923,7 @@ snapshots: eslint@9.39.4(jiti@2.7.0): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.7.0)) + '@eslint-community/eslint-utils': 4.10.1(eslint@9.39.4(jiti@2.7.0)) '@eslint-community/regexpp': 4.12.2 '@eslint/config-array': 0.21.2 '@eslint/config-helpers': 0.4.2 @@ -13946,8 +14966,8 @@ snapshots: espree@10.4.0: dependencies: - acorn: 8.17.0 - acorn-jsx: 5.3.2(acorn@8.17.0) + acorn: 8.18.0 + acorn-jsx: 5.3.2(acorn@8.18.0) eslint-visitor-keys: 4.2.1 esprima@4.0.1: {} @@ -13956,11 +14976,11 @@ snapshots: dependencies: estraverse: 5.3.0 - esrap@2.2.13(@typescript-eslint/types@8.61.1): + esrap@2.3.0(@typescript-eslint/types@8.65.0): dependencies: '@jridgewell/sourcemap-codec': 1.5.5 optionalDependencies: - '@typescript-eslint/types': 8.61.1 + '@typescript-eslint/types': 8.65.0 esrecurse@4.3.0: dependencies: @@ -14017,17 +15037,20 @@ snapshots: pretty-ms: 9.3.0 signal-exit: 4.1.0 strip-final-newline: 4.0.0 - yoctocolors: 2.1.2 + yoctocolors: 2.2.0 expand-template@2.0.3: optional: true - expect-type@1.3.0: {} + expect-type@1.4.0: {} - express-rate-limit@8.5.2(express@5.2.1): + express-rate-limit@8.6.1(express@5.2.1): dependencies: + debug: 4.4.3 express: 5.2.1 - ip-address: 10.2.0 + ip-address: 10.4.0 + transitivePeerDependencies: + - supports-color express@5.2.1: dependencies: @@ -14062,7 +15085,7 @@ snapshots: transitivePeerDependencies: - supports-color - exsolve@1.0.8: {} + exsolve@1.1.1: {} extend-shallow@2.0.1: dependencies: @@ -14094,7 +15117,7 @@ snapshots: fast-string-truncated-width: 3.0.3 optional: true - fast-uri@3.1.3: {} + fast-uri@3.1.5: {} fast-wrap-ansi@0.2.2: dependencies: @@ -14106,9 +15129,9 @@ snapshots: path-expression-matcher: 1.6.2 xml-naming: 0.3.0 - fast-xml-parser@5.10.0: + fast-xml-parser@5.10.1: dependencies: - '@nodable/entities': 2.2.0 + '@nodable/entities': 3.0.0 fast-xml-builder: 1.3.0 is-unsafe: 2.0.0 path-expression-matcher: 1.6.2 @@ -14123,13 +15146,13 @@ snapshots: dependencies: walk-up-path: 4.0.0 - fdir@6.5.0(picomatch@4.0.4): + fdir@6.5.0(picomatch@4.0.5): optionalDependencies: - picomatch: 4.0.4 + picomatch: 4.0.5 fetchdts@0.1.7: {} - fflate@0.4.8: {} + fflate@0.4.9: {} figures@6.1.0: dependencies: @@ -14176,24 +15199,34 @@ snapshots: flat-cache@4.0.1: dependencies: - flatted: 3.4.2 + flatted: 3.4.4 keyv: 4.5.4 - flatted@3.4.2: {} + flatted@3.4.4: {} + + follow-redirects@1.16.0: {} for-each@0.3.5: dependencies: is-callable: 1.2.7 + form-data@4.0.6: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + hasown: 2.0.4 + mime-types: 2.1.35 + formatly@0.3.0: dependencies: fd-package-json: 2.0.0 forwarded@0.2.0: {} - framer-motion@12.42.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8): + framer-motion@12.43.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8): dependencies: - motion-dom: 12.42.2 + motion-dom: 12.43.0 motion-utils: 12.39.0 tslib: 2.8.1 optionalDependencies: @@ -14205,7 +15238,7 @@ snapshots: fs-constants@1.0.0: optional: true - fs-extra@11.3.6: + fs-extra@11.4.0: dependencies: graceful-fs: 4.2.11 jsonfile: 6.2.1 @@ -14287,7 +15320,7 @@ snapshots: gray-matter@4.0.3: dependencies: - js-yaml: 3.15.0 + js-yaml: 3.15.1 kind-of: 6.0.3 section-matter: 1.0.0 strip-bom-string: 1.0.0 @@ -14317,20 +15350,20 @@ snapshots: hast-util-from-dom@5.0.1: dependencies: - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 hastscript: 9.0.1 web-namespaces: 2.0.1 hast-util-from-html-isomorphic@2.0.0: dependencies: - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 hast-util-from-dom: 5.0.1 hast-util-from-html: 2.0.3 unist-util-remove-position: 5.0.0 hast-util-from-html@2.0.3: dependencies: - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 devlop: 1.1.0 hast-util-from-parse5: 8.0.3 parse5: 7.3.0 @@ -14339,32 +15372,32 @@ snapshots: hast-util-from-parse5@8.0.3: dependencies: - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 '@types/unist': 3.0.3 devlop: 1.1.0 hastscript: 9.0.1 - property-information: 7.1.0 + property-information: 7.2.0 vfile: 6.0.3 vfile-location: 5.0.3 web-namespaces: 2.0.1 hast-util-heading-rank@3.0.0: dependencies: - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 hast-util-is-element@3.0.0: dependencies: - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 hast-util-parse-selector@4.0.0: dependencies: - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 hast-util-raw@9.1.0: dependencies: - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 '@types/unist': 3.0.3 - '@ungap/structured-clone': 1.3.1 + '@ungap/structured-clone': 1.3.3 hast-util-from-parse5: 8.0.3 hast-util-to-parse5: 8.0.1 html-void-elements: 3.0.0 @@ -14378,20 +15411,20 @@ snapshots: hast-util-sanitize@5.0.2: dependencies: - '@types/hast': 3.0.4 - '@ungap/structured-clone': 1.3.1 + '@types/hast': 3.0.5 + '@ungap/structured-clone': 1.3.3 unist-util-position: 5.0.0 hast-util-to-html@9.0.5: dependencies: - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 '@types/unist': 3.0.3 ccount: 2.0.1 comma-separated-tokens: 2.0.3 hast-util-whitespace: 3.0.0 html-void-elements: 3.0.0 mdast-util-to-hast: 13.2.1 - property-information: 7.1.0 + property-information: 7.2.0 space-separated-tokens: 2.0.2 stringify-entities: 4.0.4 zwitch: 2.0.4 @@ -14399,7 +15432,7 @@ snapshots: hast-util-to-jsx-runtime@2.3.6: dependencies: '@types/estree': 1.0.9 - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 '@types/unist': 3.0.3 comma-separated-tokens: 2.0.3 devlop: 1.1.0 @@ -14408,7 +15441,7 @@ snapshots: mdast-util-mdx-expression: 2.0.1 mdast-util-mdx-jsx: 3.2.0 mdast-util-mdxjs-esm: 2.0.1 - property-information: 7.1.0 + property-information: 7.2.0 space-separated-tokens: 2.0.2 style-to-js: 1.1.21 unist-util-position: 5.0.0 @@ -14418,35 +15451,35 @@ snapshots: hast-util-to-parse5@8.0.1: dependencies: - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 comma-separated-tokens: 2.0.3 devlop: 1.1.0 - property-information: 7.1.0 + property-information: 7.2.0 space-separated-tokens: 2.0.2 web-namespaces: 2.0.1 zwitch: 2.0.4 hast-util-to-string@3.0.1: dependencies: - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 hast-util-to-text@4.0.2: dependencies: - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 '@types/unist': 3.0.3 hast-util-is-element: 3.0.0 unist-util-find-after: 5.0.0 hast-util-whitespace@3.0.0: dependencies: - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 hastscript@9.0.1: dependencies: - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 comma-separated-tokens: 2.0.3 hast-util-parse-selector: 4.0.0 - property-information: 7.1.0 + property-information: 7.2.0 space-separated-tokens: 2.0.2 headers-polyfill@5.0.1: @@ -14461,7 +15494,7 @@ snapshots: dependencies: hermes-estree: 0.25.1 - hono@4.12.27: {} + hono@4.12.33: {} html-encoding-sniffer@6.0.0(@noble/hashes@2.2.0): dependencies: @@ -14499,6 +15532,13 @@ snapshots: - supports-color optional: true + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.4 @@ -14531,17 +15571,18 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 - import-in-the-middle@3.1.0: + import-in-the-middle@3.3.3: dependencies: - acorn: 8.17.0 - acorn-import-attributes: 1.9.5(acorn@8.17.0) cjs-module-lexer: 2.2.0 + es-module-lexer: 2.3.1 module-details-from-path: 1.0.4 import-meta-resolve@4.2.0: {} imurmurhash@0.1.4: {} + indent-string@5.0.0: {} + inherits@2.0.4: {} ini@1.3.8: @@ -14549,16 +15590,132 @@ snapshots: ini@6.0.0: {} + ink-big-text@2.0.0(ink@6.8.0(@types/react@19.2.18)(react@19.2.8))(react@19.2.8): + dependencies: + cfonts: 3.3.1 + ink: 6.8.0(@types/react@19.2.18)(react@19.2.8) + prop-types: 15.8.1 + react: 19.2.8 + + ink-chart@0.1.1(ink@6.8.0(@types/react@19.2.18)(react@19.2.8))(react@19.2.8): + dependencies: + ervy: 1.0.7 + ink: 6.8.0(@types/react@19.2.18)(react@19.2.8) + prop-types: 15.8.1 + react: 19.2.8 + + ink-confirm-input@2.0.0(ink@6.8.0(@types/react@19.2.18)(react@19.2.8))(react@19.2.8): + dependencies: + ink: 6.8.0(@types/react@19.2.18)(react@19.2.8) + ink-text-input: 3.3.0(ink@6.8.0(@types/react@19.2.18)(react@19.2.8))(react@19.2.8) + prop-types: 15.8.1 + react: 19.2.8 + yn: 3.1.1 + + ink-scroll-list@0.4.1(ink@6.8.0(@types/react@19.2.18)(react@19.2.8))(react@19.2.8): + dependencies: + ink: 6.8.0(@types/react@19.2.18)(react@19.2.8) + ink-scroll-view: 0.3.7(ink@6.8.0(@types/react@19.2.18)(react@19.2.8))(react@19.2.8) + react: 19.2.8 + + ink-scroll-view@0.3.7(ink@6.8.0(@types/react@19.2.18)(react@19.2.8))(react@19.2.8): + dependencies: + ink: 6.8.0(@types/react@19.2.18)(react@19.2.8) + react: 19.2.8 + + ink-select-input@6.2.0(ink@6.8.0(@types/react@19.2.18)(react@19.2.8))(react@19.2.8): + dependencies: + figures: 6.1.0 + ink: 6.8.0(@types/react@19.2.18)(react@19.2.8) + react: 19.2.8 + to-rotated: 1.0.0 + + ink-spinner@5.0.0(ink@6.8.0(@types/react@19.2.18)(react@19.2.8))(react@19.2.8): + dependencies: + cli-spinners: 2.9.2 + ink: 6.8.0(@types/react@19.2.18)(react@19.2.8) + react: 19.2.8 + + ink-table@3.1.0(ink@6.8.0(@types/react@19.2.18)(react@19.2.8))(react@19.2.8): + dependencies: + ink: 6.8.0(@types/react@19.2.18)(react@19.2.8) + object-hash: 2.2.0 + react: 19.2.8 + + ink-text-input@3.3.0(ink@6.8.0(@types/react@19.2.18)(react@19.2.8))(react@19.2.8): + dependencies: + chalk: 3.0.0 + ink: 6.8.0(@types/react@19.2.18)(react@19.2.8) + prop-types: 15.8.1 + react: 19.2.8 + + ink-text-input@6.0.0(ink@6.8.0(@types/react@19.2.18)(react@19.2.8))(react@19.2.8): + dependencies: + chalk: 5.6.2 + ink: 6.8.0(@types/react@19.2.18)(react@19.2.8) + react: 19.2.8 + type-fest: 4.41.0 + + ink@6.8.0(@types/react@19.2.18)(react@19.2.8): + dependencies: + '@alcalzone/ansi-tokenize': 0.2.5 + ansi-escapes: 7.3.0 + ansi-styles: 6.2.3 + auto-bind: 5.0.1 + chalk: 5.6.2 + cli-boxes: 3.0.0 + cli-cursor: 4.0.0 + cli-truncate: 5.2.0 + code-excerpt: 4.0.0 + es-toolkit: 1.50.0 + indent-string: 5.0.0 + is-in-ci: 2.0.0 + patch-console: 2.0.0 + react: 19.2.8 + react-reconciler: 0.33.0(react@19.2.8) + scheduler: 0.27.0 + signal-exit: 3.0.7 + slice-ansi: 8.0.0 + stack-utils: 2.0.6 + string-width: 8.2.2 + terminal-size: 4.0.1 + type-fest: 5.8.0 + widest-line: 6.0.0 + wrap-ansi: 9.0.2 + ws: 8.21.1 + yoga-layout: 3.2.1 + optionalDependencies: + '@types/react': 19.2.18 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + inline-style-parser@0.2.7: {} + inquirer@12.11.1(@types/node@26.1.2): + dependencies: + '@inquirer/ansi': 1.0.2 + '@inquirer/core': 10.3.2(@types/node@26.1.2) + '@inquirer/prompts': 7.10.1(@types/node@26.1.2) + '@inquirer/type': 3.0.10(@types/node@26.1.2) + mute-stream: 2.0.0 + run-async: 4.0.6 + rxjs: 7.8.2 + optionalDependencies: + '@types/node': 26.1.2 + internmap@1.0.1: {} internmap@2.0.3: {} - ip-address@10.2.0: {} + ip-address@10.4.0: {} ipaddr.js@1.9.1: {} + is-accessor-descriptor@1.0.2: + dependencies: + hasown: 2.0.4 + is-alphabetical@2.0.1: {} is-alphanumerical@2.0.1: @@ -14568,10 +15725,21 @@ snapshots: is-arrayish@0.2.1: {} + is-buffer@1.1.6: {} + is-callable@1.2.7: {} + is-data-descriptor@1.0.1: + dependencies: + hasown: 2.0.4 + is-decimal@2.0.1: {} + is-descriptor@1.0.4: + dependencies: + is-accessor-descriptor: 1.0.2 + is-data-descriptor: 1.0.1 + is-docker@2.2.1: {} is-docker@3.0.0: {} @@ -14580,8 +15748,11 @@ snapshots: is-extglob@2.1.1: {} - is-fullwidth-code-point@3.0.0: - optional: true + is-fullwidth-code-point@3.0.0: {} + + is-fullwidth-code-point@5.1.0: + dependencies: + get-east-asian-width: 1.6.0 is-glob@4.0.3: dependencies: @@ -14589,6 +15760,8 @@ snapshots: is-hexadecimal@2.0.1: {} + is-in-ci@2.0.0: {} + is-in-ssh@1.0.0: {} is-inside-container@1.0.0: @@ -14600,6 +15773,10 @@ snapshots: is-node-process@1.2.0: optional: true + is-number@3.0.0: + dependencies: + kind-of: 3.2.2 + is-number@7.0.0: {} is-obj@2.0.0: {} @@ -14633,6 +15810,8 @@ snapshots: is-unsafe@2.0.0: {} + is-wayland@0.1.0: {} + is-wsl@2.2.0: dependencies: is-docker: 2.2.1 @@ -14641,15 +15820,19 @@ snapshots: dependencies: is-inside-container: 1.0.0 + is64bit@2.0.0: + dependencies: + system-architecture: 0.1.0 + isarray@2.0.5: {} - isbot@5.1.43: {} + isbot@5.2.1: {} isexe@2.0.0: {} isexe@3.1.5: {} - isomorphic-git@1.38.5: + isomorphic-git@1.40.0: dependencies: async-lock: 1.4.1 clean-git-ref: 2.0.1 @@ -14669,7 +15852,7 @@ snapshots: jiti@2.7.0: {} - jose@6.2.3: {} + jose@6.2.7: {} js-base64@3.8.0: {} @@ -14677,12 +15860,12 @@ snapshots: js-tokens@4.0.0: {} - js-yaml@3.15.0: + js-yaml@3.15.1: dependencies: argparse: 1.0.10 esprima: 4.0.1 - js-yaml@4.3.0: + js-yaml@4.3.1: dependencies: argparse: 2.0.1 @@ -14703,7 +15886,7 @@ snapshots: saxes: 6.0.0 symbol-tree: 3.2.4 tough-cookie: 6.0.2 - undici: 7.28.0 + undici: 7.29.0 w3c-xmlserializer: 5.0.0 webidl-conversions: 8.0.1 whatwg-mimetype: 5.0.0 @@ -14745,16 +15928,16 @@ snapshots: just-bash@3.0.2: dependencies: diff: 8.0.4 - fast-xml-parser: 5.10.0 + fast-xml-parser: 5.10.1 file-type: 21.3.4 ini: 6.0.0 - minimatch: 10.2.5 - modern-tar: 0.7.6 + minimatch: 10.2.6 + modern-tar: 0.7.7 papaparse: 5.5.4 quickjs-emscripten: 0.32.0 re2js: 1.3.3 seek-bzip: 2.0.0 - smol-toml: 1.7.0 + smol-toml: 1.7.1 sprintf-js: 1.1.3 sql.js: 1.14.1 turndown: 7.2.4 @@ -14779,34 +15962,38 @@ snapshots: khroma@2.1.0: {} + kind-of@3.2.2: + dependencies: + is-buffer: 1.1.6 + kind-of@6.0.3: {} kleur@3.0.3: {} kleur@4.1.5: {} - knip@6.17.1: + knip@6.31.0: dependencies: - fdir: 6.5.0(picomatch@4.0.4) + fdir: 6.5.0(picomatch@4.0.5) formatly: 0.3.0 get-tsconfig: 4.14.0 jiti: 2.7.0 - oxc-parser: 0.135.0 - oxc-resolver: 11.21.3 - picomatch: 4.0.4 - smol-toml: 1.6.1 + oxc-parser: 0.142.0 + oxc-resolver: 11.24.2 + picomatch: 4.0.5 + smol-toml: 1.7.1 strip-json-comments: 5.0.3 tinyglobby: 0.2.17 - unbash: 4.0.1 + unbash: 4.0.4 yaml: 2.9.0 zod: 4.4.3 - kysely@0.28.17: {} + kysely@0.29.4: {} launch-editor@2.14.1: dependencies: picocolors: 1.1.1 - shell-quote: 1.8.4 + shell-quote: 1.10.0 layout-base@1.0.2: {} @@ -14955,6 +16142,10 @@ snapshots: longest-streak@3.1.0: {} + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + lru-cache@11.5.2: optional: true @@ -14962,20 +16153,24 @@ snapshots: dependencies: yallist: 3.1.1 - lucide-react@1.27.0(react@19.2.8): + lucide-react@1.28.0(react@19.2.8): dependencies: react: 19.2.8 lz-string@1.5.0: {} + macos-version@6.0.0: + dependencies: + semver: 7.8.5 + magic-string@0.30.21: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 - magicast@0.5.3: + magicast@0.5.4: dependencies: - '@babel/parser': 7.29.7 - '@babel/types': 7.29.7 + '@babel/parser': 7.29.8 + '@babel/types': 7.29.8 source-map-js: 1.2.1 markdown-table@3.0.4: {} @@ -15071,7 +16266,7 @@ snapshots: mdast-util-math@3.0.0: dependencies: - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 '@types/mdast': 4.0.4 devlop: 1.1.0 longest-streak: 3.1.0 @@ -15084,7 +16279,7 @@ snapshots: mdast-util-mdx-expression@2.0.1: dependencies: '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 '@types/mdast': 4.0.4 devlop: 1.1.0 mdast-util-from-markdown: 2.0.3 @@ -15095,7 +16290,7 @@ snapshots: mdast-util-mdx-jsx@3.2.0: dependencies: '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 '@types/mdast': 4.0.4 '@types/unist': 3.0.3 ccount: 2.0.1 @@ -15112,7 +16307,7 @@ snapshots: mdast-util-mdxjs-esm@2.0.1: dependencies: '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 '@types/mdast': 4.0.4 devlop: 1.1.0 mdast-util-from-markdown: 2.0.3 @@ -15127,9 +16322,9 @@ snapshots: mdast-util-to-hast@13.2.1: dependencies: - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 '@types/mdast': 4.0.4 - '@ungap/structured-clone': 1.3.1 + '@ungap/structured-clone': 1.3.3 devlop: 1.1.0 micromark-util-sanitize-uri: 2.0.1 trim-lines: 3.0.1 @@ -15137,6 +16332,28 @@ snapshots: unist-util-visit: 5.1.0 vfile: 6.0.3 + mdast-util-to-markdown-cjk-friendly-gfm-strikethrough@1.0.0(@types/mdast@4.0.4)(micromark-util-types@2.0.2): + dependencies: + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-to-markdown: 2.1.2 + micromark-extension-cjk-friendly-util: 3.0.1(micromark-util-types@2.0.2) + micromark-util-symbol: 2.0.1 + optionalDependencies: + '@types/mdast': 4.0.4 + transitivePeerDependencies: + - micromark-util-types + - supports-color + + mdast-util-to-markdown-cjk-friendly@1.0.0(@types/mdast@4.0.4)(micromark-util-types@2.0.2): + dependencies: + mdast-util-to-markdown: 2.1.2 + micromark-extension-cjk-friendly-util: 3.0.1(micromark-util-types@2.0.2) + micromark-util-symbol: 2.0.1 + optionalDependencies: + '@types/mdast': 4.0.4 + transitivePeerDependencies: + - micromark-util-types + mdast-util-to-markdown@2.1.2: dependencies: '@types/mdast': 4.0.4 @@ -15156,9 +16373,7 @@ snapshots: mdn-data@2.27.1: optional: true - media-typer@1.1.0: {} - - meow@14.1.0: {} + media-typer@1.1.1: {} merge-descriptors@2.0.0: {} @@ -15166,52 +16381,30 @@ snapshots: merge2@1.4.1: {} - mermaid@11.15.0: - dependencies: - '@braintree/sanitize-url': 7.1.2 - '@iconify/utils': 3.1.3 - '@mermaid-js/parser': 1.1.1 - '@types/d3': 7.4.3 - '@upsetjs/venn.js': 2.0.0 - cytoscape: 3.33.3 - cytoscape-cose-bilkent: 4.1.0(cytoscape@3.33.3) - cytoscape-fcose: 2.2.0(cytoscape@3.33.3) - d3: 7.9.0 - d3-sankey: 0.12.3 - dagre-d3-es: 7.0.14 - dayjs: 1.11.21 - dompurify: 3.4.11 - es-toolkit: 1.46.1 - katex: 0.16.47 - khroma: 2.1.0 - marked: 16.4.2 - roughjs: 4.6.6 - stylis: 4.4.0 - ts-dedent: 2.2.0 - uuid: 14.0.1 + meriyah@6.1.4: {} mermaid@11.16.0: dependencies: '@braintree/sanitize-url': 7.1.2 - '@iconify/utils': 3.1.3 + '@iconify/utils': 3.1.4 '@mermaid-js/parser': 1.2.0 '@types/d3': 7.4.3 '@upsetjs/venn.js': 2.0.0 - cytoscape: 3.33.3 - cytoscape-cose-bilkent: 4.1.0(cytoscape@3.33.3) - cytoscape-fcose: 2.2.0(cytoscape@3.33.3) + cytoscape: 3.34.0 + cytoscape-cose-bilkent: 4.1.0(cytoscape@3.34.0) + cytoscape-fcose: 2.2.0(cytoscape@3.34.0) d3: 7.9.0 d3-sankey: 0.12.3 dagre-d3-es: 7.0.14 dayjs: 1.11.21 - dompurify: 3.4.11 - es-toolkit: 1.46.1 + dompurify: 3.4.12 + es-toolkit: 1.50.0 katex: 0.16.47 khroma: 2.1.0 marked: 16.4.2 roughjs: 4.6.6 stylis: 4.4.0 - ts-dedent: 2.2.0 + ts-dedent: 2.3.0 uuid: 14.0.1 micromark-core-commonmark@2.0.3: @@ -15491,13 +16684,25 @@ snapshots: - bufferutil - utf-8-validate - minimatch@10.2.5: + miniflare@5.20260730.0-alpha: + dependencies: + '@cspotcode/source-map-support': 0.8.1 + sharp: 0.35.2 + undici: 7.28.0 + workerd: 1.20260730.1 + ws: 8.21.0 + youch: 4.1.0-beta.10 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + minimatch@10.2.6: dependencies: - brace-expansion: 5.0.7 + brace-expansion: 5.0.9 minimatch@3.1.5: dependencies: - brace-expansion: 1.1.16 + brace-expansion: 1.1.18 minimist@1.2.8: {} @@ -15508,19 +16713,19 @@ snapshots: mkdirp-classic@0.5.3: optional: true - modern-tar@0.7.6: {} + modern-tar@0.7.7: {} module-details-from-path@1.0.4: {} - motion-dom@12.42.2: + motion-dom@12.43.0: dependencies: motion-utils: 12.39.0 motion-utils@12.39.0: {} - motion@12.42.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8): + motion@12.43.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8): dependencies: - framer-motion: 12.42.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + framer-motion: 12.43.0(react-dom@19.2.8(react@19.2.8))(react@19.2.8) tslib: 2.8.1 optionalDependencies: react: 19.2.8 @@ -15530,9 +16735,9 @@ snapshots: ms@2.1.3: {} - msw@2.14.6(@types/node@26.1.1)(typescript@6.0.3): + msw@2.14.6(@types/node@26.1.2)(typescript@6.0.3): dependencies: - '@inquirer/confirm': 6.1.1(@types/node@26.1.1) + '@inquirer/confirm': 6.1.1(@types/node@26.1.2) '@mswjs/interceptors': 0.41.9 '@open-draft/deferred-promise': 3.0.0 '@types/statuses': 2.0.6 @@ -15556,6 +16761,8 @@ snapshots: - '@types/node' optional: true + mute-stream@2.0.0: {} + mute-stream@3.0.0: optional: true @@ -15565,7 +16772,7 @@ snapshots: nanoid@6.0.0: {} - nanostores@1.3.0: {} + nanostores@1.4.2: {} napi-build-utils@2.0.0: optional: true @@ -15579,7 +16786,7 @@ snapshots: semver: 7.8.5 optional: true - node-addon-api@8.9.0: + node-addon-api@8.9.1: optional: true node-gyp-build@4.8.4: @@ -15587,11 +16794,11 @@ snapshots: node-liblzma@2.2.0: dependencies: - node-addon-api: 8.9.0 + node-addon-api: 8.9.1 node-gyp-build: 4.8.4 optional: true - node-releases@2.0.50: {} + node-releases@2.0.51: {} npm-run-path@4.0.1: dependencies: @@ -15608,11 +16815,13 @@ snapshots: object-assign@4.1.1: {} + object-hash@2.2.0: {} + object-inspect@1.13.4: {} object-treeify@1.1.33: {} - obug@2.1.3: {} + obug@2.1.4: {} on-finished@2.4.1: dependencies: @@ -15638,6 +16847,13 @@ snapshots: regex: 6.1.0 regex-recursion: 6.0.2 + open@10.2.0: + dependencies: + default-browser: 5.5.0 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + wsl-utils: 0.1.0 + open@11.0.0: dependencies: default-browser: 5.5.0 @@ -15679,7 +16895,7 @@ snapshots: outvariant@1.4.3: optional: true - oxc-parser@0.120.0(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1): + oxc-parser@0.120.0(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3): dependencies: '@oxc-project/types': 0.120.0 optionalDependencies: @@ -15699,7 +16915,7 @@ snapshots: '@oxc-parser/binding-linux-x64-gnu': 0.120.0 '@oxc-parser/binding-linux-x64-musl': 0.120.0 '@oxc-parser/binding-openharmony-arm64': 0.120.0 - '@oxc-parser/binding-wasm32-wasi': 0.120.0(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) + '@oxc-parser/binding-wasm32-wasi': 0.120.0(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3) '@oxc-parser/binding-win32-arm64-msvc': 0.120.0 '@oxc-parser/binding-win32-ia32-msvc': 0.120.0 '@oxc-parser/binding-win32-x64-msvc': 0.120.0 @@ -15757,29 +16973,54 @@ snapshots: '@oxc-parser/binding-win32-ia32-msvc': 0.135.0 '@oxc-parser/binding-win32-x64-msvc': 0.135.0 - oxc-resolver@11.21.3: + oxc-parser@0.142.0: + dependencies: + '@oxc-project/types': 0.142.0 optionalDependencies: - '@oxc-resolver/binding-android-arm-eabi': 11.21.3 - '@oxc-resolver/binding-android-arm64': 11.21.3 - '@oxc-resolver/binding-darwin-arm64': 11.21.3 - '@oxc-resolver/binding-darwin-x64': 11.21.3 - '@oxc-resolver/binding-freebsd-x64': 11.21.3 - '@oxc-resolver/binding-linux-arm-gnueabihf': 11.21.3 - '@oxc-resolver/binding-linux-arm-musleabihf': 11.21.3 - '@oxc-resolver/binding-linux-arm64-gnu': 11.21.3 - '@oxc-resolver/binding-linux-arm64-musl': 11.21.3 - '@oxc-resolver/binding-linux-ppc64-gnu': 11.21.3 - '@oxc-resolver/binding-linux-riscv64-gnu': 11.21.3 - '@oxc-resolver/binding-linux-riscv64-musl': 11.21.3 - '@oxc-resolver/binding-linux-s390x-gnu': 11.21.3 - '@oxc-resolver/binding-linux-x64-gnu': 11.21.3 - '@oxc-resolver/binding-linux-x64-musl': 11.21.3 - '@oxc-resolver/binding-openharmony-arm64': 11.21.3 - '@oxc-resolver/binding-wasm32-wasi': 11.21.3 - '@oxc-resolver/binding-win32-arm64-msvc': 11.21.3 - '@oxc-resolver/binding-win32-x64-msvc': 11.21.3 - - oxfmt@0.60.0(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vite-plus@0.2.6(@opentelemetry/api@1.9.1)(@types/node@26.1.1)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(jiti@2.7.0)(jsdom@28.1.0(@noble/hashes@2.2.0))(msw@2.14.6(@types/node@26.1.1)(typescript@6.0.3))(svelte@5.56.3(@typescript-eslint/types@8.61.1))(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)): + '@oxc-parser/binding-android-arm-eabi': 0.142.0 + '@oxc-parser/binding-android-arm64': 0.142.0 + '@oxc-parser/binding-darwin-arm64': 0.142.0 + '@oxc-parser/binding-darwin-x64': 0.142.0 + '@oxc-parser/binding-freebsd-x64': 0.142.0 + '@oxc-parser/binding-linux-arm-gnueabihf': 0.142.0 + '@oxc-parser/binding-linux-arm-musleabihf': 0.142.0 + '@oxc-parser/binding-linux-arm64-gnu': 0.142.0 + '@oxc-parser/binding-linux-arm64-musl': 0.142.0 + '@oxc-parser/binding-linux-ppc64-gnu': 0.142.0 + '@oxc-parser/binding-linux-riscv64-gnu': 0.142.0 + '@oxc-parser/binding-linux-riscv64-musl': 0.142.0 + '@oxc-parser/binding-linux-s390x-gnu': 0.142.0 + '@oxc-parser/binding-linux-x64-gnu': 0.142.0 + '@oxc-parser/binding-linux-x64-musl': 0.142.0 + '@oxc-parser/binding-openharmony-arm64': 0.142.0 + '@oxc-parser/binding-wasm32-wasi': 0.142.0 + '@oxc-parser/binding-win32-arm64-msvc': 0.142.0 + '@oxc-parser/binding-win32-ia32-msvc': 0.142.0 + '@oxc-parser/binding-win32-x64-msvc': 0.142.0 + + oxc-resolver@11.24.2: + optionalDependencies: + '@oxc-resolver/binding-android-arm-eabi': 11.24.2 + '@oxc-resolver/binding-android-arm64': 11.24.2 + '@oxc-resolver/binding-darwin-arm64': 11.24.2 + '@oxc-resolver/binding-darwin-x64': 11.24.2 + '@oxc-resolver/binding-freebsd-x64': 11.24.2 + '@oxc-resolver/binding-linux-arm-gnueabihf': 11.24.2 + '@oxc-resolver/binding-linux-arm-musleabihf': 11.24.2 + '@oxc-resolver/binding-linux-arm64-gnu': 11.24.2 + '@oxc-resolver/binding-linux-arm64-musl': 11.24.2 + '@oxc-resolver/binding-linux-ppc64-gnu': 11.24.2 + '@oxc-resolver/binding-linux-riscv64-gnu': 11.24.2 + '@oxc-resolver/binding-linux-riscv64-musl': 11.24.2 + '@oxc-resolver/binding-linux-s390x-gnu': 11.24.2 + '@oxc-resolver/binding-linux-x64-gnu': 11.24.2 + '@oxc-resolver/binding-linux-x64-musl': 11.24.2 + '@oxc-resolver/binding-openharmony-arm64': 11.24.2 + '@oxc-resolver/binding-wasm32-wasi': 11.24.2 + '@oxc-resolver/binding-win32-arm64-msvc': 11.24.2 + '@oxc-resolver/binding-win32-x64-msvc': 11.24.2 + + oxfmt@0.60.0(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vite-plus@0.2.7(@opentelemetry/api@1.9.1)(@types/node@26.1.2)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(jiti@2.7.0)(jsdom@28.1.0(@noble/hashes@2.2.0))(msw@2.14.6(@types/node@26.1.2)(typescript@6.0.3))(svelte@5.56.3(@typescript-eslint/types@8.65.0))(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)): dependencies: tinypool: 2.1.0 optionalDependencies: @@ -15802,12 +17043,12 @@ snapshots: '@oxfmt/binding-win32-arm64-msvc': 0.60.0 '@oxfmt/binding-win32-ia32-msvc': 0.60.0 '@oxfmt/binding-win32-x64-msvc': 0.60.0 - svelte: 5.56.3(@typescript-eslint/types@8.61.1) - vite-plus: 0.2.6(@opentelemetry/api@1.9.1)(@types/node@26.1.1)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(jiti@2.7.0)(jsdom@28.1.0(@noble/hashes@2.2.0))(msw@2.14.6(@types/node@26.1.1)(typescript@6.0.3))(svelte@5.56.3(@typescript-eslint/types@8.61.1))(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0) + svelte: 5.56.3(@typescript-eslint/types@8.65.0) + vite-plus: 0.2.7(@opentelemetry/api@1.9.1)(@types/node@26.1.2)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(jiti@2.7.0)(jsdom@28.1.0(@noble/hashes@2.2.0))(msw@2.14.6(@types/node@26.1.2)(typescript@6.0.3))(svelte@5.56.3(@typescript-eslint/types@8.65.0))(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0) oxlint-plugin-react-doctor@0.6.0: dependencies: - '@typescript-eslint/types': 8.61.1 + '@typescript-eslint/types': 8.65.0 eslint-scope: 9.1.2 eslint-visitor-keys: 5.0.1 oxc-parser: 0.135.0 @@ -15844,7 +17085,7 @@ snapshots: '@oxlint/binding-win32-x64-msvc': 1.66.0 oxlint-tsgolint: 7.0.2001 - oxlint@1.75.0(oxlint-tsgolint@7.0.2001)(vite-plus@0.2.6(@opentelemetry/api@1.9.1)(@types/node@26.1.1)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(jiti@2.7.0)(jsdom@28.1.0(@noble/hashes@2.2.0))(msw@2.14.6(@types/node@26.1.1)(typescript@6.0.3))(svelte@5.56.3(@typescript-eslint/types@8.61.1))(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)): + oxlint@1.75.0(oxlint-tsgolint@7.0.2001)(vite-plus@0.2.7(@opentelemetry/api@1.9.1)(@types/node@26.1.2)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(jiti@2.7.0)(jsdom@28.1.0(@noble/hashes@2.2.0))(msw@2.14.6(@types/node@26.1.2)(typescript@6.0.3))(svelte@5.56.3(@typescript-eslint/types@8.65.0))(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)): optionalDependencies: '@oxlint/binding-android-arm-eabi': 1.75.0 '@oxlint/binding-android-arm64': 1.75.0 @@ -15866,7 +17107,7 @@ snapshots: '@oxlint/binding-win32-ia32-msvc': 1.75.0 '@oxlint/binding-win32-x64-msvc': 1.75.0 oxlint-tsgolint: 7.0.2001 - vite-plus: 0.2.6(@opentelemetry/api@1.9.1)(@types/node@26.1.1)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(jiti@2.7.0)(jsdom@28.1.0(@noble/hashes@2.2.0))(msw@2.14.6(@types/node@26.1.1)(typescript@6.0.3))(svelte@5.56.3(@typescript-eslint/types@8.61.1))(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0) + vite-plus: 0.2.7(@opentelemetry/api@1.9.1)(@types/node@26.1.2)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(jiti@2.7.0)(jsdom@28.1.0(@noble/hashes@2.2.0))(msw@2.14.6(@types/node@26.1.2)(typescript@6.0.3))(svelte@5.56.3(@typescript-eslint/types@8.65.0))(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0) p-limit@2.3.0: dependencies: @@ -15890,7 +17131,7 @@ snapshots: p-try@2.2.0: {} - package-manager-detector@1.6.0: {} + package-manager-detector@1.8.0: {} pako@1.0.11: {} @@ -15933,9 +17174,9 @@ snapshots: partial-json@0.1.7: optional: true - partyserver@0.5.8(@cloudflare/workers-types@5.20260727.1): + partyserver@0.5.9(@cloudflare/workers-types@5.20260801.1): dependencies: - '@cloudflare/workers-types': 5.20260727.1 + '@cloudflare/workers-types': 5.20260801.1 nanoid: 5.1.16 partysocket@1.3.0(react@19.2.8): @@ -15944,6 +17185,8 @@ snapshots: optionalDependencies: react: 19.2.8 + patch-console@2.0.0: {} + path-browserify@1.0.1: {} path-data-parser@0.1.0: {} @@ -16010,7 +17253,7 @@ snapshots: picomatch@2.3.2: {} - picomatch@4.0.4: {} + picomatch@4.0.5: {} pify@4.0.1: {} @@ -16043,13 +17286,7 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss@8.5.16: - dependencies: - nanoid: 3.3.16 - picocolors: 1.1.1 - source-map-js: 1.2.1 - - postcss@8.5.18: + postcss@8.5.25: dependencies: nanoid: 3.3.16 picocolors: 1.1.1 @@ -16069,27 +17306,31 @@ snapshots: xtend: 4.0.2 optional: true - posthog-js@1.407.3: + posthog-js@1.409.5: dependencies: - '@posthog/browser-common': 0.2.2 - '@posthog/core': 1.45.1 - '@posthog/types': 1.398.0 + '@posthog/browser-common': 0.3.1 + '@posthog/core': 1.46.1 + '@posthog/types': 1.399.0 core-js: 3.49.0 - dompurify: 3.4.11 - fflate: 0.4.8 - preact: 10.29.7 + dompurify: 3.4.12 + fflate: 0.4.9 + preact: 10.29.8 query-selector-shadow-dom: 1.0.1 web-vitals: 5.3.0 transitivePeerDependencies: - preact-render-to-string - posthog-node@5.46.1: + posthog-node@5.47.3(rxjs@7.8.2): dependencies: - '@posthog/core': 1.45.1 + '@posthog/core': 1.46.1 + optionalDependencies: + rxjs: 7.8.2 powershell-utils@0.1.0: {} - preact@10.29.7: {} + powershell-utils@0.2.0: {} + + preact@10.29.8: {} prebuild-install@7.1.3: dependencies: @@ -16109,7 +17350,7 @@ snapshots: prelude-ls@1.2.1: {} - prettier@3.8.3: {} + prettier@3.9.6: {} pretty-format@27.5.1: dependencies: @@ -16128,7 +17369,13 @@ snapshots: kleur: 3.0.3 sisteransi: 1.0.5 - property-information@7.1.0: {} + prop-types@15.8.1: + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + + property-information@7.2.0: {} prosemirror-changeset@2.4.1: dependencies: @@ -16144,20 +17391,20 @@ snapshots: dependencies: prosemirror-state: 1.4.4 prosemirror-transform: 1.12.0 - prosemirror-view: 1.42.1 + prosemirror-view: 1.42.2 prosemirror-gapcursor@1.4.1: dependencies: prosemirror-keymap: 1.2.3 prosemirror-model: 1.25.11 prosemirror-state: 1.4.4 - prosemirror-view: 1.42.1 + prosemirror-view: 1.42.2 prosemirror-history@1.5.0: dependencies: prosemirror-state: 1.4.4 prosemirror-transform: 1.12.0 - prosemirror-view: 1.42.1 + prosemirror-view: 1.42.2 rope-sequence: 1.3.4 prosemirror-inputrules@1.5.1: @@ -16184,7 +17431,7 @@ snapshots: dependencies: prosemirror-model: 1.25.11 prosemirror-transform: 1.12.0 - prosemirror-view: 1.42.1 + prosemirror-view: 1.42.2 prosemirror-tables@1.8.5: dependencies: @@ -16192,13 +17439,13 @@ snapshots: prosemirror-model: 1.25.11 prosemirror-state: 1.4.4 prosemirror-transform: 1.12.0 - prosemirror-view: 1.42.1 + prosemirror-view: 1.42.2 prosemirror-transform@1.12.0: dependencies: prosemirror-model: 1.25.11 - prosemirror-view@1.42.1: + prosemirror-view@1.42.2: dependencies: prosemirror-model: 1.25.11 prosemirror-state: 1.4.4 @@ -16209,6 +17456,8 @@ snapshots: forwarded: 0.2.0 ipaddr.js: 1.9.1 + proxy-from-env@2.1.0: {} + pump@3.0.4: dependencies: end-of-stream: 1.4.5 @@ -16263,17 +17512,17 @@ snapshots: re2js@1.3.3: {} - react-doctor@0.6.0(eslint@9.39.4(jiti@2.7.0))(oxlint-tsgolint@7.0.2001): + react-doctor@0.6.0(@opentelemetry/core@2.10.0(@opentelemetry/api@1.9.1))(eslint@9.39.4(jiti@2.7.0))(oxlint-tsgolint@7.0.2001): dependencies: '@babel/code-frame': 7.29.7 - '@sentry/node': 10.58.0 + '@sentry/node': 10.69.0(@opentelemetry/core@2.10.0(@opentelemetry/api@1.9.1)) agent-install: 0.0.5 conf: 15.1.0 confbox: 0.2.4 deslop-js: 0.6.0 eslint-plugin-react-hooks: 7.1.1(eslint@9.39.4(jiti@2.7.0)) jiti: 2.7.0 - magicast: 0.5.3 + magicast: 0.5.4 oxlint: 1.66.0(oxlint-tsgolint@7.0.2001) oxlint-plugin-react-doctor: 0.6.0 prompts: 2.4.2 @@ -16283,6 +17532,7 @@ snapshots: vscode-uri: 3.1.0 yaml: 2.9.0 transitivePeerDependencies: + - '@opentelemetry/core' - '@opentelemetry/exporter-trace-otlp-http' - eslint - oxlint-tsgolint @@ -16293,8 +17543,15 @@ snapshots: react: 19.2.8 scheduler: 0.27.0 + react-is@16.13.1: {} + react-is@17.0.2: {} + react-reconciler@0.33.0(react@19.2.8): + dependencies: + react: 19.2.8 + scheduler: 0.27.0 + react-resizable-panels@4.12.2(react-dom@19.2.8(react@19.2.8))(react@19.2.8): dependencies: react: 19.2.8 @@ -16319,7 +17576,7 @@ snapshots: readdirp@5.0.0: {} - recast@0.23.12: + recast@0.23.19: dependencies: ast-types: 0.16.1 esprima: 4.0.1 @@ -16339,8 +17596,8 @@ snapshots: rehype-autolink-headings@7.1.0: dependencies: - '@types/hast': 3.0.4 - '@ungap/structured-clone': 1.3.1 + '@types/hast': 3.0.5 + '@ungap/structured-clone': 1.3.3 hast-util-heading-rank: 3.0.0 hast-util-is-element: 3.0.0 unified: 11.0.5 @@ -16352,7 +17609,7 @@ snapshots: rehype-katex@7.0.1: dependencies: - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 '@types/katex': 0.16.8 hast-util-from-html-isomorphic: 2.0.0 hast-util-to-text: 4.0.2 @@ -16362,18 +17619,18 @@ snapshots: rehype-raw@7.0.0: dependencies: - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 hast-util-raw: 9.1.0 vfile: 6.0.3 rehype-sanitize@6.0.0: dependencies: - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 hast-util-sanitize: 5.0.2 rehype-slug@6.0.0: dependencies: - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 github-slugger: 2.0.0 hast-util-heading-rank: 3.0.0 hast-util-to-string: 3.0.1 @@ -16381,12 +17638,13 @@ snapshots: rehype-stringify@10.0.1: dependencies: - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 hast-util-to-html: 9.0.5 unified: 11.0.5 - remark-cjk-friendly-gfm-strikethrough@2.0.1(@types/mdast@4.0.4)(micromark-util-types@2.0.2)(micromark@4.0.2)(unified@11.0.5): + remark-cjk-friendly-gfm-strikethrough@2.3.1(@types/mdast@4.0.4)(micromark-util-types@2.0.2)(micromark@4.0.2)(unified@11.0.5): dependencies: + mdast-util-to-markdown-cjk-friendly-gfm-strikethrough: 1.0.0(@types/mdast@4.0.4)(micromark-util-types@2.0.2) micromark-extension-cjk-friendly-gfm-strikethrough: 2.0.1(micromark-util-types@2.0.2)(micromark@4.0.2) unified: 11.0.5 optionalDependencies: @@ -16394,9 +17652,11 @@ snapshots: transitivePeerDependencies: - micromark - micromark-util-types + - supports-color - remark-cjk-friendly@2.0.1(@types/mdast@4.0.4)(micromark-util-types@2.0.2)(micromark@4.0.2)(unified@11.0.5): + remark-cjk-friendly@2.3.1(@types/mdast@4.0.4)(micromark-util-types@2.0.2)(micromark@4.0.2)(unified@11.0.5): dependencies: + mdast-util-to-markdown-cjk-friendly: 1.0.0(@types/mdast@4.0.4)(micromark-util-types@2.0.2) micromark-extension-cjk-friendly: 2.0.1(micromark-util-types@2.0.2)(micromark@4.0.2) unified: 11.0.5 optionalDependencies: @@ -16436,7 +17696,7 @@ snapshots: remark-rehype@11.1.2: dependencies: - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 '@types/mdast': 4.0.4 mdast-util-to-hast: 13.2.1 unified: 11.0.5 @@ -16470,6 +17730,11 @@ snapshots: resolve-pkg-maps@1.0.0: {} + restore-cursor@4.0.0: + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + restore-cursor@5.1.0: dependencies: onetime: 7.0.0 @@ -16561,12 +17826,25 @@ snapshots: run-applescript@7.1.0: {} + run-async@4.0.6: {} + + run-jxa@3.0.0: + dependencies: + execa: 5.1.1 + macos-version: 6.0.0 + subsume: 4.0.0 + type-fest: 2.19.0 + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 rw@1.3.3: {} + rxjs@7.8.2: + dependencies: + tslib: 2.8.1 + safe-buffer@5.2.1: {} safer-buffer@2.1.2: {} @@ -16587,6 +17865,8 @@ snapshots: dependencies: commander: 6.2.1 + semifies@1.0.0: {} + semver@6.3.1: {} semver@7.8.5: {} @@ -16609,11 +17889,17 @@ snapshots: serialize-javascript@7.0.7: {} - seroval-plugins@1.5.5(seroval@1.5.5): + seroval-plugins@1.5.6(seroval@1.5.6): + dependencies: + seroval: 1.5.6 + + seroval-plugins@1.6.0(seroval@1.6.0): dependencies: - seroval: 1.5.5 + seroval: 1.6.0 + + seroval@1.5.6: {} - seroval@1.5.5: {} + seroval@1.6.0: {} serve-static@2.2.1: dependencies: @@ -16643,16 +17929,16 @@ snapshots: safe-buffer: 5.2.1 to-buffer: 1.2.2 - shadcn@4.15.0(@cfworker/json-schema@4.1.1)(typescript@6.0.3): + shadcn@4.16.1(@cfworker/json-schema@4.1.1)(typescript@6.0.3): dependencies: '@babel/core': 7.29.7 - '@babel/parser': 7.29.7 + '@babel/parser': 7.29.8 '@babel/plugin-transform-typescript': 7.29.7(@babel/core@7.29.7) '@babel/preset-typescript': 7.29.7(@babel/core@7.29.7) '@dotenvx/dotenvx': 1.75.1 '@modelcontextprotocol/sdk': 1.29.0(@cfworker/json-schema@4.1.1)(zod@3.25.76) '@types/validate-npm-package-name': 4.0.2 - browserslist: 4.28.4 + browserslist: 4.28.7 commander: 14.0.3 cosmiconfig: 9.0.2(typescript@6.0.3) dedent: 1.7.2 @@ -16660,20 +17946,20 @@ snapshots: diff: 8.0.4 execa: 9.6.1 fast-glob: 3.3.3 - fs-extra: 11.3.6 + fs-extra: 11.4.0 fuzzysort: 3.1.0 kleur: 4.1.5 open: 11.0.0 ora: 8.2.0 - postcss: 8.5.18 + postcss: 8.5.25 postcss-selector-parser: 7.1.4 prompts: 2.4.2 - recast: 0.23.12 + recast: 0.23.19 stringify-object: 5.0.0 tailwind-merge: 3.6.0 ts-morph: 26.0.0 tsconfig-paths: 4.2.0 - undici: 7.28.0 + undici: 7.29.0 validate-npm-package-name: 7.0.2 zod: 3.25.76 zod-to-json-schema: 3.25.2(zod@3.25.76) @@ -16721,18 +18007,18 @@ snapshots: shebang-regex@3.0.0: {} - shell-quote@1.8.4: {} + shell-quote@1.10.0: {} - shiki@4.3.1: + shiki@4.4.1: dependencies: - '@shikijs/core': 4.3.1 - '@shikijs/engine-javascript': 4.3.1 - '@shikijs/engine-oniguruma': 4.3.1 - '@shikijs/langs': 4.3.1 - '@shikijs/themes': 4.3.1 - '@shikijs/types': 4.3.1 + '@shikijs/core': 4.4.1 + '@shikijs/engine-javascript': 4.4.1 + '@shikijs/engine-oniguruma': 4.4.1 + '@shikijs/langs': 4.4.1 + '@shikijs/themes': 4.4.1 + '@shikijs/types': 4.4.1 '@shikijs/vscode-textmate': 10.0.2 - '@types/hast': 3.0.4 + '@types/hast': 3.0.5 side-channel-list@1.0.1: dependencies: @@ -16784,15 +18070,20 @@ snapshots: sisteransi@1.0.5: {} - smol-toml@1.6.1: {} + slice-ansi@8.0.0: + dependencies: + ansi-styles: 6.2.3 + is-fullwidth-code-point: 5.1.0 smol-toml@1.7.0: {} + smol-toml@1.7.1: {} + solid-js@1.9.12: dependencies: csstype: 3.2.3 - seroval: 1.5.5 - seroval-plugins: 1.5.5(seroval@1.5.5) + seroval: 1.5.6 + seroval-plugins: 1.5.6(seroval@1.5.6) sonner@2.0.7(react-dom@19.2.8(react@19.2.8))(react@19.2.8): dependencies: @@ -16825,11 +18116,15 @@ snapshots: srvx@0.11.22: {} + stack-utils@2.0.6: + dependencies: + escape-string-regexp: 2.0.0 + stackback@0.0.2: {} statuses@2.0.2: {} - std-env@4.1.0: {} + std-env@4.2.0: {} stdin-discarder@0.2.2: {} @@ -16839,7 +18134,7 @@ snapshots: hast-util-to-jsx-runtime: 2.3.6 html-url-attributes: 3.0.1 marked: 17.0.6 - mermaid: 11.15.0 + mermaid: 11.16.0 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) rehype-harden: 1.1.8 @@ -16864,7 +18159,6 @@ snapshots: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - optional: true string-width@7.2.0: dependencies: @@ -16872,6 +18166,11 @@ snapshots: get-east-asian-width: 1.6.0 strip-ansi: 7.2.0 + string-width@8.2.2: + dependencies: + get-east-asian-width: 1.6.0 + strip-ansi: 7.2.0 + string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 @@ -16934,26 +18233,35 @@ snapshots: stylis@4.4.0: {} + subsume@4.0.0: + dependencies: + escape-string-regexp: 5.0.0 + unique-string: 3.0.0 + supports-color@10.2.2: {} supports-color@7.2.0: dependencies: has-flag: 4.0.0 - svelte@5.56.3(@typescript-eslint/types@8.61.1): + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + svelte@5.56.3(@typescript-eslint/types@8.65.0): dependencies: '@jridgewell/remapping': 2.3.5 '@jridgewell/sourcemap-codec': 1.5.5 - '@sveltejs/acorn-typescript': 1.0.11(acorn@8.17.0) + '@sveltejs/acorn-typescript': 1.0.11(acorn@8.18.0) '@types/estree': 1.0.9 '@types/trusted-types': 2.0.7 - acorn: 8.17.0 + acorn: 8.18.0 aria-query: 5.3.1 axobject-query: 4.1.0 clsx: 2.1.1 - devalue: 5.8.1 + devalue: 5.9.0 esm-env: 1.2.2 - esrap: 2.2.13(@typescript-eslint/types@8.61.1) + esrap: 2.3.0(@typescript-eslint/types@8.65.0) is-reference: 3.0.3 locate-character: 3.0.0 magic-string: 0.30.21 @@ -16961,7 +18269,7 @@ snapshots: transitivePeerDependencies: - '@typescript-eslint/types' - swr@2.4.1(react@19.2.8): + swr@2.4.2(react@19.2.8): dependencies: dequal: 2.0.3 react: 19.2.8 @@ -16970,7 +18278,9 @@ snapshots: symbol-tree@3.2.4: optional: true - systeminformation@5.31.11: {} + system-architecture@0.1.0: {} + + systeminformation@5.33.1: {} tagged-tag@1.0.0: {} @@ -16997,29 +18307,31 @@ snapshots: readable-stream: 3.6.2 optional: true + terminal-size@4.0.1: {} + throttleit@2.1.0: {} tiny-invariant@1.3.3: {} tinybench@2.9.0: {} - tinyexec@1.1.2: {} + tinyexec@1.3.0: {} tinyglobby@0.2.17: dependencies: - fdir: 6.5.0(picomatch@4.0.4) - picomatch: 4.0.4 + fdir: 6.5.0(picomatch@4.0.5) + picomatch: 4.0.5 tinypool@2.1.0: {} - tinyrainbow@3.1.0: {} + tinyrainbow@3.1.1: {} - tldts-core@7.4.8: + tldts-core@7.4.10: optional: true - tldts@7.4.8: + tldts@7.4.10: dependencies: - tldts-core: 7.4.8 + tldts-core: 7.4.10 optional: true to-buffer@1.2.2: @@ -17032,6 +18344,8 @@ snapshots: dependencies: is-number: 7.0.0 + to-rotated@1.0.0: {} + toidentifier@1.0.1: {} token-types@6.1.2: @@ -17044,7 +18358,7 @@ snapshots: tough-cookie@6.0.2: dependencies: - tldts: 7.4.8 + tldts: 7.4.10 optional: true tr46@6.0.0: @@ -17056,7 +18370,7 @@ snapshots: trough@2.2.0: {} - ts-dedent@2.2.0: {} + ts-dedent@2.3.0: {} ts-morph@26.0.0: dependencies: @@ -17071,12 +18385,6 @@ snapshots: tslib@2.8.1: {} - tsx@4.23.0: - dependencies: - esbuild: 0.28.1 - optionalDependencies: - fsevents: 2.3.3 - tsx@4.23.1: dependencies: esbuild: 0.28.1 @@ -17098,19 +18406,20 @@ snapshots: dependencies: prelude-ls: 1.2.1 - type-fest@5.7.0: - dependencies: - tagged-tag: 1.0.0 + type-fest@1.4.0: {} + + type-fest@2.19.0: {} + + type-fest@4.41.0: {} type-fest@5.8.0: dependencies: tagged-tag: 1.0.0 - optional: true type-is@2.1.0: dependencies: content-type: 2.0.0 - media-typer: 1.1.0 + media-typer: 1.1.1 mime-types: 3.0.2 typed-array-buffer@1.0.3: @@ -17129,12 +18438,14 @@ snapshots: uint8array-extras@1.5.0: {} - unbash@4.0.1: {} + unbash@4.0.4: {} undici-types@8.3.0: {} undici@7.28.0: {} + undici@7.29.0: {} + unenv@2.0.0-rc.24: dependencies: pathe: 2.0.3 @@ -17151,6 +18462,10 @@ snapshots: trough: 2.2.0 vfile: 6.0.3 + unique-string@3.0.0: + dependencies: + crypto-random-string: 4.0.0 + unist-util-find-after@5.0.0: dependencies: '@types/unist': 3.0.3 @@ -17188,18 +18503,23 @@ snapshots: unpipe@1.0.0: {} - unplugin@3.0.0: + unplugin@3.3.0(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(rolldown@1.1.2)(rollup@4.62.2): dependencies: '@jridgewell/remapping': 2.3.5 - picomatch: 4.0.4 + picomatch: 4.0.5 webpack-virtual-modules: 0.6.2 + optionalDependencies: + esbuild: 0.28.1 + rolldown: 1.1.2 + rollup: 4.62.2 + vite: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)' until-async@3.0.2: optional: true - update-browserslist-db@1.2.3(browserslist@4.28.4): + update-browserslist-db@1.2.3(browserslist@4.28.7): dependencies: - browserslist: 4.28.4 + browserslist: 4.28.7 escalade: 3.2.0 picocolors: 1.1.1 @@ -17238,33 +18558,33 @@ snapshots: vite-bundle-analyzer@1.3.9: {} - vite-plus@0.2.6(@opentelemetry/api@1.9.1)(@types/node@26.1.1)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(jiti@2.7.0)(jsdom@28.1.0(@noble/hashes@2.2.0))(msw@2.14.6(@types/node@26.1.1)(typescript@6.0.3))(svelte@5.56.3(@typescript-eslint/types@8.61.1))(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0): + vite-plus@0.2.7(@opentelemetry/api@1.9.1)(@types/node@26.1.2)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(jiti@2.7.0)(jsdom@28.1.0(@noble/hashes@2.2.0))(msw@2.14.6(@types/node@26.1.2)(typescript@6.0.3))(svelte@5.56.3(@typescript-eslint/types@8.65.0))(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0): dependencies: '@oxc-project/types': 0.141.0 '@oxlint/plugins': 1.73.0 - '@vitest/browser': 4.1.10(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(msw@2.14.6(@types/node@26.1.1)(typescript@6.0.3))(vitest@4.1.10) - '@vitest/browser-preview': 4.1.10(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(msw@2.14.6(@types/node@26.1.1)(typescript@6.0.3))(vitest@4.1.10) + '@vitest/browser': 4.1.10(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(msw@2.14.6(@types/node@26.1.2)(typescript@6.0.3))(vitest@4.1.10) + '@vitest/browser-preview': 4.1.10(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(msw@2.14.6(@types/node@26.1.2)(typescript@6.0.3))(vitest@4.1.10) '@vitest/expect': 4.1.10 - '@vitest/mocker': 4.1.10(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(msw@2.14.6(@types/node@26.1.1)(typescript@6.0.3)) + '@vitest/mocker': 4.1.10(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(msw@2.14.6(@types/node@26.1.2)(typescript@6.0.3)) '@vitest/pretty-format': 4.1.10 '@vitest/runner': 4.1.10 '@vitest/snapshot': 4.1.10 '@vitest/spy': 4.1.10 '@vitest/utils': 4.1.10 - '@voidzero-dev/vite-plus-core': 0.2.6(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0) - oxfmt: 0.60.0(svelte@5.56.3(@typescript-eslint/types@8.61.1))(vite-plus@0.2.6(@opentelemetry/api@1.9.1)(@types/node@26.1.1)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(jiti@2.7.0)(jsdom@28.1.0(@noble/hashes@2.2.0))(msw@2.14.6(@types/node@26.1.1)(typescript@6.0.3))(svelte@5.56.3(@typescript-eslint/types@8.61.1))(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)) - oxlint: 1.75.0(oxlint-tsgolint@7.0.2001)(vite-plus@0.2.6(@opentelemetry/api@1.9.1)(@types/node@26.1.1)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(jiti@2.7.0)(jsdom@28.1.0(@noble/hashes@2.2.0))(msw@2.14.6(@types/node@26.1.1)(typescript@6.0.3))(svelte@5.56.3(@typescript-eslint/types@8.61.1))(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)) + '@voidzero-dev/vite-plus-core': 0.2.7(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0) + oxfmt: 0.60.0(svelte@5.56.3(@typescript-eslint/types@8.65.0))(vite-plus@0.2.7(@opentelemetry/api@1.9.1)(@types/node@26.1.2)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(jiti@2.7.0)(jsdom@28.1.0(@noble/hashes@2.2.0))(msw@2.14.6(@types/node@26.1.2)(typescript@6.0.3))(svelte@5.56.3(@typescript-eslint/types@8.65.0))(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)) + oxlint: 1.75.0(oxlint-tsgolint@7.0.2001)(vite-plus@0.2.7(@opentelemetry/api@1.9.1)(@types/node@26.1.2)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(esbuild@0.28.1)(jiti@2.7.0)(jsdom@28.1.0(@noble/hashes@2.2.0))(msw@2.14.6(@types/node@26.1.2)(typescript@6.0.3))(svelte@5.56.3(@typescript-eslint/types@8.65.0))(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)) oxlint-tsgolint: 7.0.2001 - vitest: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.1)(@vitest/browser-preview@4.1.10)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(jsdom@28.1.0(@noble/hashes@2.2.0))(msw@2.14.6(@types/node@26.1.1)(typescript@6.0.3)) + vitest: 4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.2)(@vitest/browser-preview@4.1.10)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(jsdom@28.1.0(@noble/hashes@2.2.0))(msw@2.14.6(@types/node@26.1.2)(typescript@6.0.3)) optionalDependencies: - '@voidzero-dev/vite-plus-darwin-arm64': 0.2.6 - '@voidzero-dev/vite-plus-darwin-x64': 0.2.6 - '@voidzero-dev/vite-plus-linux-arm64-gnu': 0.2.6 - '@voidzero-dev/vite-plus-linux-arm64-musl': 0.2.6 - '@voidzero-dev/vite-plus-linux-x64-gnu': 0.2.6 - '@voidzero-dev/vite-plus-linux-x64-musl': 0.2.6 - '@voidzero-dev/vite-plus-win32-arm64-msvc': 0.2.6 - '@voidzero-dev/vite-plus-win32-x64-msvc': 0.2.6 + '@voidzero-dev/vite-plus-darwin-arm64': 0.2.7 + '@voidzero-dev/vite-plus-darwin-x64': 0.2.7 + '@voidzero-dev/vite-plus-linux-arm64-gnu': 0.2.7 + '@voidzero-dev/vite-plus-linux-arm64-musl': 0.2.7 + '@voidzero-dev/vite-plus-linux-x64-gnu': 0.2.7 + '@voidzero-dev/vite-plus-linux-x64-musl': 0.2.7 + '@voidzero-dev/vite-plus-win32-arm64-msvc': 0.2.7 + '@voidzero-dev/vite-plus-win32-x64-msvc': 0.2.7 transitivePeerDependencies: - '@arethetypeswrong/core' - '@edge-runtime/vm' @@ -17296,36 +18616,36 @@ snapshots: - vite - yaml - vitefu@1.1.3(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)): + vitefu@1.1.3(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)): optionalDependencies: - vite: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)' + vite: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)' - vitest@4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.1)(@vitest/browser-preview@4.1.10)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(jsdom@28.1.0(@noble/hashes@2.2.0))(msw@2.14.6(@types/node@26.1.1)(typescript@6.0.3)): + vitest@4.1.10(@opentelemetry/api@1.9.1)(@types/node@26.1.2)(@vitest/browser-preview@4.1.10)(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(jsdom@28.1.0(@noble/hashes@2.2.0))(msw@2.14.6(@types/node@26.1.2)(typescript@6.0.3)): dependencies: '@vitest/expect': 4.1.10 - '@vitest/mocker': 4.1.10(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(msw@2.14.6(@types/node@26.1.1)(typescript@6.0.3)) + '@vitest/mocker': 4.1.10(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(msw@2.14.6(@types/node@26.1.2)(typescript@6.0.3)) '@vitest/pretty-format': 4.1.10 '@vitest/runner': 4.1.10 '@vitest/snapshot': 4.1.10 '@vitest/spy': 4.1.10 '@vitest/utils': 4.1.10 - es-module-lexer: 2.1.0 - expect-type: 1.3.0 + es-module-lexer: 2.3.1 + expect-type: 1.4.0 magic-string: 0.30.21 - obug: 2.1.3 + obug: 2.1.4 pathe: 2.0.3 - picomatch: 4.0.4 - std-env: 4.1.0 + picomatch: 4.0.5 + std-env: 4.2.0 tinybench: 2.9.0 - tinyexec: 1.1.2 + tinyexec: 1.3.0 tinyglobby: 0.2.17 - tinyrainbow: 3.1.0 - vite: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)' + tinyrainbow: 3.1.1 + vite: '@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0)' why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.1 - '@types/node': 26.1.1 - '@vitest/browser-preview': 4.1.10(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.1)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(msw@2.14.6(@types/node@26.1.1)(typescript@6.0.3))(vitest@4.1.10) + '@types/node': 26.1.2 + '@vitest/browser-preview': 4.1.10(@voidzero-dev/vite-plus-core@0.2.2(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.23.1)(typescript@6.0.3)(yaml@2.9.0))(msw@2.14.6(@types/node@26.1.2)(typescript@6.0.3))(vitest@4.1.10) jsdom: 28.1.0(@noble/hashes@2.2.0) transitivePeerDependencies: - msw @@ -17412,6 +18732,15 @@ snapshots: siginfo: 2.0.0 stackback: 0.0.2 + widest-line@6.0.0: + dependencies: + string-width: 8.2.2 + + window-size@1.1.1: + dependencies: + define-property: 1.0.0 + is-number: 3.0.0 + word-wrap@1.2.5: {} workerd@1.20260722.1: @@ -17422,14 +18751,22 @@ snapshots: '@cloudflare/workerd-linux-arm64': 1.20260722.1 '@cloudflare/workerd-windows-64': 1.20260722.1 - workers-ai-provider@4.0.0(@ai-sdk/anthropic@4.0.21(zod@4.4.3))(@ai-sdk/openai@4.0.20(zod@4.4.3))(ai@7.0.37(zod@4.4.3)): + workerd@1.20260730.1: + optionalDependencies: + '@cloudflare/workerd-darwin-64': 1.20260730.1 + '@cloudflare/workerd-darwin-arm64': 1.20260730.1 + '@cloudflare/workerd-linux-64': 1.20260730.1 + '@cloudflare/workerd-linux-arm64': 1.20260730.1 + '@cloudflare/workerd-windows-64': 1.20260730.1 + + workers-ai-provider@4.0.0(@ai-sdk/anthropic@4.0.21(zod@4.4.3))(@ai-sdk/openai@4.0.20(zod@4.4.3))(ai@7.0.48(zod@4.4.3)): dependencies: - ai: 7.0.37(zod@4.4.3) + ai: 7.0.48(zod@4.4.3) optionalDependencies: '@ai-sdk/anthropic': 4.0.21(zod@4.4.3) '@ai-sdk/openai': 4.0.20(zod@4.4.3) - wrangler@4.114.0(@cloudflare/workers-types@5.20260727.1): + wrangler@4.114.0(@cloudflare/workers-types@5.20260801.1): dependencies: '@cloudflare/kv-asset-handler': 0.5.0 '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260722.1) @@ -17440,12 +18777,35 @@ snapshots: unenv: 2.0.0-rc.24 workerd: 1.20260722.1 optionalDependencies: - '@cloudflare/workers-types': 5.20260727.1 + '@cloudflare/workers-types': 5.20260801.1 + fsevents: 2.3.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + wrangler@4.118.0(@cloudflare/workers-types@5.20260801.1): + dependencies: + '@cloudflare/kv-asset-handler': 0.5.0 + '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260730.1) + blake3-wasm: 2.1.5 + esbuild: 0.28.1 + miniflare: 5.20260730.0-alpha + path-to-regexp: 6.3.0 + unenv: 2.0.0-rc.24 + workerd: 1.20260730.1 + optionalDependencies: + '@cloudflare/workers-types': 5.20260801.1 fsevents: 2.3.3 transitivePeerDependencies: - bufferutil - utf-8-validate + wrap-ansi@6.2.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 @@ -17463,6 +18823,12 @@ snapshots: ws@8.21.0: {} + ws@8.21.1: {} + + wsl-utils@0.1.0: + dependencies: + is-wsl: 3.1.1 + wsl-utils@0.3.1: dependencies: is-wsl: 3.1.1 @@ -17478,7 +18844,7 @@ snapshots: '@oozcitak/dom': 2.0.2 '@oozcitak/infra': 2.0.2 '@oozcitak/util': 10.0.0 - js-yaml: 4.3.0 + js-yaml: 4.3.1 xmlchars@2.2.0: optional: true @@ -17491,13 +18857,13 @@ snapshots: lib0: 0.2.117 yjs: 13.6.31 - y-partyserver@2.2.0(@cloudflare/workers-types@5.20260727.1)(partyserver@0.5.8(@cloudflare/workers-types@5.20260727.1))(yjs@13.6.31): + y-partyserver@2.2.0(@cloudflare/workers-types@5.20260801.1)(partyserver@0.5.9(@cloudflare/workers-types@5.20260801.1))(yjs@13.6.31): dependencies: - '@cloudflare/workers-types': 5.20260727.1 + '@cloudflare/workers-types': 5.20260801.1 lib0: 0.2.117 lodash.debounce: 4.0.8 nanoid: 5.1.16 - partyserver: 0.5.8(@cloudflare/workers-types@5.20260727.1) + partyserver: 0.5.9(@cloudflare/workers-types@5.20260801.1) y-protocols: 1.0.7(yjs@13.6.31) yjs: 13.6.31 @@ -17537,19 +18903,34 @@ snapshots: y18n: 5.0.8 yargs-parser: 22.0.0 + yargs@18.1.0: + dependencies: + cliui: 9.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + string-width: 8.2.2 + y18n: 5.0.8 + yargs-parser: 22.0.0 + yjs@13.6.31: dependencies: lib0: 0.2.117 + yn@3.1.1: {} + yocto-queue@0.1.0: {} yocto-queue@1.2.2: {} - yocto-spinner@1.2.0: + yocto-spinner@1.2.2: dependencies: - yoctocolors: 2.1.2 + yoctocolors: 2.2.0 + + yoctocolors-cjs@2.1.3: {} + + yoctocolors@2.2.0: {} - yoctocolors@2.1.2: {} + yoga-layout@3.2.1: {} youch-core@0.3.3: dependencies: @@ -17560,7 +18941,7 @@ snapshots: dependencies: '@poppinss/colors': 4.1.6 '@poppinss/dumper': 0.6.5 - '@speed-highlight/core': 1.2.17 + '@speed-highlight/core': 1.2.22 cookie: 1.1.1 youch-core: 0.3.3 @@ -17606,7 +18987,7 @@ snapshots: dependencies: zod: 4.4.3 - zod-validation-error@3.5.4(zod@4.4.3): + zod-validation-error@4.0.2(zod@4.4.3): dependencies: zod: 4.4.3 @@ -17614,9 +18995,9 @@ snapshots: zod@4.4.3: {} - zustand@5.0.14(@types/react@19.2.17)(immer@11.1.8)(react@19.2.8)(use-sync-external-store@1.6.0(react@19.2.8)): + zustand@5.0.14(@types/react@19.2.18)(immer@11.1.8)(react@19.2.8)(use-sync-external-store@1.6.0(react@19.2.8)): optionalDependencies: - '@types/react': 19.2.17 + '@types/react': 19.2.18 immer: 11.1.8 react: 19.2.8 use-sync-external-store: 1.6.0(react@19.2.8) diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 67e17bfd0..a3a98b3d3 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -9,7 +9,10 @@ trustPolicyExclude: - semver@6.3.1 overrides: - dompurify: 3.4.11 + dompurify: 3.4.12 + # drizzle-kit reaches esbuild through the deprecated @esbuild-kit/* packages, + # which pin 0.18.20 — under the advisory range for GHSA esbuild <= 0.24.2. + "@esbuild-kit/core-utils>esbuild": ^0.25.12 vite: npm:@voidzero-dev/vite-plus-core@0.2.2 vitest: 4.1.10 diff --git a/src/components/UserProfileDropdown.tsx b/src/components/UserProfileDropdown.tsx index 65698b260..ab3541ec8 100644 --- a/src/components/UserProfileDropdown.tsx +++ b/src/components/UserProfileDropdown.tsx @@ -128,7 +128,17 @@ export default function UserProfileDropdown() { ) : null} { - void navigate({ to: "/settings" }); + // Stay on the current route: settings is a dialog now, and + // navigating to /settings would bounce the user out of + // whatever workspace they were in. + void navigate({ + replace: true, + search: (previous: Record) => ({ + ...previous, + settings: "account" as const, + }), + to: ".", + }); }} > diff --git a/src/components/landing/PricingSection.tsx b/src/components/landing/PricingSection.tsx index 5039263ac..055e50d2c 100644 --- a/src/components/landing/PricingSection.tsx +++ b/src/components/landing/PricingSection.tsx @@ -6,16 +6,20 @@ import { PRICING_SECTION_ID } from "#/components/landing/landing-sections"; import { Button } from "#/components/ui/button"; import { cn } from "#/lib/utils"; +// Allowances must match autumn.config.ts, which is what actually gets granted. +// The two drift silently, and this page is where a wrong number becomes a +// promise you didn't keep. const pricingPlans = [ { id: "free", name: "Free", price: "$0", features: [ - "No credit card required", - "Limited AI usage", - "Limited uploads and storage", + "500 messages a month", + "30 messages on premium models", + "50 file uploads", "Live collaboration", + "No credit card required", ], cta: "Get started", emphasized: false, @@ -23,11 +27,13 @@ const pricingPlans = [ { id: "pro", name: "Pro", - price: "Coming soon", + price: "$7.99", + priceSuffix: "per month", features: [ - "More AI usage", - "Premium models", - "Larger uploads and storage", + "3,000 messages a month", + "400 messages on premium models", + "500 file uploads", + "Live collaboration", "Priority access to new features", ], cta: "Get started", @@ -72,7 +78,12 @@ function PricingPlanCard({ plan }: { plan: (typeof pricingPlans)[number] }) {

{plan.name}

-
{plan.price}
+
+
{plan.price}
+ {"priceSuffix" in plan ? ( +
{plan.priceSuffix}
+ ) : null} +
    {plan.features.map((feature) => ( diff --git a/src/components/landing/visuals/ModelsVisual.tsx b/src/components/landing/visuals/ModelsVisual.tsx index 0a903005a..1a04f0faa 100644 --- a/src/components/landing/visuals/ModelsVisual.tsx +++ b/src/components/landing/visuals/ModelsVisual.tsx @@ -5,6 +5,7 @@ import { type WorkspaceAiChatModelId, type WorkspaceAiChatModelLevel, } from "#/features/workspaces/ai/models"; +import { Badge } from "#/components/ui/badge"; import { ProviderLogo } from "#/features/workspaces/components/ai-chat/ProviderLogo"; import { cn } from "#/lib/utils"; @@ -96,9 +97,7 @@ export function ModelsVisual() { : "text-foreground hover:text-accent-foreground focus-visible:text-accent-foreground", )} > -
    -
    {model.name}
    -
    +
    {model.name}
    ); })} @@ -110,7 +109,9 @@ export function ModelsVisual() { {detailProvider ? ( ) : null} -
    {detailModel.name}
    + {/* No truncate: the tier lives on its own row below, so the name owns + the full width. Mirrors the in-app model picker. */} +
    {detailModel.name}

    {detailModel.description} @@ -121,7 +122,13 @@ export function ModelsVisual() { - + {/* Both tiers render so the row holds one height while hovering models. */} +

    + Cost + + {detailModel.billingTier === "premium" ? "Premium" : "Standard"} + +
    ); diff --git a/src/components/ui/badge.tsx b/src/components/ui/badge.tsx index f2f636ab9..654b5bf4c 100644 --- a/src/components/ui/badge.tsx +++ b/src/components/ui/badge.tsx @@ -13,6 +13,12 @@ const badgeVariants = cva( secondary: "bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80", destructive: "bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20", + // Paid tiers: premium models, Pro plan, upgrade prompts. Deliberately a + // neutral fill rather than a hue — every accent in the palette is either + // already claimed (amber is --warning, blue is --info) or too light for + // small text, and brand colors aren't defined yet. In neutral chrome, + // "filled" is the strongest emphasis available and it can't clash later. + premium: "bg-primary text-primary-foreground [a]:hover:bg-primary/90", outline: "border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground", ghost: "hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50", link: "text-primary underline-offset-4 hover:underline", diff --git a/src/features/account/components/AccountSection.tsx b/src/features/account/components/AccountSection.tsx new file mode 100644 index 000000000..b6a95441a --- /dev/null +++ b/src/features/account/components/AccountSection.tsx @@ -0,0 +1,78 @@ +import { LogOut } from "lucide-react"; + +import { Avatar, AvatarFallback, AvatarImage } from "#/components/ui/avatar"; +import { Button } from "#/components/ui/button"; +import { DeleteAccountSection } from "#/features/account/components/DeleteAccountSection"; +import { + Item, + ItemContent, + ItemDescription, + ItemGroup, + ItemSeparator, + ItemTitle, +} from "#/components/ui/item"; + +interface AccountSectionProps { + createdAt?: Date | string | null; + email?: string | null; + image?: string | null; + name?: string | null; + onSignOut: () => void; +} + +export function AccountSection({ createdAt, email, image, name, onSignOut }: AccountSectionProps) { + const displayName = name || email || "Guest"; + const memberSince = formatMemberSince(createdAt); + + return ( + // No heading: the active tab already says which section this is. gap-0 / + // my-0 / px-0 undo the defaults — ItemGroup adds gap-2.5 and ItemSeparator + // my-2, which together leave a dead band around every divider. + + {/* Email sits under the name rather than in its own row: guests have no + email, and a row reading "—" is worse than no row. */} + + + + {displayName.charAt(0).toUpperCase()} + + + {displayName} + {email ? {email} : null} + + + + {memberSince ? ( + + + Member since + + {memberSince} + + ) : null} + + + {/* Both account actions share a row: two buttons stacked with a divider + between them made a short list look like three separate sections. */} + + + + + + ); +} + +function formatMemberSince(createdAt: AccountSectionProps["createdAt"]) { + if (!createdAt) { + return null; + } + + const date = createdAt instanceof Date ? createdAt : new Date(createdAt); + + return Number.isNaN(date.getTime()) + ? null + : date.toLocaleDateString(undefined, { year: "numeric", month: "long", day: "numeric" }); +} diff --git a/src/features/account/components/AccountSettingsDialog.tsx b/src/features/account/components/AccountSettingsDialog.tsx new file mode 100644 index 000000000..6cbb76950 --- /dev/null +++ b/src/features/account/components/AccountSettingsDialog.tsx @@ -0,0 +1,117 @@ +import { useQuery, useQueryClient } from "@tanstack/react-query"; +import { useNavigate, useRouter } from "@tanstack/react-router"; +import { toast } from "sonner"; + +import { + Dialog, + DialogContent, + DialogDescription, + DialogHeader, + DialogTitle, +} from "#/components/ui/dialog"; +import { Tabs, TabsContent, TabsList, TabsTrigger } from "#/components/ui/tabs"; +import { AccountSection } from "#/features/account/components/AccountSection"; +import { PlanBillingSection } from "#/features/account/components/PlanBillingSection"; +import { signOutCurrentUser } from "#/lib/auth-sign-out"; +import { getErrorMessage } from "#/lib/error-message"; +import { getAuthSessionQueryOptions } from "#/lib/session-query"; + +export const ACCOUNT_SETTINGS_TABS = ["account", "plan"] as const; + +export type AccountSettingsTab = (typeof ACCOUNT_SETTINGS_TABS)[number]; + +const TAB_TRIGGER = + "justify-start rounded-sm px-2 py-1.5 data-active:bg-accent data-active:text-accent-foreground data-active:shadow-none! dark:data-active:border-transparent dark:data-active:bg-accent"; + +interface AccountSettingsDialogProps { + onOpenChange: (open: boolean) => void; + onTabChange: (tab: AccountSettingsTab) => void; + open: boolean; + tab: AccountSettingsTab; +} + +export function AccountSettingsDialog({ + onOpenChange, + onTabChange, + open, + tab, +}: AccountSettingsDialogProps) { + const navigate = useNavigate(); + const router = useRouter(); + const queryClient = useQueryClient(); + const { data: session } = useQuery(getAuthSessionQueryOptions()); + + const user = session?.user; + + const handleSignOut = async () => { + try { + await signOutCurrentUser({ queryClient, router, navigate }); + } catch (error) { + toast.error(getErrorMessage(error, "Unable to sign out right now.")); + } + }; + + return ( + + + + Settings + + Manage your account, plan, and data. + + + + {/* Vertical nav on desktop, a horizontal strip on phones — a fixed side + rail is what makes settings modals unusable on small screens. */} + onTabChange(value as AccountSettingsTab)} + orientation="vertical" + className="flex-col gap-0 sm:flex-row" + > + {/* The divider lives on this wrapper, not on TabsList: TabsTrigger is + flex-1, so stretching the list to full height makes the tabs share + it equally and drift apart. The list keeps its natural height and + sits at the top. */} +
    + {/* No track: bg-transparent on the list, and the active tab reads as + a filled row like a dropdown item rather than a raised pill. */} + + {/* shadow-none needs ! because the variant's shadow selector is more + specific than a bare data-active override. */} + + Account + + + Plan & usage + + +
    + + {/* Fixed height, not min-height: a floor only holds while every tab + happens to fit under it, so it silently starts drifting again as + soon as one grows. A fixed height is always that height; max-h + clamps it on short viewports, and anything taller scrolls inside. */} +
    + {/* Deleting the account lives under Account rather than its own tab — + one destructive row doesn't justify a section of its own. */} + + { + void handleSignOut(); + }} + /> + + + + +
    +
    +
    +
    + ); +} diff --git a/src/features/account/components/DeleteAccountSection.tsx b/src/features/account/components/DeleteAccountSection.tsx index b3c2685da..188b67e07 100644 --- a/src/features/account/components/DeleteAccountSection.tsx +++ b/src/features/account/components/DeleteAccountSection.tsx @@ -42,14 +42,9 @@ export function DeleteAccountSection() { }; return ( -
    -
    -

    Danger zone

    -

    - Permanently delete your ThinkEx account. Every workspace you own will also be deleted, - including all items and files inside them. This action cannot be undone. -

    -
    + <> + {/* No heading and no blurb: the consequences live in the confirm dialog, + which is where someone actually needs to read them. */} -
    + ); } diff --git a/src/features/account/components/PlanBillingSection.tsx b/src/features/account/components/PlanBillingSection.tsx new file mode 100644 index 000000000..1931df91d --- /dev/null +++ b/src/features/account/components/PlanBillingSection.tsx @@ -0,0 +1,171 @@ +import { useCustomer } from "autumn-js/react"; + +import { Badge } from "#/components/ui/badge"; +import { Button } from "#/components/ui/button"; +import { + Item, + ItemActions, + ItemContent, + ItemGroup, + ItemSeparator, + ItemTitle, +} from "#/components/ui/item"; +import { Progress } from "#/components/ui/progress"; +import { Skeleton } from "#/components/ui/skeleton"; +import { PRO_PLAN_ID, useIsProPlan } from "#/features/account/use-pro-plan"; + +// Feature IDs are the contract with autumn.config.ts. Labels are ours. +const METERS = [ + { featureId: "standard_messages", label: "Standard messages" }, + { featureId: "premium_messages", label: "Premium messages" }, + { featureId: "file_uploads", label: "File uploads" }, +] as const; + +export function PlanBillingSection() { + const { data: customer, error, isLoading, attach, openCustomerPortal } = useCustomer(); + // An error leaves `customer` undefined with loading finished, which would read + // as a confident "Free, nothing included" — the one wrong answer a paying + // customer must never be shown. Held in the loading state instead: skeletons + // say "unknown", and the plan row stays absent rather than lying. + const isPending = isLoading || Boolean(error); + + const resetsOn = formatResetDate( + METERS.map((meter) => customer?.balances?.[meter.featureId]?.nextResetAt).find( + (value): value is number => typeof value === "number", + ), + ); + + const isPro = useIsProPlan(); + + return ( + // No heading — the active tab already says "Plan & usage". + + {/* Plan gets its own labelled row rather than a chip beside a button — + it's the headline fact of this panel, not an afterthought. */} + {isPending ? null : ( + <> + {/* Label, status, action on one row — the action belongs next to the + thing it changes, not stranded at the bottom of the panel. */} + + + Plan + + {isPro ? "Pro" : "Free"} + + {isPro ? ( + + ) : ( + + )} + + + + + {/* Every allowance shares one monthly reset, so this is one row rather + than the same date repeated under each meter. */} + {resetsOn ? ( + <> + + + Resets + + {resetsOn} + + + + ) : null} + + )} + + {/* No dividers between meters — they're one list of the same thing, and + hairlines made three related bars read as three sections. */} + {METERS.map((meter) => + isPending ? ( + + +
    + + +
    + +
    +
    + ) : ( + + ), + )} +
    + ); +} + +interface UsageMeterProps { + balance?: { granted?: number | null; remaining?: number | null }; + label: string; +} + +function UsageMeter({ balance, label }: UsageMeterProps) { + // A feature with no balance means the plan doesn't grant it at all. Say so + // rather than rendering 0 / 0, which reads like something is broken. + if (!balance) { + return ( + + + {label} + + Not included + + ); + } + + const granted = balance.granted ?? 0; + const remaining = Math.max(0, balance.remaining ?? 0); + const used = Math.max(0, granted - remaining); + + return ( + + +
    + {label} + {/* Bar fills as you spend rather than draining, and the number counts + the same direction. A gauge emptying toward zero makes people + ration a limit they will almost never reach. */} + + {used.toLocaleString()} of {granted.toLocaleString()} + +
    + 0 ? (used / granted) * 100 : 0} className="h-1.5" /> +
    +
    + ); +} + +function formatResetDate(nextResetAt?: number) { + if (!nextResetAt) { + return null; + } + + const date = new Date(nextResetAt); + + return Number.isNaN(date.getTime()) + ? null + : date.toLocaleDateString(undefined, { month: "long", day: "numeric" }); +} diff --git a/src/features/account/components/SettingsPage.tsx b/src/features/account/components/SettingsPage.tsx deleted file mode 100644 index c8e948f23..000000000 --- a/src/features/account/components/SettingsPage.tsx +++ /dev/null @@ -1,114 +0,0 @@ -import { useQuery, useQueryClient } from "@tanstack/react-query"; -import { useCanGoBack, useNavigate, useRouter } from "@tanstack/react-router"; -import { ArrowLeft, LogOut, Settings } from "lucide-react"; -import { toast } from "sonner"; - -import AppShell from "#/components/AppShell"; -import { Avatar, AvatarFallback, AvatarImage } from "#/components/ui/avatar"; -import { Button } from "#/components/ui/button"; -import { Field, FieldGroup, FieldLabel } from "#/components/ui/field"; -import { Input } from "#/components/ui/input"; -import { DeleteAccountSection } from "#/features/account/components/DeleteAccountSection"; -import { signOutCurrentUser } from "#/lib/auth-sign-out"; -import { getErrorMessage } from "#/lib/error-message"; -import { getAuthSessionQueryOptions } from "#/lib/session-query"; - -export function SettingsPage() { - const navigate = useNavigate(); - const router = useRouter(); - const canGoBack = useCanGoBack(); - const queryClient = useQueryClient(); - const { data: session } = useQuery(getAuthSessionQueryOptions()); - - const user = session?.user; - const displayName = user?.name || user?.email || "User"; - - const handleBack = () => { - if (canGoBack) { - router.history.back(); - return; - } - - void navigate({ to: "/home" }); - }; - - const handleSignOut = async () => { - try { - await signOutCurrentUser({ - queryClient, - router, - navigate, - }); - } catch (error) { - toast.error(getErrorMessage(error, "Unable to sign out right now.")); - } - }; - - return ( - - - ); -} diff --git a/src/features/account/use-pro-plan.ts b/src/features/account/use-pro-plan.ts new file mode 100644 index 000000000..d7fed91f9 --- /dev/null +++ b/src/features/account/use-pro-plan.ts @@ -0,0 +1,23 @@ +import { useCustomer } from "autumn-js/react"; + +export const PRO_PLAN_ID = "pro"; + +/** + * Whether Pro is active right now. Lives on its own because three surfaces need + * it — the plan panel, the model picker, the composer notice — and every one of + * them uses it to decide whether an upgrade prompt is honest. A prompt shown to + * someone who already pays reads as the product not knowing who they are. + * + * False while loading, so an upgrade CTA can never flash at a subscriber. + * `subscriptions` also carries scheduled plans, and the status enum is open, so + * only an explicitly active Pro counts. + */ +export function useIsProPlan() { + const { data: customer } = useCustomer(); + + return Boolean( + customer?.subscriptions?.some( + (subscription) => subscription.planId === PRO_PLAN_ID && subscription.status === "active", + ), + ); +} diff --git a/src/features/workspaces/ai/ai-thread.ts b/src/features/workspaces/ai/ai-thread.ts index 6c46ef44f..8fe38c3bb 100644 --- a/src/features/workspaces/ai/ai-thread.ts +++ b/src/features/workspaces/ai/ai-thread.ts @@ -227,9 +227,16 @@ export function createAIThreadClass(getUserAIStore: () => typeof UserAIStore) { void this.keepAliveWhile(() => this._maybeGenerateThreadTitle()); } - const modelId = resolveWorkspaceAiChatModelId(ctx.body?.modelId); - - if (!ctx.continuation) { + let modelId = resolveWorkspaceAiChatModelId(ctx.body?.modelId); + + if (ctx.continuation) { + // A continuation resumes a turn that was already gated on its first + // step, and possibly downgraded there. The body still carries whatever + // the user picked, so re-reading it would put the rejected model back + // for every tool round-trip after the first — running on a tier with no + // balance and billing it as the model the gate actually allowed. + modelId = this.activeUsageContext?.modelId ?? modelId; + } else { const access = await checkWorkspaceAiMessageAccess({ env: this.env, modelId, @@ -237,9 +244,22 @@ export function createAIThreadClass(getUserAIStore: () => typeof UserAIStore) { }); if (!access.allowed) { - throw new Error("Usage limit reached"); + // Carries the reset date because this is the stale-client backstop: + // the composer warns before sending, so anyone who reaches here got + // no warning and an unexplained failure would be the whole story. + // ISO date rather than a locale format — this is formatted on the + // server, which has no idea where the reader is. + throw new Error( + access.resetsAt + ? `Usage limit reached. Resets ${new Date(access.resetsAt).toISOString().slice(0, 10)}.` + : "Usage limit reached.", + ); } + // May differ from what was selected: an empty tier falls through to the + // other one rather than failing the turn. + modelId = access.modelId; + this.activeUsageContext = { modelId, thread, diff --git a/src/features/workspaces/ai/models.ts b/src/features/workspaces/ai/models.ts index 5a933254e..0664cb379 100644 --- a/src/features/workspaces/ai/models.ts +++ b/src/features/workspaces/ai/models.ts @@ -17,9 +17,21 @@ export type WorkspaceAiChatModelLevel = 1 | 2 | 3 | 4; export type WorkspaceAiChatModelBillingTier = "standard" | "premium"; // Slugs, names, context windows, and pricing are sourced from the live Vercel -// AI Gateway catalog (GET https://ai-gateway.vercel.sh/v1/models). The 1-4 -// cost level is derived from each model's real output-token price; speed and +// AI Gateway catalog (GET https://ai-gateway.vercel.sh/v1/models). Speed and // intelligence are relative, lay-friendly estimates. +// +// `cost` is a real multiplier, not a 1-4 level: what one typical chat step +// (~15k input at ~65% cache hit, ~500 output) costs relative to Luna, priced +// across input, cached input, and output rather than output alone — output +// price by itself understates the models we send the most tokens to. +// +// Measured 1.0x / 2.5x / 4.7x / 9.5x / 10x, rounded to a clean ladder so these +// double as credit weights if usage is ever metered. Re-derive from the gateway +// catalog when the lineup changes; a stale multiplier misprices the plan. +// +// Internal only — never rendered. The picker shows a "Premium" badge off +// billingTier instead, because a raw multiplier means nothing to a user who +// isn't paying per message. export const WORKSPACE_AI_CHAT_MODELS = [ { id: "auto", @@ -48,7 +60,7 @@ export const WORKSPACE_AI_CHAT_MODELS = [ bestFor: "Writing, analysis & coding", intelligence: 4, speed: 3, - cost: 4, + cost: 10, billingTier: "premium", }, { @@ -61,7 +73,7 @@ export const WORKSPACE_AI_CHAT_MODELS = [ bestFor: "Quick help & short drafts", intelligence: 2, speed: 4, - cost: 1, + cost: 5, billingTier: "standard", }, { @@ -75,7 +87,7 @@ export const WORKSPACE_AI_CHAT_MODELS = [ bestFor: "Planning, research & knowledge work", intelligence: 4, speed: 3, - cost: 3, + cost: 10, billingTier: "premium", }, { @@ -102,7 +114,7 @@ export const WORKSPACE_AI_CHAT_MODELS = [ bestFor: "Long docs, research & hard problems", intelligence: 4, speed: 2, - cost: 3, + cost: 10, billingTier: "premium", }, { @@ -116,7 +128,7 @@ export const WORKSPACE_AI_CHAT_MODELS = [ bestFor: "Fast answers & big context", intelligence: 3, speed: 4, - cost: 1, + cost: 3, billingTier: "standard", }, ] as const; diff --git a/src/features/workspaces/ai/use-workspace-ai-allowance.ts b/src/features/workspaces/ai/use-workspace-ai-allowance.ts new file mode 100644 index 000000000..722f716c2 --- /dev/null +++ b/src/features/workspaces/ai/use-workspace-ai-allowance.ts @@ -0,0 +1,94 @@ +import { useCustomer } from "autumn-js/react"; + +import { + getWorkspaceAiChatModelById, + type WorkspaceAiChatModelBillingTier, + type WorkspaceAiChatModelId, +} from "#/features/workspaces/ai/models"; +import { + resolveWorkspaceAiMessageAccess, + WORKSPACE_AI_MESSAGE_FEATURE_IDS, +} from "#/integrations/autumn/workspace-ai-access"; + +export interface WorkspaceAiTierBalance { + hasBalance: boolean; + remaining: number | null; + resetsAt: number | null; +} + +export type WorkspaceAiTierBalances = Record< + WorkspaceAiChatModelBillingTier, + WorkspaceAiTierBalance +>; + +const UNKNOWN: WorkspaceAiTierBalance = { hasBalance: true, remaining: null, resetsAt: null }; + +/** + * Advisory only — `useCustomer().check()` reads the cached customer with no + * network call, which is what makes it cheap enough to drive chat UI. The server + * check is the actual gate; this exists so the user is told before they act + * rather than after something unexpected happened. + * + * Assumes balance while loading, so nothing ever renders as blocked on a slow + * connection and then unblocks. + */ +export function useWorkspaceAiTierBalances(): WorkspaceAiTierBalances { + const { check, isLoading } = useCustomer(); + + if (isLoading) { + return { premium: UNKNOWN, standard: UNKNOWN }; + } + + const read = (tier: WorkspaceAiChatModelBillingTier): WorkspaceAiTierBalance => { + const result = check({ featureId: WORKSPACE_AI_MESSAGE_FEATURE_IDS[tier] }); + + return { + hasBalance: result.allowed, + remaining: result.balance?.remaining ?? null, + resetsAt: result.balance?.nextResetAt ?? null, + }; + }; + + return { premium: read("premium"), standard: read("standard") }; +} + +export interface WorkspaceAiAllowance { + /** The model that will answer instead, or null when the choice stands. */ + fallbackModelId: WorkspaceAiChatModelId | null; + /** True once nothing is left to send with. */ + isBlocked: boolean; + resetsAt: number | null; +} + +/** + * Scoped to the selected model on purpose: telling someone on Auto that their + * premium balance is empty is noise about a bucket they aren't spending from. + * + * Reports only what happens to the next message, never a remaining count. A + * countdown above the composer is the mechanic that makes people ration an + * allowance they will not reach — and premium running out is not even a wall, + * since the turn still sends on the fallback model. + */ +export function useWorkspaceAiAllowance(modelId: WorkspaceAiChatModelId): WorkspaceAiAllowance { + const balances = useWorkspaceAiTierBalances(); + + const tier = getWorkspaceAiChatModelById(modelId).billingTier; + const selected = balances[tier]; + const fallback = balances[tier === "premium" ? "standard" : "premium"]; + + // Runs the server's own decision rather than a parallel copy of it. Restating + // the matrix here is what let the composer promise one model while the gate + // picked another, and it would drift again the next time the rules move. + const access = resolveWorkspaceAiMessageAccess({ + chosenModelId: modelId, + chosenTierAllowed: selected.hasBalance, + fallbackTierAllowed: fallback.hasBalance, + resetsAt: selected.resetsAt, + }); + + return { + fallbackModelId: access.allowed && access.modelId !== modelId ? access.modelId : null, + isBlocked: !access.allowed, + resetsAt: selected.resetsAt, + }; +} diff --git a/src/features/workspaces/components/ai-chat/AiChatAllowanceNotice.tsx b/src/features/workspaces/components/ai-chat/AiChatAllowanceNotice.tsx new file mode 100644 index 000000000..5ebaa5d56 --- /dev/null +++ b/src/features/workspaces/components/ai-chat/AiChatAllowanceNotice.tsx @@ -0,0 +1,92 @@ +import { Link } from "@tanstack/react-router"; + +import { + getWorkspaceAiChatModelById, + type WorkspaceAiChatModelId, +} from "#/features/workspaces/ai/models"; +import { useIsProPlan } from "#/features/account/use-pro-plan"; +import { useWorkspaceAiAllowance } from "#/features/workspaces/ai/use-workspace-ai-allowance"; + +interface AiChatAllowanceNoticeProps { + modelId: WorkspaceAiChatModelId; +} + +/** + * Announces what is about to happen to this message; never keeps score. A + * running count above the composer is the most-looked-at pixel in the app, and + * watching it tick down makes people ration an allowance they will almost never + * reach — which costs more in lost conversions than it saves in usage. + * + * So there is no "running low" state: premium running out is not a wall, the + * turn still sends on the fallback, and warning about a painless event only + * manufactures dread. + */ +export function AiChatAllowanceNotice({ modelId }: AiChatAllowanceNoticeProps) { + const allowance = useWorkspaceAiAllowance(modelId); + const resetsOn = formatResetDate(allowance.resetsAt); + // Subscribers get the fact without the pitch; there is nothing left to sell + // them, so an upgrade line would only advertise that we forgot they pay. + const isPro = useIsProPlan(); + const upgrade = isPro ? null : ( + <> + {" "} + Pro includes 3,000 standard and 400 premium a month + + ); + + if (allowance.isBlocked) { + return ( + + You’re out of messages{resetsOn ? ` until ${resetsOn}` : ""}.{upgrade} + + ); + } + + if (allowance.fallbackModelId) { + // The model the gate actually resolved, not a guess made here. + const fallbackName = getWorkspaceAiChatModelById(allowance.fallbackModelId).name; + + return ( + + {fallbackName} will answer this — no {getWorkspaceAiChatModelById(modelId).name} left + {resetsOn ? ` until ${resetsOn}` : ""}.{upgrade} + + ); + } + + return null; +} + +function Notice({ children }: { children: React.ReactNode }) { + return

    {children}

    ; +} + +// Gain-framed on purpose: naming what Pro includes converts better than telling +// someone a limit was reached. +function UpgradeLink({ children }: { children: React.ReactNode }) { + return ( + ) => ({ + ...previous, + settings: "plan" as const, + })} + className="font-medium text-foreground underline underline-offset-4" + > + {children} + + ); +} + +function formatResetDate(resetsAt: number | null) { + if (!resetsAt) { + return null; + } + + const date = new Date(resetsAt); + + return Number.isNaN(date.getTime()) + ? null + : date.toLocaleDateString(undefined, { month: "long", day: "numeric" }); +} diff --git a/src/features/workspaces/components/ai-chat/AiChatModelPicker.tsx b/src/features/workspaces/components/ai-chat/AiChatModelPicker.tsx index bd03f0d30..64b9ebed4 100644 --- a/src/features/workspaces/components/ai-chat/AiChatModelPicker.tsx +++ b/src/features/workspaces/components/ai-chat/AiChatModelPicker.tsx @@ -1,6 +1,8 @@ +import { Link } from "@tanstack/react-router"; import { Check, ChevronUp, Waypoints } from "lucide-react"; import { useState } from "react"; +import { Badge } from "#/components/ui/badge"; import { Popover, PopoverContent, PopoverTrigger } from "#/components/ui/popover"; import { getWorkspaceAiChatModelById, @@ -10,6 +12,8 @@ import { type WorkspaceAiChatModelId, type WorkspaceAiChatModelLevel, } from "#/features/workspaces/ai/models"; +import { useIsProPlan } from "#/features/account/use-pro-plan"; +import { useWorkspaceAiTierBalances } from "#/features/workspaces/ai/use-workspace-ai-allowance"; import { ProviderLogo } from "#/features/workspaces/components/ai-chat/ProviderLogo"; import { WorkspaceToolbarTextButton } from "#/features/workspaces/components/WorkspaceToolbar"; import { cn } from "#/lib/utils"; @@ -35,6 +39,7 @@ export default function AiChatModelPicker({ modelId, onModelChange }: AiChatMode const selectedModel = getWorkspaceAiChatModelById(modelId); const detailModel = getWorkspaceAiChatModelById(previewId ?? modelId); + const premiumSpent = !useWorkspaceAiTierBalances().premium.hasBalance; // The "Auto" option lives outside the provider groups — it's ThinkEx's own // choice, not a provider's model. @@ -119,9 +124,14 @@ export default function AiChatModelPicker({ modelId, onModelChange }: AiChatMode )} > {model.name} - {isSelected ? ( - - ) : null} + {/* Quiet text rather than a badge: the rows are dense, and a + filled pill on every premium row would out-shout the names. */} + + {model.billingTier === "premium" ? ( + Premium + ) : null} + {isSelected ? : null} + ); })} @@ -130,13 +140,21 @@ export default function AiChatModelPicker({ modelId, onModelChange }: AiChatMode {/* Right: details for the hovered (or selected) model */} - + ); } -function ModelDetails({ model }: { model: WorkspaceAiChatModel }) { +function ModelDetails({ + model, + premiumSpent, +}: { + model: WorkspaceAiChatModel; + premiumSpent: boolean; +}) { + const isPro = useIsProPlan(); + return (
    @@ -146,9 +164,9 @@ function ModelDetails({ model }: { model: WorkspaceAiChatModel }) { {model.provider !== "auto" ? ( ) : null} -
    -
    {model.name}
    -
    + {/* No truncate: the tier moved down to its own row, so the name owns the + full width and long names wrap rather than getting cut. */} +
    {model.name}

    {model.description}

    @@ -160,7 +178,38 @@ function ModelDetails({ model }: { model: WorkspaceAiChatModel }) {
    - + {/* Both tiers render a badge so the row keeps one height as you hover + between models. */} +
    + Cost + + {model.billingTier === "premium" ? "Premium" : "Standard"} + +
    + {/* Availability lives here, not on every list row: it's one tier-level + fact, and the detail panel shows one model at a time. This is also + the highest-intent upgrade moment — reaching for a premium model is + choosing to upgrade, rather than being interrupted mid-message. */} + {model.billingTier === "premium" && premiumSpent ? ( + // Subscribers get the fact without the pitch. Offering Pro to someone + // who already pays for it reads as the product not knowing who they + // are, and the plan panel has nothing more to sell them anyway. + isPro ? ( + None left this month + ) : ( + ) => ({ + ...previous, + settings: "plan" as const, + })} + className="text-xs font-medium text-foreground underline underline-offset-4" + > + None left this month — get 400 with Pro + + ) + ) : null} ); diff --git a/src/features/workspaces/components/ai-chat/AiChatPromptInput.tsx b/src/features/workspaces/components/ai-chat/AiChatPromptInput.tsx index 837b5f10b..49cf977cf 100644 --- a/src/features/workspaces/components/ai-chat/AiChatPromptInput.tsx +++ b/src/features/workspaces/components/ai-chat/AiChatPromptInput.tsx @@ -16,6 +16,7 @@ import { import type { AIInspectorSnapshot } from "#/features/workspaces/ai/ai-inspector"; import { AiChatAttachmentDropBridge } from "#/features/workspaces/components/ai-chat/AiChatAttachmentDrop"; import AiChatModelPicker from "#/features/workspaces/components/ai-chat/AiChatModelPicker"; +import { AiChatAllowanceNotice } from "#/features/workspaces/components/ai-chat/AiChatAllowanceNotice"; import AiChatPromptContextBar from "#/features/workspaces/components/ai-chat/AiChatPromptContextBar"; import AiChatPromptSubmit from "#/features/workspaces/components/ai-chat/AiChatPromptSubmit"; import { @@ -162,6 +163,7 @@ export default function AiChatPromptInput({ + { recordWorkspaceFileExtractionOutcome({ + // Null only when extraction itself never completed; a failure in the + // steps after it still owes whatever LlamaParse already charged. + creditsUsed: extractionCreditsUsed, durationMs: Date.now() - event.timestamp.getTime(), enhancement: { durationMs: Date.now() - enhancementStartedAt, @@ -215,6 +224,7 @@ export class WorkspaceFileExtractionWorkflow extends WorkflowEntrypoint< await step.do("record extraction outcome", async () => { recordWorkspaceFileExtractionOutcome({ + creditsUsed: getExtractionCreditsUsed(extraction.metadata), durationMs: Date.now() - event.timestamp.getTime(), enhancement: { durationMs: Date.now() - enhancementStartedAt, @@ -268,3 +278,8 @@ function assertWorkflowParams( function getErrorMessage(error: unknown) { return error instanceof Error ? error.message : String(error); } + +function getExtractionCreditsUsed(metadata: StagedPageExtractionResult["metadata"]) { + // Only LlamaParse reports credits; other providers leave the key absent. + return typeof metadata.creditsUsed === "number" ? metadata.creditsUsed : null; +} diff --git a/src/features/workspaces/upload/workspace-file-intake-observability.ts b/src/features/workspaces/upload/workspace-file-intake-observability.ts index 4092d8fbd..d97449674 100644 --- a/src/features/workspaces/upload/workspace-file-intake-observability.ts +++ b/src/features/workspaces/upload/workspace-file-intake-observability.ts @@ -71,6 +71,7 @@ export async function observeWorkspaceFileIntake(input: { capturePostHogServerEvent({ distinctId: observation.userId ?? input.requestId, event: "workspace_file_intake_completed", + processPerson: Boolean(observation.userId), properties: fields, requestContext, }); diff --git a/src/integrations/autumn/client.server.ts b/src/integrations/autumn/client.server.ts new file mode 100644 index 000000000..b9736d175 --- /dev/null +++ b/src/integrations/autumn/client.server.ts @@ -0,0 +1,148 @@ +import { Autumn, ResponseValidationError } from "autumn-js"; +import { eq } from "drizzle-orm"; + +import { user } from "#/db/schema"; +import { createDbContext } from "#/db/server"; +import { resolveAutumnSecretKey } from "#/integrations/autumn/secret-key"; +import { + logOperationalEvent, + recordOperationalFailure, +} from "#/integrations/observability/operational-events"; + +export interface AutumnCustomerFields { + email?: string; + metadata: { + account_type?: "anonymous" | "registered"; + email_verified?: boolean; + source: "thinkex"; + user_created_at?: string; + }; + name?: string; +} + +const DEFAULT_AUTUMN_CUSTOMER_FIELDS = { + metadata: { + source: "thinkex", + }, +} as const satisfies AutumnCustomerFields; + +/** Null when no key resolves, which callers treat as "skip tracking". */ +export function getAutumnClient(env: Cloudflare.Env) { + const secretKey = resolveAutumnSecretKey(env); + + if (!secretKey) { + return null; + } + + return new Autumn({ + secretKey, + }); +} + +export async function getAutumnCustomerFields(userId: string): Promise { + let dbContext: Awaited> | undefined; + + try { + dbContext = await createDbContext(); + + const [row] = await dbContext.db + .select({ + createdAt: user.createdAt, + email: user.email, + emailVerified: user.emailVerified, + isAnonymous: user.isAnonymous, + name: user.name, + }) + .from(user) + .where(eq(user.id, userId)) + .limit(1); + + if (!row) { + return DEFAULT_AUTUMN_CUSTOMER_FIELDS; + } + + const isAnonymous = Boolean(row.isAnonymous); + + return { + ...(isAnonymous ? {} : getNamedCustomerFields(row)), + metadata: { + ...DEFAULT_AUTUMN_CUSTOMER_FIELDS.metadata, + account_type: isAnonymous ? "anonymous" : "registered", + email_verified: row.emailVerified, + user_created_at: row.createdAt.toISOString(), + }, + }; + } catch (error) { + recordOperationalFailure({ + distinctId: userId, + error, + event: "autumn_customer_fields", + }); + + return DEFAULT_AUTUMN_CUSTOMER_FIELDS; + } finally { + await dbContext?.dispose(); + } +} + +function getNamedCustomerFields(row: { email: string; name: string }) { + return { + email: row.email.trim() || undefined, + name: row.name.trim() || undefined, + }; +} + +export interface TrackAutumnUsageInput { + env: Cloudflare.Env; + /** Operational event name, used for both the partial log and the failure. */ + event: string; + featureId: string; + /** Sent to Autumn, and mirrored into the operational log. */ + properties: Record; + userId: string; +} + +/** + * Ensures the customer exists, then records one unit of usage. Shared because + * the getOrCreate / track / partial-response / failure handling is identical for + * every metered feature — only the feature id and properties differ. + */ +export async function trackAutumnUsage(input: TrackAutumnUsageInput) { + const autumn = getAutumnClient(input.env); + + if (!autumn) { + return; + } + + const fields = { ...input.properties, feature_id: input.featureId, user_id: input.userId }; + + try { + const customerFields = await getAutumnCustomerFields(input.userId); + + await autumn.customers.getOrCreate({ customerId: input.userId, ...customerFields }); + + try { + await autumn.track({ + customerId: input.userId, + featureId: input.featureId, + value: 1, + properties: input.properties, + async: true, + }); + } catch (error) { + if (!(error instanceof ResponseValidationError)) { + throw error; + } + + // Autumn can accept an async usage event but return a slim response that + // fails the SDK's success schema. Keep that visible without escalating it. + logOperationalEvent({ + event: input.event, + fields: { ...fields, error_type: error.name, operation_stage: "track_response" }, + outcome: "partial", + }); + } + } catch (error) { + recordOperationalFailure({ distinctId: input.userId, error, event: input.event, fields }); + } +} diff --git a/src/integrations/autumn/secret-key.ts b/src/integrations/autumn/secret-key.ts new file mode 100644 index 000000000..a8a4def43 --- /dev/null +++ b/src/integrations/autumn/secret-key.ts @@ -0,0 +1,20 @@ +export interface AutumnSecretKeyEnv { + AUTUMN_PROD_SECRET_KEY?: string; + AUTUMN_SECRET_KEY?: string; +} + +/** + * Which key is present picks the Autumn environment: production holds only + * AUTUMN_PROD_SECRET_KEY, staging and dev hold only AUTUMN_SECRET_KEY. + * + * Deliberately not switched on `import.meta.env.PROD` — Vite sets that for every + * build, so staging would report into Autumn production. And a deployment that + * is missing its key returns undefined, which callers treat as "skip tracking": + * recoverable, unlike silently writing into the wrong environment. + * + * Shared so the better-auth plugin and the usage tracker can never disagree + * about which environment they are talking to. + */ +export function resolveAutumnSecretKey(env: AutumnSecretKeyEnv): string | undefined { + return env.AUTUMN_PROD_SECRET_KEY?.trim() || env.AUTUMN_SECRET_KEY?.trim() || undefined; +} diff --git a/src/integrations/autumn/workspace-ai-access.test.ts b/src/integrations/autumn/workspace-ai-access.test.ts new file mode 100644 index 000000000..31d88e94d --- /dev/null +++ b/src/integrations/autumn/workspace-ai-access.test.ts @@ -0,0 +1,124 @@ +import { describe, expect, it } from "vitest"; + +import { + getWorkspaceAiChatModelById, + WORKSPACE_AI_CHAT_MODELS, +} from "#/features/workspaces/ai/models"; +import { resolveWorkspaceAiMessageAccess } from "#/integrations/autumn/workspace-ai-access"; + +const RESETS_AT = 1_788_400_648_450; + +describe("resolveWorkspaceAiMessageAccess", () => { + it("runs the chosen model while its tier has balance", () => { + for (const chosenModelId of ["auto", "claude-sonnet", "claude-haiku"] as const) { + expect( + resolveWorkspaceAiMessageAccess({ + chosenModelId, + chosenTierAllowed: true, + fallbackTierAllowed: false, + resetsAt: RESETS_AT, + }), + ).toEqual({ allowed: true, modelId: chosenModelId }); + } + }); + + it("falls back to auto when premium is spent but standard remains", () => { + for (const chosenModelId of ["claude-sonnet", "gpt-terra", "gemini-pro"] as const) { + expect( + resolveWorkspaceAiMessageAccess({ + chosenModelId, + chosenTierAllowed: false, + fallbackTierAllowed: true, + resetsAt: RESETS_AT, + }), + ).toEqual({ allowed: true, modelId: "auto" }); + } + }); + + // The failure this guards against: auto is the model nobody changes, so if it + // blocked the moment standard ran out, the default experience would break + // first while a premium balance sat unused. + it("routes a standard model to premium when standard is spent", () => { + expect( + resolveWorkspaceAiMessageAccess({ + chosenModelId: "auto", + chosenTierAllowed: false, + fallbackTierAllowed: true, + resetsAt: RESETS_AT, + }), + ).toEqual({ allowed: true, modelId: "claude-sonnet" }); + }); + + it("blocks with the reset date once both tiers are spent", () => { + expect( + resolveWorkspaceAiMessageAccess({ + chosenModelId: "claude-sonnet", + chosenTierAllowed: false, + fallbackTierAllowed: false, + resetsAt: RESETS_AT, + }), + ).toEqual({ allowed: false, resetsAt: RESETS_AT }); + }); + + it("still blocks when no reset date is known", () => { + expect( + resolveWorkspaceAiMessageAccess({ + chosenModelId: "auto", + chosenTierAllowed: false, + fallbackTierAllowed: false, + resetsAt: null, + }), + ).toEqual({ allowed: false, resetsAt: null }); + }); + + // A fallback must never land on a model from the tier that is already empty, + // or an exhausted user would be handed a model they cannot run. + it("never falls back into the tier that is exhausted", () => { + const premiumSpent = resolveWorkspaceAiMessageAccess({ + chosenModelId: "gemini-pro", + chosenTierAllowed: false, + fallbackTierAllowed: true, + resetsAt: null, + }); + const standardSpent = resolveWorkspaceAiMessageAccess({ + chosenModelId: "gemini", + chosenTierAllowed: false, + fallbackTierAllowed: true, + resetsAt: null, + }); + + expect(premiumSpent).toEqual({ allowed: true, modelId: "auto" }); + expect(standardSpent).toEqual({ allowed: true, modelId: "claude-sonnet" }); + }); +}); + +// A guard on the hardcoded mapping rather than logic replacing it. Deriving the +// cheapest model would let array order decide a three-way tie, so the pick stays +// explicit — but gateway prices move (Luna was cut mid-quarter, and every weight +// in models.ts was rewritten after), and nothing else would notice the fallback +// quietly becoming the priciest model in the tier it lands on. +describe("fallback pricing", () => { + it("lands on the cheapest model in the tier it falls back to", () => { + for (const chosenModelId of ["auto", "claude-sonnet"] as const) { + const access = resolveWorkspaceAiMessageAccess({ + chosenModelId, + chosenTierAllowed: false, + fallbackTierAllowed: true, + resetsAt: null, + }); + + if (!access.allowed) { + throw new Error("expected a fallback"); + } + + const landedOn = getWorkspaceAiChatModelById(access.modelId); + const cheapestInTier = Math.min( + ...WORKSPACE_AI_CHAT_MODELS.filter( + (model) => model.billingTier === landedOn.billingTier, + ).map((model) => model.cost), + ); + + expect(landedOn.cost).toBe(cheapestInTier); + } + }); +}); diff --git a/src/integrations/autumn/workspace-ai-access.ts b/src/integrations/autumn/workspace-ai-access.ts new file mode 100644 index 000000000..f853b16cc --- /dev/null +++ b/src/integrations/autumn/workspace-ai-access.ts @@ -0,0 +1,61 @@ +import { + getWorkspaceAiChatModelById, + type WorkspaceAiChatModelId, + type WorkspaceAiChatModelBillingTier, +} from "#/features/workspaces/ai/models"; + +/** + * Lives here rather than next to the Autumn calls because the chat UI needs it + * too, and this module is the half with no server-only imports. + */ +export const WORKSPACE_AI_MESSAGE_FEATURE_IDS = { + standard: "standard_messages", + premium: "premium_messages", +} as const satisfies Record; + +/** + * Where a turn goes when the tier it asked for is empty. Points at catalog slots + * rather than gateway models, so repointing `auto` moves the fallback with it. + */ +const FALLBACK_MODEL_BY_TIER = { + standard: "auto", + premium: "claude-sonnet", +} as const satisfies Record; + +/** + * Returns the model the turn should actually run on, so callers use what they're + * given rather than branching on whether a downgrade happened. + */ +export type WorkspaceAiMessageAccess = + | { allowed: true; modelId: WorkspaceAiChatModelId } + | { allowed: false; resetsAt: number | null }; + +function getWorkspaceAiFallbackModelId(modelId: WorkspaceAiChatModelId): WorkspaceAiChatModelId { + const chosenTier = getWorkspaceAiChatModelById(modelId).billingTier; + + return FALLBACK_MODEL_BY_TIER[chosenTier === "premium" ? "standard" : "premium"]; +} + +/** + * The decision itself, separated from the Autumn round-trips so the whole matrix + * is testable without a network or a customer. + */ +export function resolveWorkspaceAiMessageAccess(input: { + chosenModelId: WorkspaceAiChatModelId; + chosenTierAllowed: boolean; + fallbackTierAllowed: boolean; + resetsAt: number | null; +}): WorkspaceAiMessageAccess { + if (input.chosenTierAllowed) { + return { allowed: true, modelId: input.chosenModelId }; + } + + // Falling through to the other tier keeps the default model working: if `auto` + // blocked the moment standard ran out, the model most people never change + // would be the first thing to break. + if (input.fallbackTierAllowed) { + return { allowed: true, modelId: getWorkspaceAiFallbackModelId(input.chosenModelId) }; + } + + return { allowed: false, resetsAt: input.resetsAt }; +} diff --git a/src/integrations/autumn/workspace-ai-usage.ts b/src/integrations/autumn/workspace-ai-usage.ts index 68c6deccf..d0c91e1a4 100644 --- a/src/integrations/autumn/workspace-ai-usage.ts +++ b/src/integrations/autumn/workspace-ai-usage.ts @@ -1,43 +1,15 @@ -import { Autumn, ResponseValidationError } from "autumn-js"; -import { eq } from "drizzle-orm"; - -import { user } from "#/db/schema"; -import { createDbContext } from "#/db/server"; import { getWorkspaceAiChatModelById, type WorkspaceAiChatModelId, - type WorkspaceAiChatModelBillingTier, } from "#/features/workspaces/ai/models"; import { - logOperationalEvent, - recordOperationalFailure, -} from "#/integrations/observability/operational-events"; - -export const WORKSPACE_AI_MESSAGE_FEATURE_IDS = { - standard: "standard_messages", - premium: "premium_messages", -} as const satisfies Record; - -interface AutumnRuntimeEnv { - AUTUMN_SECRET_KEY?: string; -} - -interface AutumnCustomerFields { - email?: string; - metadata: { - account_type?: "anonymous" | "registered"; - email_verified?: boolean; - source: "thinkex"; - user_created_at?: string; - }; - name?: string; -} - -const DEFAULT_AUTUMN_CUSTOMER_FIELDS = { - metadata: { - source: "thinkex", - }, -} as const satisfies AutumnCustomerFields; + resolveWorkspaceAiMessageAccess, + WORKSPACE_AI_MESSAGE_FEATURE_IDS, + type WorkspaceAiMessageAccess, +} from "#/integrations/autumn/workspace-ai-access"; +import { getAutumnClient, trackAutumnUsage } from "#/integrations/autumn/client.server"; +import { recordOperationalFailure } from "#/integrations/observability/operational-events"; +import { capturePostHogServerEvent } from "#/integrations/posthog/server"; export interface TrackWorkspaceAiMessageUsageInput { env: Cloudflare.Env; @@ -55,151 +27,85 @@ export interface CheckWorkspaceAiMessageAccessInput { export async function checkWorkspaceAiMessageAccess( input: CheckWorkspaceAiMessageAccessInput, -): Promise<{ allowed: true } | { allowed: false; reason: "usage_limit_reached" }> { - const autumn = getAutumnClient(input.env); - - if (!autumn) { - return { allowed: true }; - } - - // Usage enforcement is intentionally disabled while we learn from real usage. - // Keep this function as the future server-side gate for message quotas and - // premium model access instead of sprinkling checks through the chat runtime. - return { allowed: true }; -} - -export async function trackWorkspaceAiMessageUsage(input: TrackWorkspaceAiMessageUsageInput) { +): Promise { const autumn = getAutumnClient(input.env); + // No key configured means no plans to enforce — never gate on infrastructure. if (!autumn) { - return; + return { allowed: true, modelId: input.modelId }; } - const model = getWorkspaceAiChatModelById(input.modelId); - const featureId = WORKSPACE_AI_MESSAGE_FEATURE_IDS[model.billingTier]; - const fields = { - feature_id: featureId, - model_billing_tier: model.billingTier, - model_id: input.modelId, - thread_id: input.threadId, - user_id: input.userId, - workspace_id: input.workspaceId, - }; + const chosenTier = getWorkspaceAiChatModelById(input.modelId).billingTier; + const otherTier = chosenTier === "premium" ? "standard" : "premium"; try { - const customerFields = await getAutumnCustomerFields(input.userId); + const chosen = await autumn.check({ + customerId: input.userId, + featureId: WORKSPACE_AI_MESSAGE_FEATURE_IDS[chosenTier], + }); - await autumn.customers.getOrCreate({ + if (chosen.allowed) { + return { allowed: true, modelId: input.modelId }; + } + + // Only reached once a tier is empty, so the second call costs nothing in the + // common case. + const fallback = await autumn.check({ customerId: input.userId, - ...customerFields, + featureId: WORKSPACE_AI_MESSAGE_FEATURE_IDS[otherTier], }); - try { - await autumn.track({ - customerId: input.userId, - featureId, - value: 1, - properties: { - workspace_id: input.workspaceId, - thread_id: input.threadId, - model_id: model.id, - model_name: model.name, - gateway_model: model.gatewayModel, - model_provider: model.provider, - model_billing_tier: model.billingTier, - model_cost_level: model.cost, - feature_surface: "workspace_ai_chat", - }, - async: true, - }); - } catch (error) { - if (!(error instanceof ResponseValidationError)) { - throw error; - } + const access = resolveWorkspaceAiMessageAccess({ + chosenModelId: input.modelId, + chosenTierAllowed: false, + fallbackTierAllowed: fallback.allowed, + resetsAt: chosen.balance?.nextResetAt ?? null, + }); - // Autumn can accept an async usage event but return a slim response that - // fails the SDK's success schema. Keep that visible without escalating it. - logOperationalEvent({ - event: "workspace_ai_usage_tracking", - fields: { - ...fields, - error_type: error.name, - operation_stage: "track_response", + if (!access.allowed) { + capturePostHogServerEvent({ + distinctId: input.userId, + event: "usage_limit_reached", + properties: { + feature_id: WORKSPACE_AI_MESSAGE_FEATURE_IDS[chosenTier], + surface: "ai_message", }, - outcome: "partial", }); } + + return access; } catch (error) { + // Autumn being unreachable must not take chat down with it. Fail open and + // make the gap visible instead. recordOperationalFailure({ distinctId: input.userId, error, - event: "workspace_ai_usage_tracking", - fields, + event: "workspace_ai_access_check", + fields: { model_id: input.modelId, user_id: input.userId }, }); - } -} - -function getAutumnClient(env: Cloudflare.Env) { - const secretKey = (env as Cloudflare.Env & AutumnRuntimeEnv).AUTUMN_SECRET_KEY?.trim(); - if (!secretKey) { - return null; + return { allowed: true, modelId: input.modelId }; } - - return new Autumn({ - secretKey, - }); } -async function getAutumnCustomerFields(userId: string): Promise { - let dbContext: Awaited> | undefined; - - try { - dbContext = await createDbContext(); - - const [row] = await dbContext.db - .select({ - createdAt: user.createdAt, - email: user.email, - emailVerified: user.emailVerified, - isAnonymous: user.isAnonymous, - name: user.name, - }) - .from(user) - .where(eq(user.id, userId)) - .limit(1); - - if (!row) { - return DEFAULT_AUTUMN_CUSTOMER_FIELDS; - } - - const isAnonymous = Boolean(row.isAnonymous); - - return { - ...(isAnonymous ? {} : getNamedCustomerFields(row)), - metadata: { - ...DEFAULT_AUTUMN_CUSTOMER_FIELDS.metadata, - account_type: isAnonymous ? "anonymous" : "registered", - email_verified: row.emailVerified, - user_created_at: row.createdAt.toISOString(), - }, - }; - } catch (error) { - recordOperationalFailure({ - distinctId: userId, - error, - event: "autumn_customer_fields", - }); - - return DEFAULT_AUTUMN_CUSTOMER_FIELDS; - } finally { - await dbContext?.dispose(); - } -} +export async function trackWorkspaceAiMessageUsage(input: TrackWorkspaceAiMessageUsageInput) { + const model = getWorkspaceAiChatModelById(input.modelId); -function getNamedCustomerFields(row: { email: string; name: string }) { - return { - email: row.email.trim() || undefined, - name: row.name.trim() || undefined, - }; + await trackAutumnUsage({ + env: input.env, + event: "workspace_ai_usage_tracking", + featureId: WORKSPACE_AI_MESSAGE_FEATURE_IDS[model.billingTier], + properties: { + feature_surface: "workspace_ai_chat", + gateway_model: model.gatewayModel, + model_billing_tier: model.billingTier, + model_cost_level: model.cost, + model_id: model.id, + model_name: model.name, + model_provider: model.provider, + thread_id: input.threadId, + workspace_id: input.workspaceId, + }, + userId: input.userId, + }); } diff --git a/src/integrations/autumn/workspace-file-usage.ts b/src/integrations/autumn/workspace-file-usage.ts new file mode 100644 index 000000000..e6517f128 --- /dev/null +++ b/src/integrations/autumn/workspace-file-usage.ts @@ -0,0 +1,100 @@ +import { getAutumnClient, trackAutumnUsage } from "#/integrations/autumn/client.server"; +import { recordOperationalFailure } from "#/integrations/observability/operational-events"; +import { capturePostHogServerEvent } from "#/integrations/posthog/server"; + +export const WORKSPACE_FILE_UPLOAD_FEATURE_ID = "file_uploads"; + +export interface TrackWorkspaceFileUploadUsageInput { + assetKind: string; + env: Cloudflare.Env; + itemId: string; + userId: string | null; + workspaceId: string; +} + +/** + * Metered per upload rather than per page. LlamaParse bills per page, but nobody + * knows a PDF's page count before uploading, and a balance that drops by an + * unpredictable amount is the thing that makes people stop uploading. Median + * upload is 5 pages and p90 is 32 (PostHog `workspace_file_extraction_completed`, + * n=428 over 180 days), so uploads track cost closely enough. + * + * Counted when extraction is requested, not when bytes land, because extraction + * is what actually costs money — and every extraction routes through one caller. + */ +export async function trackWorkspaceFileUploadUsage(input: TrackWorkspaceFileUploadUsageInput) { + // Background extraction can run without an actor; there is no customer to bill. + if (!input.userId) { + return; + } + + await trackAutumnUsage({ + env: input.env, + event: "workspace_file_upload_usage_tracking", + featureId: WORKSPACE_FILE_UPLOAD_FEATURE_ID, + properties: { + asset_kind: input.assetKind, + feature_surface: "workspace_file_upload", + item_id: input.itemId, + workspace_id: input.workspaceId, + }, + userId: input.userId, + }); +} + +export interface CheckWorkspaceFileUploadAccessInput { + env: Cloudflare.Env; + userId: string; +} + +export type WorkspaceFileUploadAccess = + | { allowed: true } + | { allowed: false; resetsAt: number | null }; + +/** + * Checked before the presigned URL is handed out, so a user over their cap never + * uploads bytes we then reject — and never pays for the transfer either. + * + * No fallback here, unlike chat: the only cheaper path is keeping the free local + * parse and skipping the paid one, which silently returns worse text with no + * marker. A user can't tell degraded extraction from a bad product, so blocking + * is the honest option. + */ +export async function checkWorkspaceFileUploadAccess( + input: CheckWorkspaceFileUploadAccessInput, +): Promise { + const autumn = getAutumnClient(input.env); + + if (!autumn) { + return { allowed: true }; + } + + try { + const result = await autumn.check({ + customerId: input.userId, + featureId: WORKSPACE_FILE_UPLOAD_FEATURE_ID, + }); + + if (result.allowed) { + return { allowed: true }; + } + + capturePostHogServerEvent({ + distinctId: input.userId, + event: "usage_limit_reached", + properties: { feature_id: WORKSPACE_FILE_UPLOAD_FEATURE_ID, surface: "file_upload" }, + }); + + return { allowed: false, resetsAt: result.balance?.nextResetAt ?? null }; + } catch (error) { + // Autumn being unreachable must not block uploads. Fail open, stay visible. + recordOperationalFailure({ + distinctId: input.userId, + error, + event: "workspace_file_upload_access_check", + fields: { user_id: input.userId }, + }); + + return { allowed: true }; + } +} diff --git a/src/integrations/posthog/events.ts b/src/integrations/posthog/events.ts index 44bd641e3..618a914e3 100644 --- a/src/integrations/posthog/events.ts +++ b/src/integrations/posthog/events.ts @@ -79,6 +79,8 @@ export interface PostHogEventPropertiesByName { workspace_file_extraction_completed: { actor_user_id: string | null; asset_kind: string; + /** LlamaParse credits actually billed, which provider_mode alone cannot tell you. */ + credits_used: number | null; duration_ms: number; enhancement_duration_ms: number; enhancement_error_message: string | null; @@ -100,6 +102,16 @@ export interface PostHogEventPropertiesByName { workflow_id: string; workspace_id: string; }; + /** + * Emitted only when someone is actually stopped, not when they fall back to + * the other tier. Separate from the thrown error so a billing wall is + * countable without string-matching a failure message — this is the number + * that says whether a top-up is worth building, and for whom. + */ + usage_limit_reached: { + feature_id: string; + surface: "ai_message" | "file_upload"; + }; workspace_file_intake_completed: { asset_kind: string | null; conversion: string | null; diff --git a/src/integrations/posthog/server.ts b/src/integrations/posthog/server.ts index ee194576e..15812fe4f 100644 --- a/src/integrations/posthog/server.ts +++ b/src/integrations/posthog/server.ts @@ -31,6 +31,12 @@ interface PostHogServerEvent { event: TEvent; /** Person properties PostHog must set atomically with this event. */ personProperties?: Record; + /** + * Set false for background work with no real user. The caller still has to pass + * some distinct id, and a synthetic one (workflow instance, request id) would + * otherwise register a brand new person per run and inflate user counts. + */ + processPerson?: boolean; properties: PostHogEventPropertiesByName[TEvent]; requestContext?: TelemetryRequestContext; request?: TelemetryRequestDetails; @@ -80,6 +86,7 @@ export function capturePostHogServerEvent ...requestContext.properties, ...input.properties, ...(input.personProperties ? { $set: input.personProperties } : {}), + ...(input.processPerson === false ? { $process_person_profile: false } : {}), }, ...(timestamp ? { timestamp } : {}), }) diff --git a/src/lib/auth.server.ts b/src/lib/auth.server.ts index b51a6272f..0fb0fe6b2 100644 --- a/src/lib/auth.server.ts +++ b/src/lib/auth.server.ts @@ -4,6 +4,7 @@ import { betterAuth } from "better-auth/minimal"; import { anonymous, jwt } from "better-auth/plugins"; import { tanstackStartCookies } from "better-auth/tanstack-start"; import { oauthProvider } from "@better-auth/oauth-provider"; +import { autumn } from "autumn-js/better-auth"; import { sql } from "drizzle-orm"; import { getMcpResource, mcpOAuthScopes } from "#/features/mcp/mcp-config"; @@ -13,12 +14,18 @@ import { } from "#/features/workspaces/durable-object-lifecycle"; import * as schema from "#/db/schema"; import { createDbContext } from "#/db/server"; +import { resolveAutumnSecretKey } from "#/integrations/autumn/secret-key"; import { capturePostHogServerEvent } from "#/integrations/posthog/server"; import { getAuthBaseURL, getTrustedAppOrigins } from "#/lib/app-origin"; const isProduction = import.meta.env.PROD; -type AuthEnvKey = "BETTER_AUTH_SECRET" | "GOOGLE_CLIENT_ID" | "GOOGLE_CLIENT_SECRET"; +type AuthEnvKey = + | "AUTUMN_PROD_SECRET_KEY" + | "AUTUMN_SECRET_KEY" + | "BETTER_AUTH_SECRET" + | "GOOGLE_CLIENT_ID" + | "GOOGLE_CLIENT_SECRET"; type AuthRuntimeEnv = Record; type Db = Awaited>["db"]; @@ -30,6 +37,8 @@ function getEnvString(name: AuthEnvKey) { function getAuthRuntimeEnv(): AuthRuntimeEnv { return { + AUTUMN_PROD_SECRET_KEY: getEnvString("AUTUMN_PROD_SECRET_KEY"), + AUTUMN_SECRET_KEY: getEnvString("AUTUMN_SECRET_KEY"), BETTER_AUTH_SECRET: getEnvString("BETTER_AUTH_SECRET"), GOOGLE_CLIENT_ID: getEnvString("GOOGLE_CLIENT_ID"), GOOGLE_CLIENT_SECRET: getEnvString("GOOGLE_CLIENT_SECRET"), @@ -173,6 +182,7 @@ async function transferAnonymousUserData( } function createAuth(database: Db, env: AuthRuntimeEnv) { + const autumnSecretKey = resolveAutumnSecretKey(env); const baseURL = getAuthBaseURL(); const appOrigin = typeof baseURL === "string" ? baseURL : (baseURL.fallback ?? "http://localhost:3000"); @@ -223,6 +233,9 @@ function createAuth(database: Db, env: AuthRuntimeEnv) { }), ] : []), + // Mounted only when a key resolves, matching how usage tracking degrades: + // a deployment without one loses billing endpoints rather than failing auth. + ...(autumnSecretKey ? [autumn({ secretKey: autumnSecretKey })] : []), jwt({ disableSettingJwtHeader: true }), oauthProvider({ allowDynamicClientRegistration: true, diff --git a/src/routes/__root.tsx b/src/routes/__root.tsx index ed08be445..e0e54df67 100644 --- a/src/routes/__root.tsx +++ b/src/routes/__root.tsx @@ -9,6 +9,8 @@ import { } from "@tanstack/react-router"; import { TanStackRouterDevtoolsPanel } from "@tanstack/react-router-devtools"; import { Toaster } from "#/components/ui/sonner"; +import { AutumnProvider } from "autumn-js/react"; + import { TooltipProvider } from "#/components/ui/tooltip"; import { WorkspacePersistedStoresHydrator } from "#/features/workspaces/state/persisted-store-hydration"; import type { AuthSession } from "#/lib/auth.functions"; @@ -94,27 +96,31 @@ function RootDocument({ children }: { children: React.ReactNode }) { - - - - {children} - - {import.meta.env.DEV ? ( - , - }, - TanStackQueryDevtools, - ]} - /> - ) : null} - - + {/* useBetterAuth points the client at /api/auth/autumn, where the + better-auth plugin mounts, and sends session cookies with it. */} + + + + + {children} + + {import.meta.env.DEV ? ( + , + }, + TanStackQueryDevtools, + ]} + /> + ) : null} + + + diff --git a/src/routes/_protected.tsx b/src/routes/_protected.tsx index 47332365d..3b3bbfb3c 100644 --- a/src/routes/_protected.tsx +++ b/src/routes/_protected.tsx @@ -1,8 +1,28 @@ -import { createFileRoute, Outlet, redirect } from "@tanstack/react-router"; +import { createFileRoute, Outlet, redirect, useNavigate } from "@tanstack/react-router"; +import { + ACCOUNT_SETTINGS_TABS, + AccountSettingsDialog, + type AccountSettingsTab, +} from "#/features/account/components/AccountSettingsDialog"; import { getAuthSessionQueryOptions } from "#/lib/session-query"; +/** + * Settings is a search param rather than a route or a hash: a hash never reaches + * the server, so a cold load would render the page and only pop the dialog in + * after hydration. This stays linkable for upgrade prompts elsewhere in the app + * and leaves whatever the user was looking at intact behind the dialog. + */ +interface ProtectedSearch { + settings?: AccountSettingsTab; +} + export const Route = createFileRoute("/_protected")({ + validateSearch: (search: Record): ProtectedSearch => { + const settings = search.settings as AccountSettingsTab | undefined; + + return settings && ACCOUNT_SETTINGS_TABS.includes(settings) ? { settings } : {}; + }, beforeLoad: async ({ context, location }) => { const session = await context.queryClient.ensureQueryData(getAuthSessionQueryOptions()); @@ -21,5 +41,30 @@ export const Route = createFileRoute("/_protected")({ }); function ProtectedLayout() { - return ; + const { settings } = Route.useSearch(); + const navigate = useNavigate(); + + // replace: true so opening and closing settings doesn't stack history entries + // the user then has to back out of one by one. + const setSettings = (tab: AccountSettingsTab | undefined) => { + void navigate({ + replace: true, + search: (previous: ProtectedSearch) => ({ ...previous, settings: tab }), + to: ".", + }); + }; + + return ( + <> + + { + setSettings(next ? (settings ?? "account") : undefined); + }} + onTabChange={setSettings} + tab={settings ?? "account"} + /> + + ); } diff --git a/src/routes/_protected/settings.tsx b/src/routes/_protected/settings.tsx index 8677aa56b..2bc9d52f9 100644 --- a/src/routes/_protected/settings.tsx +++ b/src/routes/_protected/settings.tsx @@ -1,14 +1,12 @@ -import { createFileRoute } from "@tanstack/react-router"; - -import { SettingsPage } from "#/features/account/components/SettingsPage"; +import { createFileRoute, redirect } from "@tanstack/react-router"; +/** + * Settings moved from a page to a dialog driven by the `settings` search param. + * Kept as a redirect so existing links, bookmarks, and upgrade prompts still + * land somewhere sensible instead of 404ing. + */ export const Route = createFileRoute("/_protected/settings")({ - head: () => ({ - meta: [ - { - title: "ThinkEx | Settings", - }, - ], - }), - component: SettingsPage, + beforeLoad: () => { + throw redirect({ to: "/home", search: { settings: "account" } }); + }, }); diff --git a/src/routes/api/v1/workspaces.$workspaceId.file-upload.ts b/src/routes/api/v1/workspaces.$workspaceId.file-upload.ts index 27601cb4e..72724ed55 100644 --- a/src/routes/api/v1/workspaces.$workspaceId.file-upload.ts +++ b/src/routes/api/v1/workspaces.$workspaceId.file-upload.ts @@ -5,6 +5,7 @@ import { z } from "zod"; import { createDbContext } from "#/db/server"; import { WorkspaceFileConversionError } from "#/features/workspaces/conversion/errors"; import { requestWorkspaceFileExtraction } from "#/features/workspaces/extraction/request-workspace-file-extraction"; +import { checkWorkspaceFileUploadAccess } from "#/integrations/autumn/workspace-file-usage"; import { getWorkspaceFilePreviewObjectKey, getWorkspaceFileSourceObjectKey, @@ -85,6 +86,30 @@ async function initiateWorkspaceFileUpload(request: Request, workspaceId: string ); } + // Only uploads headed for extraction: that's the part that costs money and the + // only path that decrements the meter. Gating local conversions would block + // something free and never counted. Before the presigned URL, so nobody + // uploads bytes we then reject. + if (validation.plan.kind === "file") { + const access = await checkWorkspaceFileUploadAccess({ env, userId }); + + if (!access.allowed) { + return apiError( + requestId, + 402, + "upload_limit_reached", + // Names what still works, because this is the only moment the user + // finds out the cap isn't total — hitting it otherwise reads as the + // whole product locking, which is what makes people leave rather + // than upgrade. + // + // Gain-framed, and no raw date: the exact reset lives in settings, and a + // server-formatted date has no idea what locale is reading it. + "You've used all your file uploads this month — Markdown, CSV, and text files still import. Pro includes 500 a month.", + ); + } + } + const session = await createWorkspaceDirectUploadSession(env, { ...input, target: resolveWorkspaceDirectUploadTarget({ diff --git a/worker-configuration.d.ts b/worker-configuration.d.ts index c4c1824b3..1a666d663 100644 --- a/worker-configuration.d.ts +++ b/worker-configuration.d.ts @@ -1,6 +1,6 @@ /* eslint-disable */ -// Generated by Wrangler by running `wrangler types` (hash: a0dd3d735037ed637999df03419f817d) -// Runtime types generated with workerd@1.20260722.1 2026-03-24 nodejs_compat +// Generated by Wrangler by running `wrangler types` (hash: 8e31c62adc27b2143db205c475bb727b) +// Runtime types generated with workerd@1.20260730.1 2026-03-24 nodejs_compat interface __BaseEnv_Env { WORKSPACE_KERNEL_FILES: R2Bucket; DB: D1Database; @@ -21,7 +21,7 @@ interface __BaseEnv_Env { FIRECRAWL_API_KEY: string; LLAMA_CLOUD_API_KEY: string; AI_GATEWAY_API_KEY: string; - AUTUMN_SECRET_KEY: string; + AUTUMN_SECRET_KEY?: string; TCC_API_KEY: string; R2_ACCOUNT_ID: string; R2_ACCESS_KEY_ID: string; @@ -34,6 +34,7 @@ interface __BaseEnv_Env { OFFICE_PDF_CONVERTER: DurableObjectNamespace; WORKSPACE_FILE_PROCESSOR: DurableObjectNamespace; WORKSPACE_FILE_EXTRACTION_WORKFLOW: Workflow[0]['payload']>; + AUTUMN_PROD_SECRET_KEY?: string; } declare namespace Cloudflare { interface GlobalProps { @@ -94,7 +95,7 @@ declare namespace Cloudflare { FIRECRAWL_API_KEY: string; LLAMA_CLOUD_API_KEY: string; AI_GATEWAY_API_KEY: string; - AUTUMN_SECRET_KEY: string; + AUTUMN_PROD_SECRET_KEY: string; TCC_API_KEY: string; R2_ACCOUNT_ID: string; R2_ACCESS_KEY_ID: string; @@ -115,7 +116,7 @@ type StringifyValues> = { [Binding in keyof EnvType]: EnvType[Binding] extends string ? EnvType[Binding] : string; }; declare namespace NodeJS { - interface ProcessEnv extends StringifyValues> {} + interface ProcessEnv extends StringifyValues> {} } // Begin runtime types diff --git a/wrangler.jsonc b/wrangler.jsonc index 415251d4f..2d73de2d1 100644 --- a/wrangler.jsonc +++ b/wrangler.jsonc @@ -1,8 +1,10 @@ { "$schema": "node_modules/wrangler/config-schema.json", // Default config is used for local development. Deploys should target an - // explicit Wrangler environment. - "name": "thinkex", + // explicit Wrangler environment. This name deliberately differs from the + // production worker name so a bare `wrangler deploy` cannot overwrite + // production with this block's staging R2 and Vectorize bindings. + "name": "thinkex-dev", "compatibility_date": "2026-03-24", "compatibility_flags": ["nodejs_compat"], "main": "src/server.ts", @@ -353,7 +355,7 @@ "FIRECRAWL_API_KEY", "LLAMA_CLOUD_API_KEY", "AI_GATEWAY_API_KEY", - "AUTUMN_SECRET_KEY", + "AUTUMN_PROD_SECRET_KEY", "TCC_API_KEY", "R2_ACCOUNT_ID", "R2_ACCESS_KEY_ID",