From 8b7190ae69d12409d0434733c0b025cc26f5c2ae Mon Sep 17 00:00:00 2001 From: anian Date: Sat, 18 Jul 2026 15:20:48 +0800 Subject: [PATCH] =?UTF-8?q?1.7.1=E5=8E=9F=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 76 + .husky/pre-commit | 1 + LICENSE | 674 +++ OWNERS | 10 + README.md | 178 + biome.json | 37 + build.gradle | 52 + gradle.properties | 1 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 61608 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 244 + gradlew.bat | 92 + images/preview.png | Bin 0 -> 250616 bytes package.json | 41 + packages/search-widget/index.html | 66 + packages/search-widget/lit-localize.json | 15 + packages/search-widget/package.json | 42 + packages/search-widget/src/constants/index.ts | 2 + .../src/generated/locale-codes.ts | 27 + .../search-widget/src/generated/locales/es.ts | 20 + .../src/generated/locales/zh-CN.ts | 20 + .../src/generated/locales/zh-TW.ts | 20 + packages/search-widget/src/index.ts | 5 + packages/search-widget/src/locale/index.ts | 38 + packages/search-widget/src/search-form.ts | 350 ++ packages/search-widget/src/search-modal.ts | 188 + packages/search-widget/src/styles/base.ts | 19 + packages/search-widget/src/styles/var.ts | 46 + packages/search-widget/src/type.d.ts | 15 + packages/search-widget/src/vite-env.d.ts | 1 + packages/search-widget/tsconfig.json | 33 + packages/search-widget/uno.config.ts | 64 + packages/search-widget/var.css | 30 + packages/search-widget/vite.config.dev.ts | 19 + packages/search-widget/vite.config.lib.ts | 27 + packages/search-widget/xliff/es.xlf | 35 + packages/search-widget/xliff/zh-CN.xlf | 35 + packages/search-widget/xliff/zh-TW.xlf | 35 + packages/widget/package.json | 12 + packages/widget/src/index.ts | 16 + packages/widget/src/vite-env.d.ts | 1 + packages/widget/tsconfig.json | 4 + packages/widget/vite.config.ts | 30 + pnpm-lock.yaml | 5139 +++++++++++++++++ pnpm-workspace.yaml | 4 + settings.gradle | 11 + .../run/halo/search/widget/SearchView.java | 59 + .../widget/SearchWidgetHeadProcessor.java | 43 + .../search/widget/SearchWidgetPlugin.java | 24 + .../resources/extensions/reverseProxy.yaml | 8 + src/main/resources/logo.svg | 1 + src/main/resources/plugin.yaml | 23 + tsconfig.json | 23 + 53 files changed, 7962 insertions(+) create mode 100755 .gitignore create mode 100644 .husky/pre-commit create mode 100644 LICENSE create mode 100644 OWNERS create mode 100644 README.md create mode 100644 biome.json create mode 100644 build.gradle create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat create mode 100644 images/preview.png create mode 100644 package.json create mode 100644 packages/search-widget/index.html create mode 100644 packages/search-widget/lit-localize.json create mode 100644 packages/search-widget/package.json create mode 100644 packages/search-widget/src/constants/index.ts create mode 100644 packages/search-widget/src/generated/locale-codes.ts create mode 100644 packages/search-widget/src/generated/locales/es.ts create mode 100644 packages/search-widget/src/generated/locales/zh-CN.ts create mode 100644 packages/search-widget/src/generated/locales/zh-TW.ts create mode 100644 packages/search-widget/src/index.ts create mode 100644 packages/search-widget/src/locale/index.ts create mode 100644 packages/search-widget/src/search-form.ts create mode 100644 packages/search-widget/src/search-modal.ts create mode 100644 packages/search-widget/src/styles/base.ts create mode 100644 packages/search-widget/src/styles/var.ts create mode 100644 packages/search-widget/src/type.d.ts create mode 100644 packages/search-widget/src/vite-env.d.ts create mode 100644 packages/search-widget/tsconfig.json create mode 100644 packages/search-widget/uno.config.ts create mode 100644 packages/search-widget/var.css create mode 100644 packages/search-widget/vite.config.dev.ts create mode 100644 packages/search-widget/vite.config.lib.ts create mode 100644 packages/search-widget/xliff/es.xlf create mode 100644 packages/search-widget/xliff/zh-CN.xlf create mode 100644 packages/search-widget/xliff/zh-TW.xlf create mode 100644 packages/widget/package.json create mode 100644 packages/widget/src/index.ts create mode 100644 packages/widget/src/vite-env.d.ts create mode 100644 packages/widget/tsconfig.json create mode 100644 packages/widget/vite.config.ts create mode 100644 pnpm-lock.yaml create mode 100644 pnpm-workspace.yaml create mode 100644 settings.gradle create mode 100644 src/main/java/run/halo/search/widget/SearchView.java create mode 100644 src/main/java/run/halo/search/widget/SearchWidgetHeadProcessor.java create mode 100644 src/main/java/run/halo/search/widget/SearchWidgetPlugin.java create mode 100644 src/main/resources/extensions/reverseProxy.yaml create mode 100644 src/main/resources/logo.svg create mode 100644 src/main/resources/plugin.yaml create mode 100644 tsconfig.json diff --git a/.gitignore b/.gitignore new file mode 100755 index 0000000..6ffb8c7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,76 @@ +### Maven +target/ +logs/ +!.mvn/wrapper/maven-wrapper.jar + +### Gradle +.gradle +/build/ +/out/ +!gradle/wrapper/gradle-wrapper.jar +bin/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr +log/ + +### NetBeans ### +nbproject/private/ +build/ +nbbuild/ +dist/ +nbdist/ +.nb-gradle/ + +### Mac +.DS_Store +*/.DS_Store + +### VS Code ### +*.project +*.factorypath + +### Compiled class file +*.class + +### Log file +*.log + +### BlueJ files +*.ctxt + +### Mobile Tools for Java (J2ME) +.mtj.tmp/ + +### Package Files +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +### VSCode +.vscode + +### Local file +application-local.yml +application-local.yaml +application-local.properties + +/packages/*/node_modules/ +node_modules +/workplace/ +/src/main/resources/static \ No newline at end of file diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100644 index 0000000..c27d889 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1 @@ +lint-staged diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..20d40b6 --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 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 General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is 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. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + 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. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + 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 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. Use with the GNU Affero General Public License. + + 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 Affero 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 special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU 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 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 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 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 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + 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 GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. \ No newline at end of file diff --git a/OWNERS b/OWNERS new file mode 100644 index 0000000..eeb425e --- /dev/null +++ b/OWNERS @@ -0,0 +1,10 @@ +reviewers: +- ruibaby +- guqing +- JohnNiang +- wangzhen-fit2cloud + +approvers: +- ruibaby +- guqing +- JohnNiang diff --git a/README.md b/README.md new file mode 100644 index 0000000..d253fe3 --- /dev/null +++ b/README.md @@ -0,0 +1,178 @@ +# plugin-search-widget + +Halo 2.0 的通用搜索组件插件。 + +![Preview](./images/preview.png) + +## 使用方式 + +1. 下载,目前提供以下两个下载方式: + - GitHub Releases:访问 [Releases](https://github.com/halo-dev/plugin-search-widget/releases) 下载 Assets 中的 JAR 文件。 + - Halo 应用市场:。 +2. 安装,插件安装和更新方式可参考:。 + +> 需要注意的是,此插件需要主题进行适配,不会主动显示搜索入口。 + +## 开发环境 + +```bash +git clone git@github.com:halo-dev/plugin-search-widget.git + +# 或者当你 fork 之后 + +git clone git@github.com:{your_github_id}/plugin-search-widget.git +``` + +```bash +cd path/to/plugin-search-widget +``` + +```bash +./gradlew pnpmInstall + +./gradlew build +``` + +修改 Halo 配置文件: + +```yaml +halo: + plugin: + runtime-mode: development + classes-directories: + - "build/classes" + - "build/resources" + lib-directories: + - "libs" + fixedPluginPath: + - "/path/to/plugin-search-widget" +``` + +## 主题适配 + +### 调用搜索弹框 + +此插件是一个通用的搜索框插件,主题需要做的只是通过 JS API 唤起搜索框即可,以下是代码示例: + +```html +
  • + + 搜索 + +
  • +``` + +其中,`pluginFinder.available('PluginSearchWidget')` 的作用是判断使用者是否安装和启用了此插件,如果没有安装或者没有启用,那么就不会显示搜索入口。 + +### 自定义样式 + +虽然目前不能直接为搜索组件编写额外的样式,但可以通过一系列的 CSS 变量来自定义部分样式,开发者可以根据需求自行在主题中添加这些 CSS 变量,让搜索组件和主题更好地融合。 + +目前已提供的 CSS 变量: + +| 变量名 | 描述 | 备注 | +|-----------------------------------------------------|------------------|----------------------------------------------------------------------------------| +| `--halo-search-widget-base-font-size` | 基础字体大小 | -- | +| `--halo-search-widget-base-font-family` | 字体 | -- | +| `--halo-search-widget-base-rounded` | 边框圆角 | -- | +| `--halo-search-widget-base-bg-color` | 基础背景色 | -- | +| `--halo-search-widget-primary-color` | 主色 | -- | +| `--halo-search-widget-muted-color` | 辅助色 | -- | +| `--halo-search-widget-content-color` | 文本色 | -- | +| `--halo-search-widget-modal-bg-color` | 模态框背景色 | -- | +| `--halo-search-widget-modal-layer-color` | 模态框遮挡层背景色 | -- | +| `--halo-search-widget-hit-bg-color` | 搜索结果条目背景色 | -- | +| `--halo-search-widget-divider-color` | 分割线颜色 | -- | +| `--halo-search-widget-kbd-border-color` | 快捷键图标边框颜色 | -- | +| `--halo-search-widget-kbd-shadow` | 快捷键图标阴影 | -- | +| `--halo-search-widget-base-border-radius` | 基础元素的圆角 | 已过时,将在未来的版本移除,后续使用 `--halo-search-widget-base-rounded` 代替 | +| `--halo-search-widget-color-modal-layer` | 模态层颜色 | 已过时,将在未来的版本移除,后续使用 `--halo-search-widget-modal-layer-color` 代替 | +| `--halo-search-widget-color-modal-content-bg` | 模态内容背景颜色 | 已过时,将在未来的版本移除,后续使用 `--halo-search-widget-modal-bg-color` 代替 | +| `--halo-search-widget-color-form-input-bg` | 表单输入背景颜色 | 已过时,将在未来的版本移除 | +| `--halo-search-widget-color-form-input` | 表单输入文字颜色 | 已过时,将在未来的版本移除 | +| `--halo-search-widget-color-form-input-placeholder` | 表单输入占位符颜色 | 已过时,将在未来的版本移除 | +| `--halo-search-widget-color-form-divider` | 表单分隔线颜色 | 已过时,将在未来的版本移除,后续使用 `--halo-search-widget-divider-color` 代替 | +| `--halo-search-widget-color-result-empty` | 无结果提示颜色 | 已过时,将在未来的版本移除 | +| `--halo-search-widget-color-result-item-bg` | 结果项背景颜色 | 已过时,将在未来的版本移除,后续使用 `--halo-search-widget-hit-bg-color` 代替 | +| `--halo-search-widget-color-result-item-hover-bg` | 结果项悬停背景颜色 | 已过时,将在未来的版本移除 | +| `--halo-search-widget-color-result-item-title` | 结果项标题颜色 | 已过时,将在未来的版本移除 | +| `--halo-search-widget-color-result-item-content` | 结果项内容颜色 | 已过时,将在未来的版本移除 | +| `--halo-search-widget-color-command-kbd-item` | 命令键盘项颜色 | 已过时,将在未来的版本移除 | +| `--halo-search-widget-color-command-kbd-border` | 命令键盘边框颜色 | 已过时,将在未来的版本移除,后续使用 `--halo-search-widget-kbd-border-color` 代替 | + +
    +点击查看 CSS 代码模板 + +```css +:root{ + --halo-search-widget-base-font-size: ; + --halo-search-widget-base-font-family: ; + --halo-search-widget-base-rounded: ; + --halo-search-widget-base-bg-color: ; + --halo-search-widget-primary-color: ; + --halo-search-widget-muted-color: ; + --halo-search-widget-content-color: ; + --halo-search-widget-modal-bg-color: ; + --halo-search-widget-modal-layer-color: ; + --halo-search-widget-hit-bg-color: ; + --halo-search-widget-divider-color: ; + --halo-search-widget-kbd-border-color: ; + --halo-search-widget-kbd-shadow: ; +} +``` + +
    + +### 配色切换方案 + +根据上面提供的 CSS 变量,也可以通过定义 CSS 变量的方式为搜索组件提供动态切换配色的功能。 + +以下是实现示例,你可以根据需求自行修改选择器或者媒体查询。 + +```css +@media (prefers-color-scheme: dark) { + .color-scheme-auto, + [data-color-scheme='auto'] { + color-scheme: dark; + --halo-search-widget-muted-color: #cbd5e1; + --halo-search-widget-content-color: #f1f5f9; + --halo-search-widget-hit-bg-color: #090a11; + --halo-search-widget-modal-bg-color: #15172a; + --halo-search-widget-modal-layer-color: #000000cc; + --halo-search-widget-base-bg-color: #090a11; + --halo-search-widget-divider-color: #1e293b; + --halo-search-widget-kbd-border-color: #334155; + --halo-search-widget-kbd-shadow: 0px 2px 0px 0px #ffffff1a; + } +} + +.color-scheme-dark, +.dark, +[data-color-scheme='dark'] { + color-scheme: dark; + --halo-search-widget-muted-color: #cbd5e1; + --halo-search-widget-content-color: #f1f5f9; + --halo-search-widget-hit-bg-color: #090a11; + --halo-search-widget-modal-bg-color: #15172a; + --halo-search-widget-modal-layer-color: #000000cc; + --halo-search-widget-base-bg-color: #090a11; + --halo-search-widget-divider-color: #1e293b; + --halo-search-widget-kbd-border-color: #334155; + --halo-search-widget-kbd-shadow: 0px 2px 0px 0px #ffffff1a; +} +``` + +此外,为了让主题可以更加方便的适配暗黑模式,此插件也提供了一套暗黑模式的配色方案,主题可以直接使用此方案,而不需要自己去适配暗黑模式,适配方式如下: + +1. 在 html 或者 body 标签添加 class: + 1. `color-scheme-auto`:自动模式,根据系统的暗黑模式自动切换。 + 2. `color-scheme-dark` / `dark`:强制暗黑模式。 + 3. `color-scheme-light` / `light`:强制明亮模式。 +2. 在 html 或者 body 标签添加 `data-color-scheme` 属性: + 1. `auto`:自动模式,根据系统的暗黑模式自动切换。 + 2. `dark`:强制暗黑模式。 + 3. `light`:强制明亮模式。 + +## Credits + +- [Algolia DocSearch](https://github.com/algolia/docsearch): 搜索组件的 UI 设计灵感来源于 DocSearch。 diff --git a/biome.json b/biome.json new file mode 100644 index 0000000..b186dab --- /dev/null +++ b/biome.json @@ -0,0 +1,37 @@ +{ + "$schema": "https://biomejs.dev/schemas/2.1.2/schema.json", + "vcs": { + "enabled": true, + "clientKind": "git", + "useIgnoreFile": true + }, + "files": { + "ignoreUnknown": false, + "includes": ["**", "!**/generated/**"] + }, + "formatter": { + "enabled": true, + "indentStyle": "space", + "indentWidth": 2 + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true + } + }, + "javascript": { + "formatter": { + "quoteStyle": "single", + "trailingCommas": "es5" + } + }, + "assist": { + "enabled": true, + "actions": { + "source": { + "organizeImports": "on" + } + } + } +} diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..de469d8 --- /dev/null +++ b/build.gradle @@ -0,0 +1,52 @@ +plugins { + id 'java' + id "io.freefair.lombok" version "8.0.1" + id "com.github.node-gradle.node" version "7.0.2" + id "run.halo.plugin.devtools" version "0.1.1" +} + +group 'run.halo.search.widget' +sourceCompatibility = JavaVersion.VERSION_17 + +repositories { + mavenCentral() + maven { url 'https://s01.oss.sonatype.org/content/repositories/releases' } + maven { url 'https://s01.oss.sonatype.org/content/repositories/snapshots/' } + maven { url 'https://repo.spring.io/milestone' } +} + +dependencies { + implementation platform('run.halo.tools.platform:plugin:2.17.0-SNAPSHOT') + compileOnly 'run.halo.app:api' + + testImplementation 'run.halo.app:api' + testImplementation 'org.springframework.boot:spring-boot-starter-test' +} + +test { + useJUnitPlatform() +} + +node { + nodeProjectDir = file("${project.projectDir}") +} + +tasks.register('buildFrontend', PnpmTask) { + args = ['build'] + dependsOn('installDepsForUI') +} + +tasks.register('installDepsForUI', PnpmTask) { + args = ['install'] +} + +build { + // build frontend before build + tasks.named('compileJava').configure { + dependsOn('buildFrontend') + } +} + +halo { + version = "2.21" +} diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..8d0c7be --- /dev/null +++ b/gradle.properties @@ -0,0 +1 @@ +version=1.0.0-SNAPSHOT diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..ccebba7710deaf9f98673a68957ea02138b60d0a GIT binary patch literal 61608 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 literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..171d876 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip +networkTimeout=10000 +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100755 index 0000000..79a61d4 --- /dev/null +++ b/gradlew @@ -0,0 +1,244 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..6689b85 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/images/preview.png b/images/preview.png new file mode 100644 index 0000000000000000000000000000000000000000..1099ab84b90abb55965d4fbe2db37ca2e8db201d GIT binary patch literal 250616 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

    + + ${this.keyword ? this.renderItems() : this.renderHistoryItems()} + +
    + ${[ + { + text: html`${msg('Select')}`, + kbdIcons: ['i-lucide-arrow-up', 'i-lucide-arrow-down'], + }, + { + text: html`${msg('Confirm')}`, + kbdIcons: ['i-lucide-corner-down-left'], + }, + { + text: html`${msg('Close')}`, + kbdIcons: ['i-mdi-keyboard-esc'], + }, + ].map( + (item) => html` +
    + ${item.kbdIcons.map( + (icon) => html` + + + + ` + )} + ${item.text} +
    + ` + )} +
    + `; + } + + handleClearInput() { + this.keyword = ''; + this.searchResult = undefined; + if (this.inputRef.value) { + this.inputRef.value.value = ''; + this.inputRef.value.focus(); + } + } + + renderItems() { + return html`
    + ${!this.searchResult?.hits?.length ? this.renderEmpty() : ''} +
      + ${this.searchResult?.hits?.map((hit, index) => + this.renderListItem(hit, index, 'i-lucide-file-text') + )} +
    +
    `; + } + + renderEmpty() { + return html`
    + ${msg('No search results')} +
    `; + } + + renderHistoryItems() { + return html` +
    + ${ + this.historyHits.length + ? html`
    +

    + ${msg('Recent')} +

    + + ${msg('Clear')} + +
    +
      + ${this.historyHits?.map((hit, index) => + this.renderListItem(hit, index, 'i-lucide-history') + )} +
    ` + : this.renderEmpty() + } +
    + `; + } + + renderListItem(hit: HaloDocument, index: number, listIcon: string) { + return html` +
  • { + this.selectedIndex = index; + }} + class="shadow-sm flex items-center space-x-3 rounded-base cursor-pointer p-3 bg-hit [&_mark]:text-primary [&_mark]:font-semibold [&_mark]:bg-transparent ${ + index === this.selectedIndex + ? '!bg-primary [&_mark]:!text-white [&_mark]:underline' + : '' + }" + data-index=${index} + > + +
    +

    + ${unsafeHTML(hit.title)} +

    + ${ + hit.description + ? html` +

    + ${unsafeHTML(hit.description)} +

    + ` + : '' + } +
    + +
  • + `; + } + + onInput(e: InputEvent) { + const input = e.target as HTMLInputElement; + const value = input.value; + + this.keyword = value || ''; + + this.selectedIndex = 0; + + if (value === '') { + this.searchResult = undefined; + return; + } + + this.loading = true; + this.fetchHits(value); + } + + handleClearHistory() { + localStorage.removeItem(HISTORY_KEY); + this.historyHits = []; + } + + fetchHits: DebouncedFunction<(keyword: string) => Promise> = debounce( + async (keyword: string) => { + const searchOptions: SearchOption = { + ...this.options, + highlightPostTag: '', + highlightPreTag: '', + keyword, + limit: 20, + }; + + const response = await fetch( + `/apis/api.halo.run/v1alpha1/indices/-/search`, + { + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify(searchOptions), + method: 'post', + } + ); + + const data = (await response.json()) as SearchResult; + this.searchResult = data; + this.loading = false; + }, + 300 + ); + + handleOpenLink(hit: HaloDocument) { + const updatedHistory = uniqBy([hit, ...this.historyHits], 'id').slice( + 0, + MAX_HISTORY_ITEMS + ); + localStorage.setItem(HISTORY_KEY, JSON.stringify(updatedHistory)); + this.historyHits = updatedHistory; + window.location.href = hit.permalink; + } + + handleKeydown = (e: KeyboardEvent) => { + const { key, ctrlKey } = e; + + const hits = this.keyword ? this.searchResult?.hits : this.historyHits; + + if (!hits) { + return; + } + + if (key === 'ArrowUp' || (key === 'k' && ctrlKey)) { + this.selectedIndex = Math.max(0, this.selectedIndex - 1); + this.handleScrollIntoSelected(); + e.preventDefault(); + } + + if (key === 'ArrowDown' || (key === 'j' && ctrlKey)) { + this.selectedIndex = Math.min(hits.length || 0, this.selectedIndex + 1); + this.handleScrollIntoSelected(); + e.preventDefault(); + } + + if (key === 'Enter') { + const hit = hits[this.selectedIndex]; + if (hit) { + this.handleOpenLink(hit); + } + } + }; + + handleScrollIntoSelected() { + const selectedElement = this.shadowRoot?.querySelector( + `[data-index="${this.selectedIndex}"]` + ); + if (selectedElement) { + selectedElement.scrollIntoView({ + behavior: 'smooth', + block: 'center', + }); + } + } + + static override styles = [ + unsafeCSS(resetStyles), + baseStyles, + css` + @unocss-placeholder; + `, + ]; +} + +customElements.get('search-form') || + customElements.define('search-form', SearchForm); + +declare global { + interface HTMLElementTagNameMap { + 'search-form': SearchForm; + } +} diff --git a/packages/search-widget/src/search-modal.ts b/packages/search-widget/src/search-modal.ts new file mode 100644 index 0000000..f716d8e --- /dev/null +++ b/packages/search-widget/src/search-modal.ts @@ -0,0 +1,188 @@ +import resetStyles from '@unocss/reset/tailwind.css?inline'; +import { css, html, LitElement, type PropertyValues, unsafeCSS } from 'lit'; +import { property } from 'lit/decorators.js'; +import { styleMap } from 'lit/directives/style-map.js'; +import { OverlayScrollbars } from 'overlayscrollbars'; +import overlayscrollbarsStyles from 'overlayscrollbars/styles/overlayscrollbars.css?inline'; +import './search-form'; +import baseStyles from './styles/base'; + +export class SearchModal extends LitElement { + @property({ + type: Boolean, + }) + open = false; + + @property({ type: String }) + baseUrl = ''; + + @property({ type: Object }) + options = {}; + + constructor() { + super(); + + setTimeout(() => { + const modalContent = this.shadowRoot?.querySelector( + '.modal__content' + ) as HTMLElement; + if (modalContent) { + OverlayScrollbars(modalContent, { + scrollbars: { + autoHide: 'scroll', + autoHideDelay: 600, + }, + }); + } + }, 0); + } + + override willUpdate(changedProperties: PropertyValues) { + if (!changedProperties.has('open')) { + return; + } + + if (this.open) { + document.body.style.overflow = 'hidden'; + } else { + document.body.style.removeProperty('overflow'); + } + } + + override render() { + return html``; + } + + close() { + this.open = false; + } + + handleKeydown = (e: KeyboardEvent) => { + const { key } = e; + + if (key === 'Escape') { + this.close(); + e.preventDefault(); + } + }; + + override connectedCallback() { + super.connectedCallback(); + window.addEventListener('keydown', this.handleKeydown); + } + + override disconnectedCallback() { + super.disconnectedCallback(); + window.removeEventListener('keydown', this.handleKeydown); + } + + static override styles = [ + unsafeCSS(resetStyles), + unsafeCSS(overlayscrollbarsStyles), + baseStyles, + css` + :host { + // @deprecated --halo-search-widget-color-modal-layer and + // --halo-search-widget-base-border-radius will be removed in future + --base-rounded: var( + --halo-search-widget-base-rounded, + var(--halo-search-widget-base-border-radius, 0.4em) + ); + --modal-layer-color: var( + --halo-search-widget-modal-layer-color, + var(--halo-search-widget-color-modal-layer, rgb(107 114 128 / 0.75)) + ); + } + + .modal__wrapper { + position: fixed; + left: 0px; + top: 0px; + display: flex; + height: 100%; + width: 100%; + flex-direction: row; + align-items: flex-start; + justify-content: center; + padding-top: 3em; + padding-bottom: 3em; + z-index: 999; + } + + .modal__layer { + background-color: var(--modal-layer-color, rgb(107 114 128 / 0.75)); + position: absolute; + top: 0px; + left: 0px; + height: 100%; + width: 100%; + flex: none; + animation: fadeIn 0.15s both; + } + + .modal__content { + border-radius: var(--base-rounded, 0.4em); + position: relative; + display: flex; + flex-direction: column; + align-items: stretch; + width: calc(100vw - 20px); + max-height: calc(100vh - 5em); + max-width: 580px; + overflow: auto; + animation: fadeInUp 0.3s both; + } + + @keyframes fadeIn { + from { + opacity: 0; + } + + to { + opacity: 1; + } + } + + @keyframes fadeInUp { + from { + opacity: 0; + transform: translate3d(0, 10%, 0); + } + + to { + opacity: 1; + transform: translate3d(0, 0, 0); + } + } + + @unocss-placeholder; + `, + ]; +} + +customElements.get('search-modal') || + customElements.define('search-modal', SearchModal); + +declare global { + interface HTMLElementTagNameMap { + 'search-modal': SearchModal; + } +} diff --git a/packages/search-widget/src/styles/base.ts b/packages/search-widget/src/styles/base.ts new file mode 100644 index 0000000..306e30f --- /dev/null +++ b/packages/search-widget/src/styles/base.ts @@ -0,0 +1,19 @@ +import { css } from 'lit'; + +const baseStyles = css` + :host { + font-size: var(--halo-search-widget-base-font-size, 1em); + font-family: var( + --halo-search-widget-base-font-family, + ui-sans-serif, + system-ui, + sans-serif, + 'Apple Color Emoji', + 'Segoe UI Emoji', + 'Segoe UI Symbol', + 'Noto Color Emoji' + ); + } +`; + +export default baseStyles; diff --git a/packages/search-widget/src/styles/var.ts b/packages/search-widget/src/styles/var.ts new file mode 100644 index 0000000..cd00c91 --- /dev/null +++ b/packages/search-widget/src/styles/var.ts @@ -0,0 +1,46 @@ +import { css } from 'lit'; + +const varStyles = css` + :host { + --color-form-input-bg: var(--halo-search-widget-color-form-input-bg, #fff); + --color-form-input: var(--halo-search-widget-color-form-input, #333); + --color-form-input-placeholder: var( + --halo-search-widget-color-form-input-placeholder, + rgb(107 114 128) + ); + --color-form-divider: var( + --halo-search-widget-color-form-divider, + rgb(243 244 246) + ); + --color-result-empty: var( + --halo-search-widget-color-result-empty, + rgb(107 114 128) + ); + --color-result-item-bg: var( + --halo-search-widget-color-result-item-bg, + rgb(249 250 251) + ); + --color-result-item-hover-bg: var( + --halo-search-widget-color-result-item-hover-bg, + rgb(243 244 246) + ); + --color-result-item-title: var( + --halo-search-widget-color-result-item-title, + #333 + ); + --color-result-item-content: var( + --halo-search-widget-color-result-item-content, + rgb(75, 85, 99) + ); + --color-command-kbd-item: var( + --halo-search-widget-color-command-kbd-item, + #333 + ); + --color-command-kbd-border: var( + --halo-search-widget-color-command-kbd-border, + #e5e7eb + ); + } +`; + +export default varStyles; diff --git a/packages/search-widget/src/type.d.ts b/packages/search-widget/src/type.d.ts new file mode 100644 index 0000000..00a21b9 --- /dev/null +++ b/packages/search-widget/src/type.d.ts @@ -0,0 +1,15 @@ +export interface Hit { + name: string; + title: string; + content: string; + publishTimestamp: string; + permalink: string; +} + +export interface Result { + hits: Hit[]; + keyword: string; + total: number; + limit: number; + processingTimeMills: number; +} diff --git a/packages/search-widget/src/vite-env.d.ts b/packages/search-widget/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/packages/search-widget/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/packages/search-widget/tsconfig.json b/packages/search-widget/tsconfig.json new file mode 100644 index 0000000..4bcbf70 --- /dev/null +++ b/packages/search-widget/tsconfig.json @@ -0,0 +1,33 @@ +{ + "compilerOptions": { + "target": "es2021", + "module": "es2020", + "lib": ["es2021", "DOM", "DOM.Iterable"], + "declaration": true, + "declarationMap": true, + "sourceMap": true, + "inlineSources": true, + "outDir": "./dist", + "rootDir": "./src", + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "noImplicitAny": true, + "noImplicitThis": true, + "moduleResolution": "node", + "allowSyntheticDefaultImports": true, + "experimentalDecorators": true, + "forceConsistentCasingInFileNames": true, + "noImplicitOverride": true, + "plugins": [ + { + "name": "ts-lit-plugin", + "strict": true + } + ] + }, + "include": ["src/**/*.ts"], + "exclude": [] +} diff --git a/packages/search-widget/uno.config.ts b/packages/search-widget/uno.config.ts new file mode 100644 index 0000000..d33ba09 --- /dev/null +++ b/packages/search-widget/uno.config.ts @@ -0,0 +1,64 @@ +import { + defineConfig, + definePreset, + presetIcons, + presetUno, + presetWind3, + transformerCompileClass, + transformerDirectives, +} from 'unocss'; + +const remRE = /(-?[.\d]+)rem/g; + +const presetRemToEm = definePreset(() => { + return { + name: '@unocss/preset-rem-to-em', + postprocess: (util) => { + util.entries.forEach((i) => { + const value = i[1]; + if (typeof value === 'string' && remRE.test(value)) + i[1] = value.replace(remRE, (_, p1) => `${p1}em`); + }); + }, + }; +}); + +export default defineConfig({ + presets: [presetWind3(), presetIcons(), presetRemToEm()], + transformers: [transformerDirectives(), transformerCompileClass()], + theme: { + colors: { + primary: 'var(--halo-search-widget-primary-color,#4CCBA0)', + muted: 'var(--halo-search-widget-muted-color,#475569)', + content: + 'var(--halo-search-widget-content-color,var(--halo-search-widget-color-form-input,#0f172a))', + }, + borderRadius: { + base: 'var(--halo-search-widget-base-rounded, 0.4em)', + }, + }, + shortcuts: { + 'bg-modal': + 'bg-[var(--halo-search-widget-modal-bg-color,var(--halo-search-widget-color-modal-content-bg,#f8fafc))]', + 'bg-hit': + 'bg-[var(--halo-search-widget-hit-bg-color,var(--halo-search-widget-color-result-item-bg,#fff))]', + 'bg-base': + 'bg-[var(--halo-search-widget-base-bg-color,var(--halo-search-widget-color-modal-content-bg,#fff))]', + 'border-divider': + 'border-[var(--halo-search-widget-divider-color,var(--halo-search-widget-color-form-divider,#f1f5f9))]', + 'border-kbd': + 'border-[var(--halo-search-widget-kbd-border-color,var(--halo-search-widget-color-command-kbd-border,#e2e8f0))]', + 'shadow-kbd': + 'shadow-[var(--halo-search-widget-kbd-shadow,0px_2px_0px_0px_rgba(0,0,0,0.08))]', + }, + safelist: [ + 'i-lucide-arrow-up', + 'i-lucide-arrow-down', + 'i-mdi-keyboard-esc', + 'i-lucide-corner-down-left', + 'i-lucide-file-text', + 'i-lucide-history', + 'i-lucide-loader-circle', + 'i-lucide-search', + ], +}); diff --git a/packages/search-widget/var.css b/packages/search-widget/var.css new file mode 100644 index 0000000..37920e3 --- /dev/null +++ b/packages/search-widget/var.css @@ -0,0 +1,30 @@ +@media (prefers-color-scheme: dark) { + .color-scheme-auto, + [data-color-scheme="auto"] { + color-scheme: dark; + --halo-search-widget-muted-color: #cbd5e1; + --halo-search-widget-content-color: #f1f5f9; + --halo-search-widget-hit-bg-color: #090a11; + --halo-search-widget-modal-bg-color: #15172a; + --halo-search-widget-modal-layer-color: #000000cc; + --halo-search-widget-base-bg-color: #090a11; + --halo-search-widget-divider-color: #1e293b; + --halo-search-widget-kbd-border-color: #334155; + --halo-search-widget-kbd-shadow: 0px 2px 0px 0px #ffffff1a; + } +} + +.color-scheme-dark, +.dark, +[data-color-scheme="dark"] { + color-scheme: dark; + --halo-search-widget-muted-color: #cbd5e1; + --halo-search-widget-content-color: #f1f5f9; + --halo-search-widget-hit-bg-color: #090a11; + --halo-search-widget-modal-bg-color: #15172a; + --halo-search-widget-modal-layer-color: #000000cc; + --halo-search-widget-base-bg-color: #090a11; + --halo-search-widget-divider-color: #1e293b; + --halo-search-widget-kbd-border-color: #334155; + --halo-search-widget-kbd-shadow: 0px 2px 0px 0px #ffffff1a; +} diff --git a/packages/search-widget/vite.config.dev.ts b/packages/search-widget/vite.config.dev.ts new file mode 100644 index 0000000..4a3a48a --- /dev/null +++ b/packages/search-widget/vite.config.dev.ts @@ -0,0 +1,19 @@ +import UnoCSS from 'unocss/vite'; +import { defineConfig, type UserConfig } from 'vite'; + +export default defineConfig({ + plugins: [ + UnoCSS({ + mode: 'shadow-dom', + configFile: './uno.config.ts', + }), + ], + server: { + proxy: { + '/apis': { + target: 'http://localhost:8090', + changeOrigin: true, + }, + }, + }, +}) satisfies UserConfig; diff --git a/packages/search-widget/vite.config.lib.ts b/packages/search-widget/vite.config.lib.ts new file mode 100644 index 0000000..08ae7c7 --- /dev/null +++ b/packages/search-widget/vite.config.lib.ts @@ -0,0 +1,27 @@ +import UnoCSS from 'unocss/vite'; +import { defineConfig, type Plugin } from 'vite'; +import dts from 'vite-plugin-dts'; + +export default defineConfig({ + build: { + lib: { + entry: 'src/index.ts', + name: 'search-widget', + fileName: 'index', + formats: ['es'], + }, + emptyOutDir: true, + rollupOptions: { + output: { + extend: true, + }, + }, + }, + plugins: [ + UnoCSS({ + mode: 'shadow-dom', + configFile: './uno.config.ts', + }), + dts() as Plugin, + ], +}); diff --git a/packages/search-widget/xliff/es.xlf b/packages/search-widget/xliff/es.xlf new file mode 100644 index 0000000..b783762 --- /dev/null +++ b/packages/search-widget/xliff/es.xlf @@ -0,0 +1,35 @@ + + + + + + Select + Seleccionar + + + Confirm + Confirmar + + + Close + Cerrar + + + Enter keywords to search + Introducir palabras clave para buscar + + + No search results + Sin resultados de búsqueda + + + Recent + Recientes + + + Clear + Borrar + + + + diff --git a/packages/search-widget/xliff/zh-CN.xlf b/packages/search-widget/xliff/zh-CN.xlf new file mode 100644 index 0000000..9fa98e7 --- /dev/null +++ b/packages/search-widget/xliff/zh-CN.xlf @@ -0,0 +1,35 @@ + + + + + + Select + 选择 + + + Confirm + 确认 + + + Close + 关闭 + + + Enter keywords to search + 输入关键词以搜索 + + + No search results + 没有搜索结果 + + + Recent + 最近搜索 + + + Clear + 清空 + + + + diff --git a/packages/search-widget/xliff/zh-TW.xlf b/packages/search-widget/xliff/zh-TW.xlf new file mode 100644 index 0000000..761a7c9 --- /dev/null +++ b/packages/search-widget/xliff/zh-TW.xlf @@ -0,0 +1,35 @@ + + + + + + Select + 選擇 + + + Confirm + 確認 + + + Close + 關閉 + + + Enter keywords to search + 輸入關鍵字以搜尋 + + + No search results + 沒有搜尋結果 + + + Recent + 最近搜尋 + + + Clear + 清空 + + + + diff --git a/packages/widget/package.json b/packages/widget/package.json new file mode 100644 index 0000000..919b474 --- /dev/null +++ b/packages/widget/package.json @@ -0,0 +1,12 @@ +{ + "private": true, + "scripts": { + "build": "tsc && vite build", + "dev": "vite", + "lint": "eslint 'src/**/*.ts'", + "prettier": "prettier \"**/*.{cjs,html,js,json,md,ts}\" --ignore-path ./.gitignore --write" + }, + "dependencies": { + "@halo-dev/search-widget": "workspace:*" + } +} diff --git a/packages/widget/src/index.ts b/packages/widget/src/index.ts new file mode 100644 index 0000000..6155095 --- /dev/null +++ b/packages/widget/src/index.ts @@ -0,0 +1,16 @@ +import { SearchModal } from '@halo-dev/search-widget'; +import '@halo-dev/search-widget/var.css'; +import type { SearchOption } from '@halo-dev/api-client'; + +export { SearchModal }; + +const searchModalElement = document.createElement( + 'search-modal' +) as SearchModal; + +document.body.append(searchModalElement); + +export function open(options: SearchOption) { + searchModalElement.options = options; + searchModalElement.open = true; +} diff --git a/packages/widget/src/vite-env.d.ts b/packages/widget/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/packages/widget/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/packages/widget/tsconfig.json b/packages/widget/tsconfig.json new file mode 100644 index 0000000..596e2cf --- /dev/null +++ b/packages/widget/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "../../tsconfig.json", + "include": ["src"] +} diff --git a/packages/widget/vite.config.ts b/packages/widget/vite.config.ts new file mode 100644 index 0000000..042bb57 --- /dev/null +++ b/packages/widget/vite.config.ts @@ -0,0 +1,30 @@ +import path from 'node:path'; +import { fileURLToPath, URL } from 'node:url'; +import { defineConfig } from 'vite'; + +export default defineConfig({ + experimental: { + enableNativePlugin: true, + }, + resolve: { + alias: { + '@': fileURLToPath(new URL('./src', import.meta.url)), + }, + }, + define: { 'process.env.NODE_ENV': "'production'" }, + build: { + outDir: fileURLToPath( + new URL('../../src/main/resources/static', import.meta.url) + ), + emptyOutDir: true, + cssCodeSplit: false, + lib: { + entry: path.resolve(__dirname, 'src/index.ts'), + formats: ['iife'], + name: 'SearchWidget', + fileName: (format) => `search-widget.${format}.js`, + cssFileName: 'style', + }, + sourcemap: false, + }, +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..cc3de50 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,5139 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + devDependencies: + '@biomejs/biome': + specifier: ^2.1.2 + version: 2.1.2 + '@halo-dev/api-client': + specifier: 2.17.0 + version: 2.17.0(axios@1.7.2) + '@rushstack/eslint-patch': + specifier: ^1.10.4 + version: 1.10.4 + '@types/node': + specifier: ^18.19.43 + version: 18.19.43 + '@typescript-eslint/eslint-plugin': + specifier: ^6.21.0 + version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/parser': + specifier: ^6.21.0 + version: 6.21.0(eslint@8.57.0)(typescript@5.5.4) + eslint: + specifier: ^8.57.0 + version: 8.57.0 + husky: + specifier: ^9.1.7 + version: 9.1.7 + lint-staged: + specifier: ^16.1.2 + version: 16.1.2 + prettier: + specifier: ^2.8.8 + version: 2.8.8 + typescript: + specifier: ^5.5.4 + version: 5.5.4 + vite: + specifier: npm:rolldown-vite@7.0.8 + version: rolldown-vite@7.0.8(@types/node@18.19.43)(jiti@2.4.2)(tsx@4.16.5)(yaml@2.8.0) + + packages/search-widget: + dependencies: + '@lit/localize': + specifier: ^0.12.2 + version: 0.12.2 + es-toolkit: + specifier: ^1.39.7 + version: 1.39.7 + lit: + specifier: ^3.2.0 + version: 3.2.0 + overlayscrollbars: + specifier: ^2.10.0 + version: 2.10.0 + devDependencies: + '@iconify/json': + specifier: ^2.2.234 + version: 2.2.234 + '@julr/unocss-preset-forms': + specifier: ^2.0.0 + version: 2.0.0(unocss@66.3.3(postcss@8.5.6)(rolldown-vite@7.0.8(@types/node@18.19.43)(jiti@2.4.2)(tsx@4.16.5)(yaml@2.8.0))(vue@3.5.17(typescript@5.5.4))) + '@lit/localize-tools': + specifier: ^0.8.0 + version: 0.8.0 + '@unocss/reset': + specifier: ^66.3.3 + version: 66.3.3 + lit-analyzer: + specifier: ^1.2.1 + version: 1.2.1 + unocss: + specifier: ^66.3.3 + version: 66.3.3(postcss@8.5.6)(rolldown-vite@7.0.8(@types/node@18.19.43)(jiti@2.4.2)(tsx@4.16.5)(yaml@2.8.0))(vue@3.5.17(typescript@5.5.4)) + vite: + specifier: npm:rolldown-vite@7.0.8 + version: rolldown-vite@7.0.8(@types/node@18.19.43)(jiti@2.4.2)(tsx@4.16.5)(yaml@2.8.0) + vite-plugin-dts: + specifier: 4.0.0-beta.2 + version: 4.0.0-beta.2(@types/node@18.19.43)(rolldown-vite@7.0.8(@types/node@18.19.43)(jiti@2.4.2)(tsx@4.16.5)(yaml@2.8.0))(rollup@4.20.0)(typescript@5.5.4) + + packages/widget: + dependencies: + '@halo-dev/search-widget': + specifier: workspace:* + version: link:../search-widget + +packages: + + '@aashutoshrathi/word-wrap@1.2.6': + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} + engines: {node: '>=0.10.0'} + + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + + '@antfu/install-pkg@1.1.0': + resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} + + '@antfu/utils@8.1.1': + resolution: {integrity: sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==} + + '@babel/helper-string-parser@7.24.8': + resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.24.7': + resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.27.1': + resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.25.3': + resolution: {integrity: sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/parser@7.28.0': + resolution: {integrity: sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/runtime@7.24.0': + resolution: {integrity: sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.25.2': + resolution: {integrity: sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.28.1': + resolution: {integrity: sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==} + engines: {node: '>=6.9.0'} + + '@biomejs/biome@2.1.2': + resolution: {integrity: sha512-yq8ZZuKuBVDgAS76LWCfFKHSYIAgqkxVB3mGVVpOe2vSkUTs7xG46zXZeNPRNVjiJuw0SZ3+J2rXiYx0RUpfGg==} + engines: {node: '>=14.21.3'} + hasBin: true + + '@biomejs/cli-darwin-arm64@2.1.2': + resolution: {integrity: sha512-leFAks64PEIjc7MY/cLjE8u5OcfBKkcDB0szxsWUB4aDfemBep1WVKt0qrEyqZBOW8LPHzrFMyDl3FhuuA0E7g==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [darwin] + + '@biomejs/cli-darwin-x64@2.1.2': + resolution: {integrity: sha512-Nmmv7wRX5Nj7lGmz0FjnWdflJg4zii8Ivruas6PBKzw5SJX/q+Zh2RfnO+bBnuKLXpj8kiI2x2X12otpH6a32A==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [darwin] + + '@biomejs/cli-linux-arm64-musl@2.1.2': + resolution: {integrity: sha512-qgHvafhjH7Oca114FdOScmIKf1DlXT1LqbOrrbR30kQDLFPEOpBG0uzx6MhmsrmhGiCFCr2obDamu+czk+X0HQ==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [linux] + + '@biomejs/cli-linux-arm64@2.1.2': + resolution: {integrity: sha512-NWNy2Diocav61HZiv2enTQykbPP/KrA/baS7JsLSojC7Xxh2nl9IczuvE5UID7+ksRy2e7yH7klm/WkA72G1dw==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [linux] + + '@biomejs/cli-linux-x64-musl@2.1.2': + resolution: {integrity: sha512-xlB3mU14ZUa3wzLtXfmk2IMOGL+S0aHFhSix/nssWS/2XlD27q+S6f0dlQ8WOCbYoXcuz8BCM7rCn2lxdTrlQA==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [linux] + + '@biomejs/cli-linux-x64@2.1.2': + resolution: {integrity: sha512-Km/UYeVowygTjpX6sGBzlizjakLoMQkxWbruVZSNE6osuSI63i4uCeIL+6q2AJlD3dxoiBJX70dn1enjQnQqwA==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [linux] + + '@biomejs/cli-win32-arm64@2.1.2': + resolution: {integrity: sha512-G8KWZli5ASOXA3yUQgx+M4pZRv3ND16h77UsdunUL17uYpcL/UC7RkWTdkfvMQvogVsAuz5JUcBDjgZHXxlKoA==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [win32] + + '@biomejs/cli-win32-x64@2.1.2': + resolution: {integrity: sha512-9zajnk59PMpjBkty3bK2IrjUsUHvqe9HWwyAWQBjGLE7MIBjbX2vwv1XPEhmO2RRuGoTkVx3WCanHrjAytICLA==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [win32] + + '@emnapi/core@1.4.5': + resolution: {integrity: sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q==} + + '@emnapi/runtime@1.4.5': + resolution: {integrity: sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==} + + '@emnapi/wasi-threads@1.0.4': + resolution: {integrity: sha512-PJR+bOmMOPH8AtcTGAyYNiuJ3/Fcoj2XN/gBEWzDIKh254XO+mM9XoXHk5GNEhodxeMznbg7BlRojVbKN+gC6g==} + + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@eslint-community/eslint-utils@4.4.0': + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.10.0': + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/eslintrc@2.1.4': + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@eslint/js@8.57.0': + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@halo-dev/api-client@2.17.0': + resolution: {integrity: sha512-VbMLeL3G1/4sEObWpRffTNEshAoYBYgI4araJOFbCbv81t69bzZVH/F5NRQ34RlwTqlTHTILCY2TWOuiJvY7cw==} + peerDependencies: + axios: ^1.7.x + + '@humanwhocodes/config-array@0.11.14': + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/object-schema@2.0.2': + resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} + deprecated: Use @eslint/object-schema instead + + '@iconify/json@2.2.234': + resolution: {integrity: sha512-2z0+I0YhHelZ+MPX7wHsSGKv81PicsnVlRfCYNmhZ0s1tyPo7Kkvt8QWjytPZV6f/ypb111I5jpTFB+W7bcAgQ==} + + '@iconify/types@2.0.0': + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} + + '@iconify/utils@2.3.0': + resolution: {integrity: sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==} + + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@julr/unocss-preset-forms@2.0.0': + resolution: {integrity: sha512-1IqToJhrg4ftmTkt2xTCuS7YC9BNv9SA9lNMykFduKD8Y+fuOb+G7VU9iieaWf6UMUWOI3LrZ735v3lA93Z5Dw==} + engines: {node: '>=22'} + peerDependencies: + unocss: '>=0.56.0 < 101' + + '@lit-labs/ssr-dom-shim@1.2.0': + resolution: {integrity: sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g==} + + '@lit/localize-tools@0.8.0': + resolution: {integrity: sha512-18HY8Ln8ZhSW2CYlXY9+CgDeEoxIY4dBvJ7W5fOe5262NvWEQghMgEC01WT9SQm4Non9C42aDGEYLEegw2ZBhw==} + hasBin: true + + '@lit/localize@0.12.2': + resolution: {integrity: sha512-Qv9kvgJKDq/JVSwXOxuWvQnnOBysHA99ti9im9a4fImCmx+fto+XXcUYQbjZHqiueEEc4V20PcRDPO+1g/6seQ==} + + '@lit/reactive-element@2.0.4': + resolution: {integrity: sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==} + + '@microsoft/api-extractor-model@7.29.4': + resolution: {integrity: sha512-LHOMxmT8/tU1IiiiHOdHFF83Qsi+V8d0kLfscG4EvQE9cafiR8blOYr8SfkQKWB1wgEilQgXJX3MIA4vetDLZw==} + + '@microsoft/api-extractor@7.47.4': + resolution: {integrity: sha512-HKm+P4VNzWwvq1Ey+Jfhhj/3MjsD+ka2hbt8L5AcRM95lu1MFOYnz3XlU7Gr79Q/ZhOb7W/imAKeYrOI0bFydg==} + hasBin: true + + '@microsoft/tsdoc-config@0.17.0': + resolution: {integrity: sha512-v/EYRXnCAIHxOHW+Plb6OWuUoMotxTN0GLatnpOb1xq0KuTNw/WI3pamJx/UbsoJP5k9MCw1QxvvhPcF9pH3Zg==} + + '@microsoft/tsdoc@0.15.0': + resolution: {integrity: sha512-HZpPoABogPvjeJOdzCOSJsXeL/SMCBgBZMVC3X3d7YYp2gf31MfxhUoYUNwf1ERPJOnQc0wkFn9trqI6ZEdZuA==} + + '@mrmlnc/readdir-enhanced@2.2.1': + resolution: {integrity: sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==} + engines: {node: '>=4'} + + '@napi-rs/wasm-runtime@0.2.12': + resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@1.1.3': + resolution: {integrity: sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==} + engines: {node: '>= 6'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@oxc-project/runtime@0.76.0': + resolution: {integrity: sha512-17iezP/BukiovZZR7lp6fZZjNTOmodCWQKkI7sn2sOB1TiccRWzO2bpxnE94jhg8l+nBRMrwnM/cjFCr23winw==} + engines: {node: '>=6.9.0'} + + '@oxc-project/types@0.76.0': + resolution: {integrity: sha512-CH3THIrSViKal8yV/Wh3FK0pFhp40nzW1MUDCik9fNuid2D/7JJXKJnfFOAvMxInGXDlvmgT6ACAzrl47TqzkQ==} + + '@parse5/tools@0.3.0': + resolution: {integrity: sha512-zxRyTHkqb7WQMV8kTNBKWb1BeOFUKXBXTBWuxg9H9hfvQB3IwP6Iw2U75Ia5eyRxPNltmY7E8YAlz6zWwUnjKg==} + + '@polka/url@1.0.0-next.25': + resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} + + '@quansync/fs@0.1.3': + resolution: {integrity: sha512-G0OnZbMWEs5LhDyqy2UL17vGhSVHkQIfVojMtEWVenvj0V5S84VBgy86kJIuNsGDp2p7sTKlpSIpBUWdC35OKg==} + engines: {node: '>=20.0.0'} + + '@rolldown/binding-darwin-arm64@1.0.0-beta.26': + resolution: {integrity: sha512-I73Ej+PVoCJiYQHpy45CHKkLgFqrYv9O1CUJs6TIav6f8f9WAVeN/k0YXrs0tgMO20AfsyEN8zenz2wprVWOYQ==} + cpu: [arm64] + os: [darwin] + + '@rolldown/binding-darwin-x64@1.0.0-beta.26': + resolution: {integrity: sha512-IcXzfO2/9bnm6WfCNmGxBiD1kQQdA0pTjjGcjvglUub8H6RlEY0tz+IIQxUirsl/++84S0PkCuafAxZi8Am8fg==} + cpu: [x64] + os: [darwin] + + '@rolldown/binding-freebsd-x64@1.0.0-beta.26': + resolution: {integrity: sha512-foLJNqEFdvwFm2MXDFxgywxJMic+wovbpEyszlz5K/sUbN7sP2+NJ7MZAUMHuggiswB4Rt1HqRLYKy26zJev8g==} + cpu: [x64] + os: [freebsd] + + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.26': + resolution: {integrity: sha512-1BWDpLtujfZCvWAcfIamqHGWo2+VnPWvpZQR0DL5qNit6cu3FC0sRZ+bZzTUK0QWDTA7nUy5RR9fUTL2PQxH2g==} + cpu: [arm] + os: [linux] + + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.26': + resolution: {integrity: sha512-lg6DVwciFb7sIw0ONDHeLhRuFQl/wz+J26bxfVOVzVoQ7Zgl07gDklv7q96W7SRDAjlG/20flBOexdiPim/I3g==} + cpu: [arm64] + os: [linux] + + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.26': + resolution: {integrity: sha512-0X14trOBVtU13Y0XYeb8EvOvb3/TxJVOmalDakEID/UUX9qkvOmlU0fvoDVmsnhH6yx23bDlpmOj0f8V3BCgIw==} + cpu: [arm64] + os: [linux] + + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.26': + resolution: {integrity: sha512-stb8XloM+N3hSKUs6kS5tNqrlTGsCoYuh9emFZtTovfFzzdFYevgXoOdeGoXv9KkPh5B7MOMl4/7c+WaX46Opg==} + cpu: [x64] + os: [linux] + + '@rolldown/binding-linux-x64-musl@1.0.0-beta.26': + resolution: {integrity: sha512-5udEpAS5IUy2t74d/m40JUYyk3Ga8QXQDvK7eGqDDOwz8/7Piq0kCwmNuLnpSRiqbXNP8mnVlvtIcASJUEtRPA==} + cpu: [x64] + os: [linux] + + '@rolldown/binding-wasm32-wasi@1.0.0-beta.26': + resolution: {integrity: sha512-Is5tTdScXXQzslj7+jCFncPoRNARJ/+fYt/C9+Yx0QQ67/m8pGPLFoCzIKmJQZ8QHzOfq5ML4CQlMgBbCFlZqQ==} + engines: {node: '>=14.21.3'} + cpu: [wasm32] + + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.26': + resolution: {integrity: sha512-bH+TB+/8Z/95cxGws0fH995HsbsopVYdGcuM1Z/Hnqe7KPLkhqkubsambHQYd1V/QNbLzAgJ0nMAFLyBrwFZZQ==} + cpu: [arm64] + os: [win32] + + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.26': + resolution: {integrity: sha512-Nsg7ZzfwLHwKGneuNHEpqdBekmZA5pzVOuFx5R8EVyva8dg+sgtDHQRmiVSVYe25YYISNFXDSuHKwNhrWI4HWA==} + cpu: [ia32] + os: [win32] + + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.26': + resolution: {integrity: sha512-NE5Btf10Fu3IbpHxrlRkgcO/d05iEpbIiP/XdMYW7Lc9BGSgE4f8njUHnM0V2XJKyXkC1fqv/uHSEw2dCNgzxQ==} + cpu: [x64] + os: [win32] + + '@rolldown/pluginutils@1.0.0-beta.26': + resolution: {integrity: sha512-r/5po89voz/QRPDmoErL10+hVuTAuz1SHvokx+yWBlOIPB5C41jC7QhLqq9kaebx/+EHyoV3z22/qBfX81Ns8A==} + + '@rollup/pluginutils@5.1.0': + resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/rollup-android-arm-eabi@4.20.0': + resolution: {integrity: sha512-TSpWzflCc4VGAUJZlPpgAJE1+V60MePDQnBd7PPkpuEmOy8i87aL6tinFGKBFKuEDikYpig72QzdT3QPYIi+oA==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.20.0': + resolution: {integrity: sha512-u00Ro/nok7oGzVuh/FMYfNoGqxU5CPWz1mxV85S2w9LxHR8OoMQBuSk+3BKVIDYgkpeOET5yXkx90OYFc+ytpQ==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.20.0': + resolution: {integrity: sha512-uFVfvzvsdGtlSLuL0ZlvPJvl6ZmrH4CBwLGEFPe7hUmf7htGAN+aXo43R/V6LATyxlKVC/m6UsLb7jbG+LG39Q==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.20.0': + resolution: {integrity: sha512-xbrMDdlev53vNXexEa6l0LffojxhqDTBeL+VUxuuIXys4x6xyvbKq5XqTXBCEUA8ty8iEJblHvFaWRJTk/icAQ==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-linux-arm-gnueabihf@4.20.0': + resolution: {integrity: sha512-jMYvxZwGmoHFBTbr12Xc6wOdc2xA5tF5F2q6t7Rcfab68TT0n+r7dgawD4qhPEvasDsVpQi+MgDzj2faOLsZjA==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.20.0': + resolution: {integrity: sha512-1asSTl4HKuIHIB1GcdFHNNZhxAYEdqML/MW4QmPS4G0ivbEcBr1JKlFLKsIRqjSwOBkdItn3/ZDlyvZ/N6KPlw==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.20.0': + resolution: {integrity: sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.20.0': + resolution: {integrity: sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.20.0': + resolution: {integrity: sha512-yAMvqhPfGKsAxHN8I4+jE0CpLWD8cv4z7CK7BMmhjDuz606Q2tFKkWRY8bHR9JQXYcoLfopo5TTqzxgPUjUMfw==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.20.0': + resolution: {integrity: sha512-qmuxFpfmi/2SUkAw95TtNq/w/I7Gpjurx609OOOV7U4vhvUhBcftcmXwl3rqAek+ADBwSjIC4IVNLiszoj3dPA==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.20.0': + resolution: {integrity: sha512-I0BtGXddHSHjV1mqTNkgUZLnS3WtsqebAXv11D5BZE/gfw5KoyXSAXVqyJximQXNvNzUo4GKlCK/dIwXlz+jlg==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.20.0': + resolution: {integrity: sha512-y+eoL2I3iphUg9tN9GB6ku1FA8kOfmF4oUEWhztDJ4KXJy1agk/9+pejOuZkNFhRwHAOxMsBPLbXPd6mJiCwew==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.20.0': + resolution: {integrity: sha512-hM3nhW40kBNYUkZb/r9k2FKK+/MnKglX7UYd4ZUy5DJs8/sMsIbqWK2piZtVGE3kcXVNj3B2IrUYROJMMCikNg==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.20.0': + resolution: {integrity: sha512-psegMvP+Ik/Bg7QRJbv8w8PAytPA7Uo8fpFjXyCRHWm6Nt42L+JtoqH8eDQ5hRP7/XW2UiIriy1Z46jf0Oa1kA==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.20.0': + resolution: {integrity: sha512-GabekH3w4lgAJpVxkk7hUzUf2hICSQO0a/BLFA11/RMxQT92MabKAqyubzDZmMOC/hcJNlc+rrypzNzYl4Dx7A==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.20.0': + resolution: {integrity: sha512-aJ1EJSuTdGnM6qbVC4B5DSmozPTqIag9fSzXRNNo+humQLG89XpPgdt16Ia56ORD7s+H8Pmyx44uczDQ0yDzpg==} + cpu: [x64] + os: [win32] + + '@rushstack/eslint-patch@1.10.4': + resolution: {integrity: sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==} + + '@rushstack/node-core-library@5.5.1': + resolution: {integrity: sha512-ZutW56qIzH8xIOlfyaLQJFx+8IBqdbVCZdnj+XT1MorQ1JqqxHse8vbCpEM+2MjsrqcbxcgDIbfggB1ZSQ2A3g==} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + + '@rushstack/rig-package@0.5.3': + resolution: {integrity: sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==} + + '@rushstack/terminal@0.13.3': + resolution: {integrity: sha512-fc3zjXOw8E0pXS5t9vTiIPx9gHA0fIdTXsu9mT4WbH+P3mYvnrX0iAQ5a6NvyK1+CqYWBTw/wVNx7SDJkI+WYQ==} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + + '@rushstack/ts-command-line@4.22.3': + resolution: {integrity: sha512-edMpWB3QhFFZ4KtSzS8WNjBgR4PXPPOVrOHMbb7kNpmQ1UFS9HdVtjCXg1H5fG+xYAbeE+TMPcVPUyX2p84STA==} + + '@tybys/wasm-util@0.10.0': + resolution: {integrity: sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ==} + + '@types/argparse@1.0.38': + resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} + + '@types/estree@1.0.5': + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/node@18.19.43': + resolution: {integrity: sha512-Mw/YlgXnyJdEwLoFv2dpuJaDFriX+Pc+0qOBJ57jC1H6cDxIj2xc5yUrdtArDVG0m+KV6622a4p2tenEqB3C/g==} + + '@types/semver@7.5.8': + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + + '@types/trusted-types@2.0.7': + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + + '@typescript-eslint/eslint-plugin@6.21.0': + resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@6.21.0': + resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/scope-manager@6.21.0': + resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/type-utils@6.21.0': + resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/types@6.21.0': + resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/typescript-estree@6.21.0': + resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/utils@6.21.0': + resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + + '@typescript-eslint/visitor-keys@6.21.0': + resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@ungap/structured-clone@1.2.0': + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + + '@unocss/astro@66.3.3': + resolution: {integrity: sha512-q26EfadSMmEXZpWDKsJF9anBCfhYDmWljVpDZ2Wo8K48IbZMUXrWfiAiUc6ijE/A/rADfHk8bp3a3GE01t3I9A==} + peerDependencies: + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 + peerDependenciesMeta: + vite: + optional: true + + '@unocss/cli@66.3.3': + resolution: {integrity: sha512-U0HoDcwi/DetqP5zDT3dfxG94pC3TI0PfxmpdTfPY7xEylIdLbV89fb70CvJVysDSQJIuw6TYwqS1ZlHoYNKTA==} + engines: {node: '>=14'} + hasBin: true + + '@unocss/config@66.3.3': + resolution: {integrity: sha512-D/UxnAmkabapqWU4tF85dWWhNfCUyNutWmd4AD2VsQRZOykufJedLV74r3Z3XhoPJn4IGr3BKZm5/rflf5viDg==} + engines: {node: '>=14'} + + '@unocss/core@66.3.3': + resolution: {integrity: sha512-6WFLd92TJelVQARtCGaF+EgEoHKIVe43gkGXVoWILu0HUDRWdhv+cpcyX0RTJV22Y976AxeneU7/zmhAh+CXNg==} + + '@unocss/extractor-arbitrary-variants@66.3.3': + resolution: {integrity: sha512-TXzjH6FcITQ8V2x7ETHgVOlAHf3ll/ysxL+W4fMROm8jP/o7jvsg36tRfOwU0sDGo/qoCPux82ix9e6/JW0oqQ==} + + '@unocss/inspector@66.3.3': + resolution: {integrity: sha512-NsK1WRWez2Mzk4+ophtBdXel8nGaPkIDa9lYSFMdKLF/1jNW23txeEL8CsD6/CK8K0BsR11rhLKhUrzyrjfBSQ==} + + '@unocss/postcss@66.3.3': + resolution: {integrity: sha512-VKq+BtfPIZbLeAeZFprtKZJAyFBOqA8qpQm+vmWBiBia70JzkwfF2SMNIHiGt022yRo9ZmjnI9uRTxSzqXUsUQ==} + engines: {node: '>=14'} + peerDependencies: + postcss: ^8.4.21 + + '@unocss/preset-attributify@66.3.3': + resolution: {integrity: sha512-22+0Cqqu09q+xHfZ3Wk8Coxe5m6PmpgWz4U5xrEC8056UfG3Q1KEqoCxy2wySJIq8SqxQ30Nlll7oMa31B8Krw==} + + '@unocss/preset-icons@66.3.3': + resolution: {integrity: sha512-Bmhiev05BN/horlgnyZ8gzQWZKd7oVpUBWD66X7U/dgkLdO6B5GIIsdO5Fi7JLeMDmyXm6vlYk0YQhiTbx8l9w==} + + '@unocss/preset-mini@66.3.3': + resolution: {integrity: sha512-pz8rgvHRYS/6fsZNtG7iArLzwANnLy5GkHY/lbuqkWhO2S2Nf7kpJCbR/uV/XeuFsLnYcZW3NLOmelfvZvJamA==} + + '@unocss/preset-tagify@66.3.3': + resolution: {integrity: sha512-L1Ez7Y4uBaW+wiv1BOQygpfhseSt3EZ53jqkl7fxl1EKVsJy6SuZgJxlXEHUYp9xYdSp6EHq2CfL8UevaR+loA==} + + '@unocss/preset-typography@66.3.3': + resolution: {integrity: sha512-aQXiGCObvWD9grfUpm0d5nzN+Cpvag0rHP39UjUKb0xSTzY09VzwDrua4kWVO5wJLNK6/L70osyhEgmC3qToxA==} + + '@unocss/preset-uno@66.3.3': + resolution: {integrity: sha512-Tiho4LidpuMHrB19GHTU6XrL0A5eFELHk9ebQ/3WeTy+K/9a6Hn5zsHJe5UCtOsEcUdKB33oZx0hXUp93hb/YQ==} + + '@unocss/preset-web-fonts@66.3.3': + resolution: {integrity: sha512-ysKZeC7TXxRiqnNL9GxZFGMKFAHXrcaqozPaEOIJ40dvzbJt8IMLyFndZkcFMcgDCV0pFh/y37mGxxxARO9+pQ==} + + '@unocss/preset-wind3@66.3.3': + resolution: {integrity: sha512-iXmjvPqvmPTo4z7epQDqHxzlGRsbLJEgfETqTrRJeagvFG7Gs+ajS8cQhbf6wL01dSRHjvhVXi3MsIvqfHHXOw==} + + '@unocss/preset-wind4@66.3.3': + resolution: {integrity: sha512-JSJTXVJel6kX+u4Ktt6JGnukYWYhKxmjgORTwclUpokRHgEoD+xsh0Rz4YGJ1fWSnzNslNQhWP9yDRByVPHWwA==} + + '@unocss/preset-wind@66.3.3': + resolution: {integrity: sha512-3Mxl/TDPcv8nNKdFe3WKdlXE6de+lCaaizEH86BILW3ZeyPU9aKzWcZIoxohla0a6zMxDQ2+Gf+7EwaOvpqo7Q==} + + '@unocss/reset@66.3.3': + resolution: {integrity: sha512-VIeR/mIcCL89/1uA1KM1QCYca4aeIGqEHMTJL1nCD4v+7wk6XhNXhsp5gMIHo+V804SUSmATWaeHTiKpiFu7AQ==} + + '@unocss/rule-utils@66.3.3': + resolution: {integrity: sha512-QKgVGV5nRRnK44/reUKFLAc5UGyl98vz3hrfk8JI8pVza58vmQWTdAB2rIpNJ5a5j+EkWfDOUlGQaOrIeYGLdg==} + engines: {node: '>=14'} + + '@unocss/transformer-attributify-jsx@66.3.3': + resolution: {integrity: sha512-ENNYFk5wrI4jlxn0tWGeR9QGxflAfZue3X2ABg0KSVOiYyIOsrHqtdoiLYkuCA9idRlBZPQxePJKcPWt1r/tYA==} + + '@unocss/transformer-compile-class@66.3.3': + resolution: {integrity: sha512-VTEFuwp3iajGWyEFwmO5LRvOjgZM1TK+4rX5Q79xyTAPkLAKgOa03Ne8+kU8oG0TQEa4mXVw6ul9McM7UBJh1w==} + + '@unocss/transformer-directives@66.3.3': + resolution: {integrity: sha512-11T7fmYk/XZcqFDn4qiIvs04mJhUtAoha5Y99bVE+L3byWa6BT4jb5aSAKk+24q5aynwgB++4RgfQxarj69WTw==} + + '@unocss/transformer-variant-group@66.3.3': + resolution: {integrity: sha512-uhK81pbJfXJFYaXxOoIFVEG8/Kx1iaAkTwRB6c+WNUfl9GiKyYQcrI7bETgCPPbg230Z68jVICBgBATeLJ31vQ==} + + '@unocss/vite@66.3.3': + resolution: {integrity: sha512-uu3smeEW6q36ri6vydRx2GiTGF5O/J80Fr4GLmLiwfpt2YnPHraO7XHVR5/mwG2Oz5Kov0uGvxVsdgxZABKRgw==} + peerDependencies: + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 + + '@volar/language-core@2.3.4': + resolution: {integrity: sha512-wXBhY11qG6pCDAqDnbBRFIDSIwbqkWI7no+lj5+L7IlA7HRIjRP7YQLGzT0LF4lS6eHkMSsclXqy9DwYJasZTQ==} + + '@volar/language-core@2.4.0-alpha.18': + resolution: {integrity: sha512-JAYeJvYQQROmVRtSBIczaPjP3DX4QW1fOqW1Ebs0d3Y3EwSNRglz03dSv0Dm61dzd0Yx3WgTW3hndDnTQqgmyg==} + + '@volar/source-map@2.3.4': + resolution: {integrity: sha512-C+t63nwcblqLIVTYXaVi/+gC8NukDaDIQI72J3R7aXGvtgaVB16c+J8Iz7/VfOy7kjYv7lf5GhBny6ACw9fTGQ==} + + '@volar/source-map@2.4.0-alpha.18': + resolution: {integrity: sha512-MTeCV9MUwwsH0sNFiZwKtFrrVZUK6p8ioZs3xFzHc2cvDXHWlYN3bChdQtwKX+FY2HG6H3CfAu1pKijolzIQ8g==} + + '@volar/typescript@2.3.4': + resolution: {integrity: sha512-acCvt7dZECyKcvO5geNybmrqOsu9u8n5XP1rfiYsOLYGPxvHRav9BVmEdRyZ3vvY6mNyQ1wLL5Hday4IShe17w==} + + '@volar/typescript@2.4.0-alpha.18': + resolution: {integrity: sha512-sXh5Y8sqGUkgxpMWUGvRXggxYHAVxg0Pa1C42lQZuPDrW6vHJPR0VCK8Sr7WJsAW530HuNQT/ZIskmXtxjybMQ==} + + '@vue/compiler-core@3.4.36': + resolution: {integrity: sha512-qBkndgpwFKdupmOPoiS10i7oFdN7a+4UNDlezD0GlQ1kuA1pNrscg9g12HnB5E8hrWSuEftRsbJhL1HI2zpJhg==} + + '@vue/compiler-core@3.5.17': + resolution: {integrity: sha512-Xe+AittLbAyV0pabcN7cP7/BenRBNcteM4aSDCtRvGw0d9OL+HG1u/XHLY/kt1q4fyMeZYXyIYrsHuPSiDPosA==} + + '@vue/compiler-dom@3.4.36': + resolution: {integrity: sha512-eEIjy4GwwZTFon/Y+WO8tRRNGqylaRlA79T1RLhUpkOzJ7EtZkkb8MurNfkqY6x6Qiu0R7ESspEF7GkPR/4yYg==} + + '@vue/compiler-dom@3.5.17': + resolution: {integrity: sha512-+2UgfLKoaNLhgfhV5Ihnk6wB4ljyW1/7wUIog2puUqajiC29Lp5R/IKDdkebh9jTbTogTbsgB+OY9cEWzG95JQ==} + + '@vue/compiler-sfc@3.5.17': + resolution: {integrity: sha512-rQQxbRJMgTqwRugtjw0cnyQv9cP4/4BxWfTdRBkqsTfLOHWykLzbOc3C4GGzAmdMDxhzU/1Ija5bTjMVrddqww==} + + '@vue/compiler-ssr@3.5.17': + resolution: {integrity: sha512-hkDbA0Q20ZzGgpj5uZjb9rBzQtIHLS78mMilwrlpWk2Ep37DYntUz0PonQ6kr113vfOEdM+zTBuJDaceNIW0tQ==} + + '@vue/compiler-vue2@2.7.16': + resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} + + '@vue/language-core@2.0.29': + resolution: {integrity: sha512-o2qz9JPjhdoVj8D2+9bDXbaI4q2uZTHQA/dbyZT4Bj1FR9viZxDJnLcKVHfxdn6wsOzRgpqIzJEEmSSvgMvDTQ==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@vue/reactivity@3.5.17': + resolution: {integrity: sha512-l/rmw2STIscWi7SNJp708FK4Kofs97zc/5aEPQh4bOsReD/8ICuBcEmS7KGwDj5ODQLYWVN2lNibKJL1z5b+Lw==} + + '@vue/runtime-core@3.5.17': + resolution: {integrity: sha512-QQLXa20dHg1R0ri4bjKeGFKEkJA7MMBxrKo2G+gJikmumRS7PTD4BOU9FKrDQWMKowz7frJJGqBffYMgQYS96Q==} + + '@vue/runtime-dom@3.5.17': + resolution: {integrity: sha512-8El0M60TcwZ1QMz4/os2MdlQECgGoVHPuLnQBU3m9h3gdNRW9xRmI8iLS4t/22OQlOE6aJvNNlBiCzPHur4H9g==} + + '@vue/server-renderer@3.5.17': + resolution: {integrity: sha512-BOHhm8HalujY6lmC3DbqF6uXN/K00uWiEeF22LfEsm9Q93XeJ/plHTepGwf6tqFcF7GA5oGSSAAUock3VvzaCA==} + peerDependencies: + vue: 3.5.17 + + '@vue/shared@3.4.36': + resolution: {integrity: sha512-fdPLStwl1sDfYuUftBaUVn2pIrVFDASYerZSrlBvVBfylObPA1gtcWJHy5Ox8jLEJ524zBibss488Q3SZtU1uA==} + + '@vue/shared@3.5.17': + resolution: {integrity: sha512-CabR+UN630VnsJO/jHWYBC1YVXyMq94KKp6iF5MQgZJs5I8cmjw6oVMO1oDbtBkENSHSSn/UadWlW/OAgdmKrg==} + + '@xmldom/xmldom@0.8.10': + resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} + engines: {node: '>=10.0.0'} + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + engines: {node: '>=0.4.0'} + hasBin: true + + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} + hasBin: true + + ajv-draft-04@1.0.0: + resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} + peerDependencies: + ajv: ^8.5.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv-formats@3.0.1: + resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + + ajv@8.13.0: + resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==} + + ansi-escapes@7.0.0: + resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} + engines: {node: '>=18'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + engines: {node: '>=12'} + + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + ansis@4.1.0: + resolution: {integrity: sha512-BGcItUBWSMRgOCe+SVZJ+S7yTRG0eGt9cXAHev72yuGcY23hnLA7Bky5L/xLyPINoSN95geovfBkqoTlNZYa7w==} + engines: {node: '>=14'} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + arr-diff@4.0.0: + resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} + engines: {node: '>=0.10.0'} + + arr-flatten@1.1.0: + resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} + engines: {node: '>=0.10.0'} + + arr-union@3.1.0: + resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} + engines: {node: '>=0.10.0'} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + array-unique@0.3.2: + resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} + engines: {node: '>=0.10.0'} + + assign-symbols@1.0.0: + resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} + engines: {node: '>=0.10.0'} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + atob@2.1.2: + resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} + engines: {node: '>= 4.5.0'} + hasBin: true + + axios@1.7.2: + resolution: {integrity: sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + base@0.11.2: + resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} + engines: {node: '>=0.10.0'} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@2.3.2: + resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} + engines: {node: '>=0.10.0'} + + braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + + cache-base@1.0.1: + resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} + engines: {node: '>=0.10.0'} + + call-me-maybe@1.0.2: + resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chalk@5.4.1: + resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + class-utils@0.3.6: + resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} + engines: {node: '>=0.10.0'} + + cli-cursor@5.0.0: + resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} + engines: {node: '>=18'} + + cli-truncate@4.0.0: + resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} + engines: {node: '>=18'} + + cliui@6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + + collection-visit@1.0.0: + resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} + engines: {node: '>=0.10.0'} + + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + commander@14.0.0: + resolution: {integrity: sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA==} + engines: {node: '>=20'} + + compare-versions@6.1.1: + resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} + + component-emitter@1.3.1: + resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} + + computeds@0.0.1: + resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + confbox@0.1.7: + resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} + + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + + confbox@0.2.2: + resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==} + + consola@3.4.2: + resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} + engines: {node: ^14.18.0 || >=16.10.0} + + copy-descriptor@0.1.1: + resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} + engines: {node: '>=0.10.0'} + + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + + css-tree@3.1.0: + resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + de-indent@1.0.2: + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} + + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.6: + resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.4.1: + resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + + decode-uri-component@0.2.2: + resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} + engines: {node: '>=0.10'} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + define-property@0.2.5: + resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} + engines: {node: '>=0.10.0'} + + define-property@1.0.0: + resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} + engines: {node: '>=0.10.0'} + + define-property@2.0.2: + resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} + engines: {node: '>=0.10.0'} + + defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + destr@2.0.3: + resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} + + detect-libc@2.0.4: + resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} + engines: {node: '>=8'} + + didyoumean2@4.1.0: + resolution: {integrity: sha512-qTBmfQoXvhKO75D/05C8m+fteQmn4U46FWYiLhXtZQInzitXLWY0EQ/2oKnpAz9g2lQWW8jYcLcT+hPJGT+kig==} + engines: {node: '>=10.13'} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + + duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + + emoji-regex@10.4.0: + resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + entities@5.0.0: + resolution: {integrity: sha512-BeJFvFRJddxobhvEdm5GqHzRV/X+ACeuw0/BuuxsCh1EUZcAIz8+kYmBp/LrQuloy6K1f3a0M7+IhmZ7QnkISA==} + engines: {node: '>=0.12'} + + environment@1.1.0: + resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} + engines: {node: '>=18'} + + es-toolkit@1.39.7: + resolution: {integrity: sha512-ek/wWryKouBrZIjkwW2BFf91CWOIMvoy2AE5YYgUrfWsJQM2Su1LoLtrw8uusEpN9RfqLlV/0FVNjT0WMv8Bxw==} + + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. + hasBin: true + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + + expand-brackets@2.1.4: + resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} + engines: {node: '>=0.10.0'} + + exsolve@1.0.7: + resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==} + + extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + + extend-shallow@3.0.2: + resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} + engines: {node: '>=0.10.0'} + + extglob@2.0.4: + resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} + engines: {node: '>=0.10.0'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-glob@2.2.7: + resolution: {integrity: sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==} + engines: {node: '>=4.0.0'} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + + fdir@6.4.6: + resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + + fill-range@4.0.0: + resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} + engines: {node: '>=0.10.0'} + + fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + + flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + + follow-redirects@1.15.6: + resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + for-in@1.0.2: + resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} + engines: {node: '>=0.10.0'} + + form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + + fragment-cache@0.2.1: + resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} + engines: {node: '>=0.10.0'} + + fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + + fs-extra@7.0.1: + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-east-asian-width@1.3.0: + resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==} + engines: {node: '>=18'} + + get-tsconfig@4.7.6: + resolution: {integrity: sha512-ZAqrLlu18NbDdRaHq+AKXzAmqIUPswPWKUchfytdAjiRFnCe5ojG2bstg6mRiZabkKfCoL/e98pbBELIV/YCeA==} + + get-value@2.0.6: + resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} + engines: {node: '>=0.10.0'} + + glob-parent@3.1.0: + resolution: {integrity: sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob-to-regexp@0.3.0: + resolution: {integrity: sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig==} + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + + globals@15.15.0: + resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} + engines: {node: '>=18'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + gzip-size@6.0.0: + resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} + engines: {node: '>=10'} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-value@0.3.1: + resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} + engines: {node: '>=0.10.0'} + + has-value@1.0.0: + resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} + engines: {node: '>=0.10.0'} + + has-values@0.1.4: + resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} + engines: {node: '>=0.10.0'} + + has-values@1.0.0: + resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} + engines: {node: '>=0.10.0'} + + hasown@2.0.1: + resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==} + engines: {node: '>= 0.4'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + + husky@9.1.7: + resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} + engines: {node: '>=18'} + hasBin: true + + ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + engines: {node: '>= 4'} + + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + + import-lazy@4.0.0: + resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} + engines: {node: '>=8'} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + is-accessor-descriptor@1.0.1: + resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==} + engines: {node: '>= 0.10'} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-buffer@1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + + is-core-module@2.15.0: + resolution: {integrity: sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==} + engines: {node: '>= 0.4'} + + is-data-descriptor@1.0.1: + resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==} + engines: {node: '>= 0.4'} + + is-descriptor@0.1.7: + resolution: {integrity: sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==} + engines: {node: '>= 0.4'} + + is-descriptor@1.0.3: + resolution: {integrity: sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==} + engines: {node: '>= 0.4'} + + is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + + is-extendable@1.0.1: + resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} + engines: {node: '>=0.10.0'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + + is-fullwidth-code-point@5.0.0: + resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} + engines: {node: '>=18'} + + is-glob@3.1.0: + resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==} + engines: {node: '>=0.10.0'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + 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'} + + is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + + is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isobject@2.1.0: + resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} + engines: {node: '>=0.10.0'} + + isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + + jiti@2.4.2: + resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} + hasBin: true + + jju@1.4.0: + resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + + jsonschema@1.4.1: + resolution: {integrity: sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + kind-of@3.2.2: + resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} + engines: {node: '>=0.10.0'} + + kind-of@4.0.0: + resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} + engines: {node: '>=0.10.0'} + + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + kolorist@1.8.0: + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + + leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lightningcss-darwin-arm64@1.30.1: + resolution: {integrity: sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.30.1: + resolution: {integrity: sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.30.1: + resolution: {integrity: sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.30.1: + resolution: {integrity: sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.30.1: + resolution: {integrity: sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-arm64-musl@1.30.1: + resolution: {integrity: sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-x64-gnu@1.30.1: + resolution: {integrity: sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-linux-x64-musl@1.30.1: + resolution: {integrity: sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-win32-arm64-msvc@1.30.1: + resolution: {integrity: sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.30.1: + resolution: {integrity: sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + + lightningcss@1.30.1: + resolution: {integrity: sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==} + engines: {node: '>= 12.0.0'} + + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} + + lint-staged@16.1.2: + resolution: {integrity: sha512-sQKw2Si2g9KUZNY3XNvRuDq4UJqpHwF0/FQzZR2M7I5MvtpWvibikCjUVJzZdGE0ByurEl3KQNvsGetd1ty1/Q==} + engines: {node: '>=20.17'} + hasBin: true + + listr2@8.3.3: + resolution: {integrity: sha512-LWzX2KsqcB1wqQ4AHgYb4RsDXauQiqhjLk+6hjbaeHG4zpjjVAB6wC/gz6X0l+Du1cN3pUB5ZlrvTbhGSNnUQQ==} + engines: {node: '>=18.0.0'} + + lit-analyzer@1.2.1: + resolution: {integrity: sha512-OEARBhDidyaQENavLbzpTKbEmu5rnAI+SdYsH4ia1BlGlLiqQXoym7uH1MaRPtwtUPbkhUfT4OBDZ+74VHc3Cg==} + hasBin: true + + lit-element@4.1.0: + resolution: {integrity: sha512-gSejRUQJuMQjV2Z59KAS/D4iElUhwKpIyJvZ9w+DIagIQjfJnhR20h2Q5ddpzXGS+fF0tMZ/xEYGMnKmaI/iww==} + + lit-html@3.2.0: + resolution: {integrity: sha512-pwT/HwoxqI9FggTrYVarkBKFN9MlTUpLrDHubTmW4SrkL3kkqW5gxwbxMMUnbbRHBC0WTZnYHcjDSCM559VyfA==} + + lit@3.2.0: + resolution: {integrity: sha512-s6tI33Lf6VpDu7u4YqsSX78D28bYQulM+VAzsGch4fx2H0eLZnJsUBsPWmGYSGoKDNbjtRv02rio1o+UdPVwvw==} + + local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} + + local-pkg@1.1.1: + resolution: {integrity: sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==} + engines: {node: '>=14'} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash.deburr@4.1.0: + resolution: {integrity: sha512-m/M1U1f3ddMCs6Hq2tAsYThTBDaAKFDX3dwDo97GEYzamXi9SqUpjWi/Rrj/gf3X2n8ktwgZrlP1z6E3v/IExQ==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + log-update@6.1.0: + resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} + engines: {node: '>=18'} + + lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + + magic-string@0.30.11: + resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} + + magic-string@0.30.17: + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + + map-cache@0.2.2: + resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} + engines: {node: '>=0.10.0'} + + map-visit@1.0.0: + resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} + engines: {node: '>=0.10.0'} + + mdn-data@2.12.2: + resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromatch@3.1.10: + resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} + engines: {node: '>=0.10.0'} + + micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mimic-function@5.0.1: + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} + + minimatch@3.0.8: + resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + mixin-deep@1.3.2: + resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} + engines: {node: '>=0.10.0'} + + mlly@1.7.1: + resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} + + mlly@1.7.4: + resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} + + mrmime@2.0.0: + resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} + engines: {node: '>=10'} + + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + muggle-string@0.4.1: + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + + nano-spawn@1.0.2: + resolution: {integrity: sha512-21t+ozMQDAL/UGgQVBbZ/xXvNO10++ZPuTmKRO8k9V3AClVRht49ahtDjfY8l1q6nSHOrE5ASfthzH3ol6R/hg==} + engines: {node: '>=20.17'} + + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + nanomatch@1.2.13: + resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} + engines: {node: '>=0.10.0'} + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + node-fetch-native@1.6.4: + resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + object-copy@0.1.0: + resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} + engines: {node: '>=0.10.0'} + + object-visit@1.0.1: + resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} + engines: {node: '>=0.10.0'} + + object.pick@1.3.0: + resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} + engines: {node: '>=0.10.0'} + + ofetch@1.4.1: + resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@7.0.0: + resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} + engines: {node: '>=18'} + + optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + engines: {node: '>= 0.8.0'} + + overlayscrollbars@2.10.0: + resolution: {integrity: sha512-diNMeEafWTE0A4GJfwRpdBp2rE/BEvrhptBdBcDu8/UeytWcdCy9Td8tZWnztJeJ26f8/uHCWfPnPUC/dtgJdw==} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + package-manager-detector@1.3.0: + resolution: {integrity: sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse5@5.1.0: + resolution: {integrity: sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==} + + parse5@7.2.1: + resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==} + + pascalcase@0.1.1: + resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} + engines: {node: '>=0.10.0'} + + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + + path-dirname@1.0.2: + resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + + perfect-debounce@1.0.0: + resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + + pidtree@0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true + + pkg-types@1.1.3: + resolution: {integrity: sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==} + + pkg-types@1.3.1: + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + + pkg-types@2.2.0: + resolution: {integrity: sha512-2SM/GZGAEkPp3KWORxQZns4M+WSeXbC2HEvmOIJe3Cmiv6ieAJvdVhDldtHqM5J1Y7MrR1XhkBT/rMlhh9FdqQ==} + + posix-character-classes@0.1.1: + resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} + engines: {node: '>=0.10.0'} + + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + engines: {node: ^10 || ^12 || >=14} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + quansync@0.2.10: + resolution: {integrity: sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + + regex-not@1.0.2: + resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} + engines: {node: '>=0.10.0'} + + repeat-element@1.1.4: + resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} + engines: {node: '>=0.10.0'} + + repeat-string@1.6.1: + resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} + engines: {node: '>=0.10'} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + require-main-filename@2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + resolve-url@0.2.1: + resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} + deprecated: https://github.com/lydell/resolve-url#deprecated + + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + + restore-cursor@5.1.0: + resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} + engines: {node: '>=18'} + + ret@0.1.15: + resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} + engines: {node: '>=0.12'} + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + rolldown-vite@7.0.8: + resolution: {integrity: sha512-JvCftqO4+el0CujpfkakzI+yJDK03/6tUU/2THl7QfBvxItEC5zDJ7Y8cz0HB7vu6WM82G/emndyY+kUAYLPUg==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + esbuild: ^0.25.0 + jiti: '>=1.21.0' + less: ^4.0.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + esbuild: + optional: true + jiti: + optional: true + less: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + rolldown@1.0.0-beta.26: + resolution: {integrity: sha512-2rad1JDFst/GD1J86RuqN1SIP8O8Xv4UbqNyKaVayXTjgF0D6HpvTnUZ1RQ6tANpZweGmq4v6Ay0uyRNEycFPw==} + hasBin: true + + rollup@4.20.0: + resolution: {integrity: sha512-6rbWBChcnSGzIlXeIdNIZTopKYad8ZG8ajhl78lGRLsI2rX8IkaotQhVas2Ma+GPxJav19wrSzvRvuiv0YKzWw==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + safe-regex@1.1.0: + resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} + + semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + + semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} + hasBin: true + + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + + set-value@2.0.1: + resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} + engines: {node: '>=0.10.0'} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + sirv@3.0.1: + resolution: {integrity: sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==} + engines: {node: '>=18'} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + + slice-ansi@7.1.0: + resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} + engines: {node: '>=18'} + + snapdragon-node@2.1.1: + resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} + engines: {node: '>=0.10.0'} + + snapdragon-util@3.0.1: + resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} + engines: {node: '>=0.10.0'} + + snapdragon@0.8.2: + resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} + engines: {node: '>=0.10.0'} + + source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + engines: {node: '>=0.10.0'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map-resolve@0.5.3: + resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} + deprecated: See https://github.com/lydell/source-map-resolve#deprecated + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map-url@0.4.1: + resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} + deprecated: See https://github.com/lydell/source-map-url#deprecated + + source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + split-string@3.1.0: + resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} + engines: {node: '>=0.10.0'} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + static-extend@0.1.2: + resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} + engines: {node: '>=0.10.0'} + + string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + tinyexec@1.0.1: + resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==} + + tinyglobby@0.2.14: + resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} + engines: {node: '>=12.0.0'} + + to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + to-object-path@0.3.0: + resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} + engines: {node: '>=0.10.0'} + + to-regex-range@2.1.1: + resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} + engines: {node: '>=0.10.0'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + to-regex@3.0.2: + resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} + engines: {node: '>=0.10.0'} + + totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + + ts-api-utils@1.2.1: + resolution: {integrity: sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + + ts-simple-type@1.0.7: + resolution: {integrity: sha512-zKmsCQs4dZaeSKjEA7pLFDv7FHHqAFLPd0Mr//OIJvu8M+4p4bgSFJwZSEBEg3ec9W7RzRz1vi8giiX0+mheBQ==} + + tslib@2.6.3: + resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + + tsx@4.16.5: + resolution: {integrity: sha512-ArsiAQHEW2iGaqZ8fTA1nX0a+lN5mNTyuGRRO6OW3H/Yno1y9/t1f9YOI1Cfoqz63VAthn++ZYcbDP7jPflc+A==} + engines: {node: '>=18.0.0'} + hasBin: true + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + typescript@3.9.10: + resolution: {integrity: sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==} + engines: {node: '>=4.2.0'} + hasBin: true + + typescript@5.4.2: + resolution: {integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==} + engines: {node: '>=14.17'} + hasBin: true + + typescript@5.5.4: + resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} + engines: {node: '>=14.17'} + hasBin: true + + ufo@1.5.4: + resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} + + unconfig@7.3.2: + resolution: {integrity: sha512-nqG5NNL2wFVGZ0NA/aCFw0oJ2pxSf1lwg4Z5ill8wd7K4KX/rQbHlwbh+bjctXL5Ly1xtzHenHGOK0b+lG6JVg==} + + undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + + union-value@1.0.1: + resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} + engines: {node: '>=0.10.0'} + + universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + unocss@66.3.3: + resolution: {integrity: sha512-HSB+K4/EbouwYmxpPU52cg0exua7PUr2IAJZBV3iai6tPdMcJ0c8jXaw7G+2L+ffruVFTcS0e2kE4OrR8BKDLg==} + engines: {node: '>=14'} + peerDependencies: + '@unocss/webpack': 66.3.3 + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 + peerDependenciesMeta: + '@unocss/webpack': + optional: true + vite: + optional: true + + unplugin-utils@0.2.4: + resolution: {integrity: sha512-8U/MtpkPkkk3Atewj1+RcKIjb5WBimZ/WSLhhR3w6SsIj8XJuKTacSP8g+2JhfSGw0Cb125Y+2zA/IzJZDVbhA==} + engines: {node: '>=18.12.0'} + + unset-value@1.0.0: + resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} + engines: {node: '>=0.10.0'} + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + urix@0.1.0: + resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} + deprecated: Please see https://github.com/lydell/urix#deprecated + + use@3.1.1: + resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} + engines: {node: '>=0.10.0'} + + vite-plugin-dts@4.0.0-beta.2: + resolution: {integrity: sha512-7PYDxeKvFjRpeqvWTRT8YqX2J1uOrxgvHtXkRYAMfjonIHMSz/ZXjxPiRefBbXOTydqWk7jSZK3vwEt4Gvzbfw==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + typescript: '*' + vite: '*' + peerDependenciesMeta: + vite: + optional: true + + vscode-css-languageservice@4.3.0: + resolution: {integrity: sha512-BkQAMz4oVHjr0oOAz5PdeE72txlLQK7NIwzmclfr+b6fj6I8POwB+VoXvrZLTbWt9hWRgfvgiQRkh5JwrjPJ5A==} + + vscode-html-languageservice@3.1.0: + resolution: {integrity: sha512-QAyRHI98bbEIBCqTzZVA0VblGU40na0txggongw5ZgTj9UVsVk5XbLT16O9OTcbqBGSqn0oWmFDNjK/XGIDcqg==} + + vscode-languageserver-textdocument@1.0.11: + resolution: {integrity: sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==} + + vscode-languageserver-types@3.16.0-next.2: + resolution: {integrity: sha512-QjXB7CKIfFzKbiCJC4OWC8xUncLsxo19FzGVp/ADFvvi87PlmBSCAtZI5xwGjF5qE0xkLf0jjKUn3DzmpDP52Q==} + + vscode-nls@4.1.2: + resolution: {integrity: sha512-7bOHxPsfyuCqmP+hZXscLhiHwe7CSuFE4hyhbs22xPIhQ4jv99FcR4eBzfYYVLP356HNFpdvz63FFb/xw6T4Iw==} + + vscode-uri@2.1.2: + resolution: {integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==} + + vscode-uri@3.0.8: + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + + vue-flow-layout@0.1.1: + resolution: {integrity: sha512-JdgRRUVrN0Y2GosA0M68DEbKlXMqJ7FQgsK8CjQD2vxvNSqAU6PZEpi4cfcTVtfM2GVOMjHo7GKKLbXxOBqDqA==} + peerDependencies: + vue: ^3.4.37 + + vue-tsc@2.0.29: + resolution: {integrity: sha512-MHhsfyxO3mYShZCGYNziSbc63x7cQ5g9kvijV7dRe1TTXBRLxXyL0FnXWpUF1xII2mJ86mwYpYsUmMwkmerq7Q==} + hasBin: true + peerDependencies: + typescript: '>=5.0.0' + + vue@3.5.17: + resolution: {integrity: sha512-LbHV3xPN9BeljML+Xctq4lbz2lVHCR6DtbpTf5XIO6gugpXUN49j2QQPcMj086r9+AkJ0FfUT8xjulKKBkkr9g==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + web-component-analyzer@1.1.7: + resolution: {integrity: sha512-SqCqN4nU9fU+j0CKXJQ8E4cslLsaezhagY6xoi+hoNPPd55GzR6MY1r5jkoJUVu+g4Wy4uB+JglTt7au4vQ1uA==} + hasBin: true + + which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + + wrap-ansi@9.0.0: + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + engines: {node: '>=18'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yaml@2.8.0: + resolution: {integrity: sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==} + engines: {node: '>= 14.6'} + hasBin: true + + yargs-parser@18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} + + yargs@15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + +snapshots: + + '@aashutoshrathi/word-wrap@1.2.6': {} + + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + '@antfu/install-pkg@1.1.0': + dependencies: + package-manager-detector: 1.3.0 + tinyexec: 1.0.1 + + '@antfu/utils@8.1.1': {} + + '@babel/helper-string-parser@7.24.8': {} + + '@babel/helper-string-parser@7.27.1': {} + + '@babel/helper-validator-identifier@7.24.7': {} + + '@babel/helper-validator-identifier@7.27.1': {} + + '@babel/parser@7.25.3': + dependencies: + '@babel/types': 7.25.2 + + '@babel/parser@7.28.0': + dependencies: + '@babel/types': 7.28.1 + + '@babel/runtime@7.24.0': + dependencies: + regenerator-runtime: 0.14.1 + + '@babel/types@7.25.2': + dependencies: + '@babel/helper-string-parser': 7.24.8 + '@babel/helper-validator-identifier': 7.24.7 + to-fast-properties: 2.0.0 + + '@babel/types@7.28.1': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + + '@biomejs/biome@2.1.2': + optionalDependencies: + '@biomejs/cli-darwin-arm64': 2.1.2 + '@biomejs/cli-darwin-x64': 2.1.2 + '@biomejs/cli-linux-arm64': 2.1.2 + '@biomejs/cli-linux-arm64-musl': 2.1.2 + '@biomejs/cli-linux-x64': 2.1.2 + '@biomejs/cli-linux-x64-musl': 2.1.2 + '@biomejs/cli-win32-arm64': 2.1.2 + '@biomejs/cli-win32-x64': 2.1.2 + + '@biomejs/cli-darwin-arm64@2.1.2': + optional: true + + '@biomejs/cli-darwin-x64@2.1.2': + optional: true + + '@biomejs/cli-linux-arm64-musl@2.1.2': + optional: true + + '@biomejs/cli-linux-arm64@2.1.2': + optional: true + + '@biomejs/cli-linux-x64-musl@2.1.2': + optional: true + + '@biomejs/cli-linux-x64@2.1.2': + optional: true + + '@biomejs/cli-win32-arm64@2.1.2': + optional: true + + '@biomejs/cli-win32-x64@2.1.2': + optional: true + + '@emnapi/core@1.4.5': + dependencies: + '@emnapi/wasi-threads': 1.0.4 + tslib: 2.6.3 + optional: true + + '@emnapi/runtime@1.4.5': + dependencies: + tslib: 2.6.3 + optional: true + + '@emnapi/wasi-threads@1.0.4': + dependencies: + tslib: 2.6.3 + optional: true + + '@esbuild/aix-ppc64@0.21.5': + optional: true + + '@esbuild/android-arm64@0.21.5': + optional: true + + '@esbuild/android-arm@0.21.5': + optional: true + + '@esbuild/android-x64@0.21.5': + optional: true + + '@esbuild/darwin-arm64@0.21.5': + optional: true + + '@esbuild/darwin-x64@0.21.5': + optional: true + + '@esbuild/freebsd-arm64@0.21.5': + optional: true + + '@esbuild/freebsd-x64@0.21.5': + optional: true + + '@esbuild/linux-arm64@0.21.5': + optional: true + + '@esbuild/linux-arm@0.21.5': + optional: true + + '@esbuild/linux-ia32@0.21.5': + optional: true + + '@esbuild/linux-loong64@0.21.5': + optional: true + + '@esbuild/linux-mips64el@0.21.5': + optional: true + + '@esbuild/linux-ppc64@0.21.5': + optional: true + + '@esbuild/linux-riscv64@0.21.5': + optional: true + + '@esbuild/linux-s390x@0.21.5': + optional: true + + '@esbuild/linux-x64@0.21.5': + optional: true + + '@esbuild/netbsd-x64@0.21.5': + optional: true + + '@esbuild/openbsd-x64@0.21.5': + optional: true + + '@esbuild/sunos-x64@0.21.5': + optional: true + + '@esbuild/win32-arm64@0.21.5': + optional: true + + '@esbuild/win32-ia32@0.21.5': + optional: true + + '@esbuild/win32-x64@0.21.5': + optional: true + + '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': + dependencies: + eslint: 8.57.0 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.10.0': {} + + '@eslint/eslintrc@2.1.4': + dependencies: + ajv: 6.12.6 + debug: 4.4.1 + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@8.57.0': {} + + '@halo-dev/api-client@2.17.0(axios@1.7.2)': + dependencies: + axios: 1.7.2 + + '@humanwhocodes/config-array@0.11.14': + dependencies: + '@humanwhocodes/object-schema': 2.0.2 + debug: 4.4.1 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/object-schema@2.0.2': {} + + '@iconify/json@2.2.234': + dependencies: + '@iconify/types': 2.0.0 + pathe: 1.1.2 + + '@iconify/types@2.0.0': {} + + '@iconify/utils@2.3.0': + dependencies: + '@antfu/install-pkg': 1.1.0 + '@antfu/utils': 8.1.1 + '@iconify/types': 2.0.0 + debug: 4.4.1 + globals: 15.15.0 + kolorist: 1.8.0 + local-pkg: 1.1.1 + mlly: 1.7.4 + transitivePeerDependencies: + - supports-color + + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@julr/unocss-preset-forms@2.0.0(unocss@66.3.3(postcss@8.5.6)(rolldown-vite@7.0.8(@types/node@18.19.43)(jiti@2.4.2)(tsx@4.16.5)(yaml@2.8.0))(vue@3.5.17(typescript@5.5.4)))': + dependencies: + unocss: 66.3.3(postcss@8.5.6)(rolldown-vite@7.0.8(@types/node@18.19.43)(jiti@2.4.2)(tsx@4.16.5)(yaml@2.8.0))(vue@3.5.17(typescript@5.5.4)) + + '@lit-labs/ssr-dom-shim@1.2.0': {} + + '@lit/localize-tools@0.8.0': + dependencies: + '@lit/localize': 0.12.2 + '@parse5/tools': 0.3.0 + '@xmldom/xmldom': 0.8.10 + fast-glob: 3.3.2 + fs-extra: 10.1.0 + jsonschema: 1.4.1 + lit: 3.2.0 + minimist: 1.2.8 + parse5: 7.2.1 + source-map-support: 0.5.21 + typescript: 5.5.4 + + '@lit/localize@0.12.2': + dependencies: + lit: 3.2.0 + + '@lit/reactive-element@2.0.4': + dependencies: + '@lit-labs/ssr-dom-shim': 1.2.0 + + '@microsoft/api-extractor-model@7.29.4(@types/node@18.19.43)': + dependencies: + '@microsoft/tsdoc': 0.15.0 + '@microsoft/tsdoc-config': 0.17.0 + '@rushstack/node-core-library': 5.5.1(@types/node@18.19.43) + transitivePeerDependencies: + - '@types/node' + + '@microsoft/api-extractor@7.47.4(@types/node@18.19.43)': + dependencies: + '@microsoft/api-extractor-model': 7.29.4(@types/node@18.19.43) + '@microsoft/tsdoc': 0.15.0 + '@microsoft/tsdoc-config': 0.17.0 + '@rushstack/node-core-library': 5.5.1(@types/node@18.19.43) + '@rushstack/rig-package': 0.5.3 + '@rushstack/terminal': 0.13.3(@types/node@18.19.43) + '@rushstack/ts-command-line': 4.22.3(@types/node@18.19.43) + lodash: 4.17.21 + minimatch: 3.0.8 + resolve: 1.22.8 + semver: 7.5.4 + source-map: 0.6.1 + typescript: 5.4.2 + transitivePeerDependencies: + - '@types/node' + + '@microsoft/tsdoc-config@0.17.0': + dependencies: + '@microsoft/tsdoc': 0.15.0 + ajv: 8.12.0 + jju: 1.4.0 + resolve: 1.22.8 + + '@microsoft/tsdoc@0.15.0': {} + + '@mrmlnc/readdir-enhanced@2.2.1': + dependencies: + call-me-maybe: 1.0.2 + glob-to-regexp: 0.3.0 + + '@napi-rs/wasm-runtime@0.2.12': + dependencies: + '@emnapi/core': 1.4.5 + '@emnapi/runtime': 1.4.5 + '@tybys/wasm-util': 0.10.0 + optional: true + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@1.1.3': {} + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + + '@oxc-project/runtime@0.76.0': {} + + '@oxc-project/types@0.76.0': {} + + '@parse5/tools@0.3.0': + dependencies: + parse5: 7.2.1 + + '@polka/url@1.0.0-next.25': {} + + '@quansync/fs@0.1.3': + dependencies: + quansync: 0.2.10 + + '@rolldown/binding-darwin-arm64@1.0.0-beta.26': + optional: true + + '@rolldown/binding-darwin-x64@1.0.0-beta.26': + optional: true + + '@rolldown/binding-freebsd-x64@1.0.0-beta.26': + optional: true + + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.26': + optional: true + + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.26': + optional: true + + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.26': + optional: true + + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.26': + optional: true + + '@rolldown/binding-linux-x64-musl@1.0.0-beta.26': + optional: true + + '@rolldown/binding-wasm32-wasi@1.0.0-beta.26': + dependencies: + '@napi-rs/wasm-runtime': 0.2.12 + optional: true + + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.26': + optional: true + + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.26': + optional: true + + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.26': + optional: true + + '@rolldown/pluginutils@1.0.0-beta.26': {} + + '@rollup/pluginutils@5.1.0(rollup@4.20.0)': + dependencies: + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + optionalDependencies: + rollup: 4.20.0 + + '@rollup/rollup-android-arm-eabi@4.20.0': + optional: true + + '@rollup/rollup-android-arm64@4.20.0': + optional: true + + '@rollup/rollup-darwin-arm64@4.20.0': + optional: true + + '@rollup/rollup-darwin-x64@4.20.0': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.20.0': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.20.0': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.20.0': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.20.0': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.20.0': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.20.0': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.20.0': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.20.0': + optional: true + + '@rollup/rollup-linux-x64-musl@4.20.0': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.20.0': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.20.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.20.0': + optional: true + + '@rushstack/eslint-patch@1.10.4': {} + + '@rushstack/node-core-library@5.5.1(@types/node@18.19.43)': + dependencies: + ajv: 8.13.0 + ajv-draft-04: 1.0.0(ajv@8.13.0) + ajv-formats: 3.0.1(ajv@8.13.0) + fs-extra: 7.0.1 + import-lazy: 4.0.0 + jju: 1.4.0 + resolve: 1.22.8 + semver: 7.5.4 + optionalDependencies: + '@types/node': 18.19.43 + + '@rushstack/rig-package@0.5.3': + dependencies: + resolve: 1.22.8 + strip-json-comments: 3.1.1 + + '@rushstack/terminal@0.13.3(@types/node@18.19.43)': + dependencies: + '@rushstack/node-core-library': 5.5.1(@types/node@18.19.43) + supports-color: 8.1.1 + optionalDependencies: + '@types/node': 18.19.43 + + '@rushstack/ts-command-line@4.22.3(@types/node@18.19.43)': + dependencies: + '@rushstack/terminal': 0.13.3(@types/node@18.19.43) + '@types/argparse': 1.0.38 + argparse: 1.0.10 + string-argv: 0.3.2 + transitivePeerDependencies: + - '@types/node' + + '@tybys/wasm-util@0.10.0': + dependencies: + tslib: 2.6.3 + optional: true + + '@types/argparse@1.0.38': {} + + '@types/estree@1.0.5': {} + + '@types/json-schema@7.0.15': {} + + '@types/node@18.19.43': + dependencies: + undici-types: 5.26.5 + + '@types/semver@7.5.8': {} + + '@types/trusted-types@2.0.7': {} + + '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)': + dependencies: + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 6.21.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/type-utils': 6.21.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.3.4 + eslint: 8.57.0 + graphemer: 1.4.0 + ignore: 5.3.1 + natural-compare: 1.4.0 + semver: 7.6.0 + ts-api-utils: 1.2.1(typescript@5.5.4) + optionalDependencies: + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.5.4)': + dependencies: + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.3.4 + eslint: 8.57.0 + optionalDependencies: + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@6.21.0': + dependencies: + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 + + '@typescript-eslint/type-utils@6.21.0(eslint@8.57.0)(typescript@5.5.4)': + dependencies: + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.5.4) + '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.5.4) + debug: 4.3.4 + eslint: 8.57.0 + ts-api-utils: 1.2.1(typescript@5.5.4) + optionalDependencies: + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@6.21.0': {} + + '@typescript-eslint/typescript-estree@6.21.0(typescript@5.5.4)': + dependencies: + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.3 + semver: 7.6.0 + ts-api-utils: 1.2.1(typescript@5.5.4) + optionalDependencies: + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@6.21.0(eslint@8.57.0)(typescript@5.5.4)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.8 + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.5.4) + eslint: 8.57.0 + semver: 7.6.0 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/visitor-keys@6.21.0': + dependencies: + '@typescript-eslint/types': 6.21.0 + eslint-visitor-keys: 3.4.3 + + '@ungap/structured-clone@1.2.0': {} + + '@unocss/astro@66.3.3(rolldown-vite@7.0.8(@types/node@18.19.43)(jiti@2.4.2)(tsx@4.16.5)(yaml@2.8.0))(vue@3.5.17(typescript@5.5.4))': + dependencies: + '@unocss/core': 66.3.3 + '@unocss/reset': 66.3.3 + '@unocss/vite': 66.3.3(rolldown-vite@7.0.8(@types/node@18.19.43)(jiti@2.4.2)(tsx@4.16.5)(yaml@2.8.0))(vue@3.5.17(typescript@5.5.4)) + optionalDependencies: + vite: rolldown-vite@7.0.8(@types/node@18.19.43)(jiti@2.4.2)(tsx@4.16.5)(yaml@2.8.0) + transitivePeerDependencies: + - vue + + '@unocss/cli@66.3.3': + dependencies: + '@ampproject/remapping': 2.3.0 + '@unocss/config': 66.3.3 + '@unocss/core': 66.3.3 + '@unocss/preset-uno': 66.3.3 + cac: 6.7.14 + chokidar: 3.6.0 + colorette: 2.0.20 + consola: 3.4.2 + magic-string: 0.30.17 + pathe: 2.0.3 + perfect-debounce: 1.0.0 + tinyglobby: 0.2.14 + unplugin-utils: 0.2.4 + + '@unocss/config@66.3.3': + dependencies: + '@unocss/core': 66.3.3 + unconfig: 7.3.2 + + '@unocss/core@66.3.3': {} + + '@unocss/extractor-arbitrary-variants@66.3.3': + dependencies: + '@unocss/core': 66.3.3 + + '@unocss/inspector@66.3.3(vue@3.5.17(typescript@5.5.4))': + dependencies: + '@unocss/core': 66.3.3 + '@unocss/rule-utils': 66.3.3 + colorette: 2.0.20 + gzip-size: 6.0.0 + sirv: 3.0.1 + vue-flow-layout: 0.1.1(vue@3.5.17(typescript@5.5.4)) + transitivePeerDependencies: + - vue + + '@unocss/postcss@66.3.3(postcss@8.5.6)': + dependencies: + '@unocss/config': 66.3.3 + '@unocss/core': 66.3.3 + '@unocss/rule-utils': 66.3.3 + css-tree: 3.1.0 + postcss: 8.5.6 + tinyglobby: 0.2.14 + + '@unocss/preset-attributify@66.3.3': + dependencies: + '@unocss/core': 66.3.3 + + '@unocss/preset-icons@66.3.3': + dependencies: + '@iconify/utils': 2.3.0 + '@unocss/core': 66.3.3 + ofetch: 1.4.1 + transitivePeerDependencies: + - supports-color + + '@unocss/preset-mini@66.3.3': + dependencies: + '@unocss/core': 66.3.3 + '@unocss/extractor-arbitrary-variants': 66.3.3 + '@unocss/rule-utils': 66.3.3 + + '@unocss/preset-tagify@66.3.3': + dependencies: + '@unocss/core': 66.3.3 + + '@unocss/preset-typography@66.3.3': + dependencies: + '@unocss/core': 66.3.3 + '@unocss/preset-mini': 66.3.3 + '@unocss/rule-utils': 66.3.3 + + '@unocss/preset-uno@66.3.3': + dependencies: + '@unocss/core': 66.3.3 + '@unocss/preset-wind3': 66.3.3 + + '@unocss/preset-web-fonts@66.3.3': + dependencies: + '@unocss/core': 66.3.3 + ofetch: 1.4.1 + + '@unocss/preset-wind3@66.3.3': + dependencies: + '@unocss/core': 66.3.3 + '@unocss/preset-mini': 66.3.3 + '@unocss/rule-utils': 66.3.3 + + '@unocss/preset-wind4@66.3.3': + dependencies: + '@unocss/core': 66.3.3 + '@unocss/extractor-arbitrary-variants': 66.3.3 + '@unocss/rule-utils': 66.3.3 + + '@unocss/preset-wind@66.3.3': + dependencies: + '@unocss/core': 66.3.3 + '@unocss/preset-wind3': 66.3.3 + + '@unocss/reset@66.3.3': {} + + '@unocss/rule-utils@66.3.3': + dependencies: + '@unocss/core': 66.3.3 + magic-string: 0.30.17 + + '@unocss/transformer-attributify-jsx@66.3.3': + dependencies: + '@unocss/core': 66.3.3 + + '@unocss/transformer-compile-class@66.3.3': + dependencies: + '@unocss/core': 66.3.3 + + '@unocss/transformer-directives@66.3.3': + dependencies: + '@unocss/core': 66.3.3 + '@unocss/rule-utils': 66.3.3 + css-tree: 3.1.0 + + '@unocss/transformer-variant-group@66.3.3': + dependencies: + '@unocss/core': 66.3.3 + + '@unocss/vite@66.3.3(rolldown-vite@7.0.8(@types/node@18.19.43)(jiti@2.4.2)(tsx@4.16.5)(yaml@2.8.0))(vue@3.5.17(typescript@5.5.4))': + dependencies: + '@ampproject/remapping': 2.3.0 + '@unocss/config': 66.3.3 + '@unocss/core': 66.3.3 + '@unocss/inspector': 66.3.3(vue@3.5.17(typescript@5.5.4)) + chokidar: 3.6.0 + magic-string: 0.30.17 + pathe: 2.0.3 + tinyglobby: 0.2.14 + unplugin-utils: 0.2.4 + vite: rolldown-vite@7.0.8(@types/node@18.19.43)(jiti@2.4.2)(tsx@4.16.5)(yaml@2.8.0) + transitivePeerDependencies: + - vue + + '@volar/language-core@2.3.4': + dependencies: + '@volar/source-map': 2.3.4 + + '@volar/language-core@2.4.0-alpha.18': + dependencies: + '@volar/source-map': 2.4.0-alpha.18 + + '@volar/source-map@2.3.4': {} + + '@volar/source-map@2.4.0-alpha.18': {} + + '@volar/typescript@2.3.4': + dependencies: + '@volar/language-core': 2.3.4 + path-browserify: 1.0.1 + vscode-uri: 3.0.8 + + '@volar/typescript@2.4.0-alpha.18': + dependencies: + '@volar/language-core': 2.4.0-alpha.18 + path-browserify: 1.0.1 + vscode-uri: 3.0.8 + + '@vue/compiler-core@3.4.36': + dependencies: + '@babel/parser': 7.25.3 + '@vue/shared': 3.4.36 + entities: 5.0.0 + estree-walker: 2.0.2 + source-map-js: 1.2.0 + + '@vue/compiler-core@3.5.17': + dependencies: + '@babel/parser': 7.28.0 + '@vue/shared': 3.5.17 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + + '@vue/compiler-dom@3.4.36': + dependencies: + '@vue/compiler-core': 3.4.36 + '@vue/shared': 3.4.36 + + '@vue/compiler-dom@3.5.17': + dependencies: + '@vue/compiler-core': 3.5.17 + '@vue/shared': 3.5.17 + + '@vue/compiler-sfc@3.5.17': + dependencies: + '@babel/parser': 7.28.0 + '@vue/compiler-core': 3.5.17 + '@vue/compiler-dom': 3.5.17 + '@vue/compiler-ssr': 3.5.17 + '@vue/shared': 3.5.17 + estree-walker: 2.0.2 + magic-string: 0.30.17 + postcss: 8.5.6 + source-map-js: 1.2.1 + + '@vue/compiler-ssr@3.5.17': + dependencies: + '@vue/compiler-dom': 3.5.17 + '@vue/shared': 3.5.17 + + '@vue/compiler-vue2@2.7.16': + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + + '@vue/language-core@2.0.29(typescript@5.5.4)': + dependencies: + '@volar/language-core': 2.4.0-alpha.18 + '@vue/compiler-dom': 3.4.36 + '@vue/compiler-vue2': 2.7.16 + '@vue/shared': 3.4.36 + computeds: 0.0.1 + minimatch: 9.0.3 + muggle-string: 0.4.1 + path-browserify: 1.0.1 + optionalDependencies: + typescript: 5.5.4 + + '@vue/reactivity@3.5.17': + dependencies: + '@vue/shared': 3.5.17 + + '@vue/runtime-core@3.5.17': + dependencies: + '@vue/reactivity': 3.5.17 + '@vue/shared': 3.5.17 + + '@vue/runtime-dom@3.5.17': + dependencies: + '@vue/reactivity': 3.5.17 + '@vue/runtime-core': 3.5.17 + '@vue/shared': 3.5.17 + csstype: 3.1.3 + + '@vue/server-renderer@3.5.17(vue@3.5.17(typescript@5.5.4))': + dependencies: + '@vue/compiler-ssr': 3.5.17 + '@vue/shared': 3.5.17 + vue: 3.5.17(typescript@5.5.4) + + '@vue/shared@3.4.36': {} + + '@vue/shared@3.5.17': {} + + '@xmldom/xmldom@0.8.10': {} + + acorn-jsx@5.3.2(acorn@8.11.3): + dependencies: + acorn: 8.11.3 + + acorn@8.11.3: {} + + acorn@8.15.0: {} + + ajv-draft-04@1.0.0(ajv@8.13.0): + optionalDependencies: + ajv: 8.13.0 + + ajv-formats@3.0.1(ajv@8.13.0): + optionalDependencies: + ajv: 8.13.0 + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ajv@8.12.0: + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + + ajv@8.13.0: + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + + ansi-escapes@7.0.0: + dependencies: + environment: 1.1.0 + + ansi-regex@5.0.1: {} + + ansi-regex@6.1.0: {} + + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.1: {} + + ansis@4.1.0: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + argparse@2.0.1: {} + + arr-diff@4.0.0: {} + + arr-flatten@1.1.0: {} + + arr-union@3.1.0: {} + + array-union@2.1.0: {} + + array-unique@0.3.2: {} + + assign-symbols@1.0.0: {} + + asynckit@0.4.0: {} + + atob@2.1.2: {} + + axios@1.7.2: + dependencies: + follow-redirects: 1.15.6 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + balanced-match@1.0.2: {} + + base@0.11.2: + dependencies: + cache-base: 1.0.1 + class-utils: 0.3.6 + component-emitter: 1.3.1 + define-property: 1.0.0 + isobject: 3.0.1 + mixin-deep: 1.3.2 + pascalcase: 0.1.1 + + binary-extensions@2.3.0: {} + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@2.3.2: + dependencies: + arr-flatten: 1.1.0 + array-unique: 0.3.2 + extend-shallow: 2.0.1 + fill-range: 4.0.0 + isobject: 3.0.1 + repeat-element: 1.1.4 + snapdragon: 0.8.2 + snapdragon-node: 2.1.1 + split-string: 3.1.0 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + braces@3.0.2: + dependencies: + fill-range: 7.0.1 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + buffer-from@1.1.2: {} + + cac@6.7.14: {} + + cache-base@1.0.1: + dependencies: + collection-visit: 1.0.0 + component-emitter: 1.3.1 + get-value: 2.0.6 + has-value: 1.0.0 + isobject: 3.0.1 + set-value: 2.0.1 + to-object-path: 0.3.0 + union-value: 1.0.1 + unset-value: 1.0.0 + + call-me-maybe@1.0.2: {} + + callsites@3.1.0: {} + + camelcase@5.3.1: {} + + chalk@2.4.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chalk@5.4.1: {} + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + class-utils@0.3.6: + dependencies: + arr-union: 3.1.0 + define-property: 0.2.5 + isobject: 3.0.1 + static-extend: 0.1.2 + + cli-cursor@5.0.0: + dependencies: + restore-cursor: 5.1.0 + + cli-truncate@4.0.0: + dependencies: + slice-ansi: 5.0.0 + string-width: 7.2.0 + + cliui@6.0.0: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + + collection-visit@1.0.0: + dependencies: + map-visit: 1.0.0 + object-visit: 1.0.1 + + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.3: {} + + color-name@1.1.4: {} + + colorette@2.0.20: {} + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + commander@14.0.0: {} + + compare-versions@6.1.1: {} + + component-emitter@1.3.1: {} + + computeds@0.0.1: {} + + concat-map@0.0.1: {} + + confbox@0.1.7: {} + + confbox@0.1.8: {} + + confbox@0.2.2: {} + + consola@3.4.2: {} + + copy-descriptor@0.1.1: {} + + cross-spawn@7.0.3: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + css-tree@3.1.0: + dependencies: + mdn-data: 2.12.2 + source-map-js: 1.2.1 + + csstype@3.1.3: {} + + de-indent@1.0.2: {} + + debug@2.6.9: + dependencies: + ms: 2.0.0 + + debug@4.3.4: + dependencies: + ms: 2.1.2 + + debug@4.3.6: + dependencies: + ms: 2.1.2 + + debug@4.4.1: + dependencies: + ms: 2.1.3 + + decamelize@1.2.0: {} + + decode-uri-component@0.2.2: {} + + deep-is@0.1.4: {} + + define-property@0.2.5: + dependencies: + is-descriptor: 0.1.7 + + define-property@1.0.0: + dependencies: + is-descriptor: 1.0.3 + + define-property@2.0.2: + dependencies: + is-descriptor: 1.0.3 + isobject: 3.0.1 + + defu@6.1.4: {} + + delayed-stream@1.0.0: {} + + destr@2.0.3: {} + + detect-libc@2.0.4: {} + + didyoumean2@4.1.0: + dependencies: + '@babel/runtime': 7.24.0 + leven: 3.1.0 + lodash.deburr: 4.1.0 + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + doctrine@3.0.0: + dependencies: + esutils: 2.0.3 + + duplexer@0.1.2: {} + + emoji-regex@10.4.0: {} + + emoji-regex@8.0.0: {} + + entities@4.5.0: {} + + entities@5.0.0: {} + + environment@1.1.0: {} + + es-toolkit@1.39.7: {} + + esbuild@0.21.5: + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + optional: true + + escape-string-regexp@1.0.5: {} + + escape-string-regexp@4.0.0: {} + + eslint-scope@7.2.2: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint@8.57.0: + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/regexpp': 4.10.0 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.0 + '@humanwhocodes/config-array': 0.11.14 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.4.1 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.1 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.3 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + + espree@9.6.1: + dependencies: + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) + eslint-visitor-keys: 3.4.3 + + esquery@1.5.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + estree-walker@2.0.2: {} + + esutils@2.0.3: {} + + eventemitter3@5.0.1: {} + + expand-brackets@2.1.4: + dependencies: + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + posix-character-classes: 0.1.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + exsolve@1.0.7: {} + + extend-shallow@2.0.1: + dependencies: + is-extendable: 0.1.1 + + extend-shallow@3.0.2: + dependencies: + assign-symbols: 1.0.0 + is-extendable: 1.0.1 + + extglob@2.0.4: + dependencies: + array-unique: 0.3.2 + define-property: 1.0.0 + expand-brackets: 2.1.4 + extend-shallow: 2.0.1 + fragment-cache: 0.2.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + fast-deep-equal@3.1.3: {} + + fast-glob@2.2.7: + dependencies: + '@mrmlnc/readdir-enhanced': 2.2.1 + '@nodelib/fs.stat': 1.1.3 + glob-parent: 3.1.0 + is-glob: 4.0.3 + merge2: 1.4.1 + micromatch: 3.1.10 + transitivePeerDependencies: + - supports-color + + fast-glob@3.3.2: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fastq@1.17.1: + dependencies: + reusify: 1.0.4 + + fdir@6.4.6(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 + + file-entry-cache@6.0.1: + dependencies: + flat-cache: 3.2.0 + + fill-range@4.0.0: + dependencies: + extend-shallow: 2.0.1 + is-number: 3.0.0 + repeat-string: 1.6.1 + to-regex-range: 2.1.1 + + fill-range@7.0.1: + dependencies: + to-regex-range: 5.0.1 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat-cache@3.2.0: + dependencies: + flatted: 3.3.1 + keyv: 4.5.4 + rimraf: 3.0.2 + + flatted@3.3.1: {} + + follow-redirects@1.15.6: {} + + for-in@1.0.2: {} + + form-data@4.0.0: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + fragment-cache@0.2.1: + dependencies: + map-cache: 0.2.2 + + fs-extra@10.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs-extra@7.0.1: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + get-caller-file@2.0.5: {} + + get-east-asian-width@1.3.0: {} + + get-tsconfig@4.7.6: + dependencies: + resolve-pkg-maps: 1.0.0 + optional: true + + get-value@2.0.6: {} + + glob-parent@3.1.0: + dependencies: + is-glob: 3.1.0 + path-dirname: 1.0.2 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob-to-regexp@0.3.0: {} + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + globals@13.24.0: + dependencies: + type-fest: 0.20.2 + + globals@15.15.0: {} + + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.1 + merge2: 1.4.1 + slash: 3.0.0 + + graceful-fs@4.2.11: {} + + graphemer@1.4.0: {} + + gzip-size@6.0.0: + dependencies: + duplexer: 0.1.2 + + has-flag@3.0.0: {} + + has-flag@4.0.0: {} + + has-value@0.3.1: + dependencies: + get-value: 2.0.6 + has-values: 0.1.4 + isobject: 2.1.0 + + has-value@1.0.0: + dependencies: + get-value: 2.0.6 + has-values: 1.0.0 + isobject: 3.0.1 + + has-values@0.1.4: {} + + has-values@1.0.0: + dependencies: + is-number: 3.0.0 + kind-of: 4.0.0 + + hasown@2.0.1: + dependencies: + function-bind: 1.1.2 + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + he@1.2.0: {} + + husky@9.1.7: {} + + ignore@5.3.1: {} + + import-fresh@3.3.0: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + import-lazy@4.0.0: {} + + imurmurhash@0.1.4: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + is-accessor-descriptor@1.0.1: + dependencies: + hasown: 2.0.1 + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-buffer@1.1.6: {} + + is-core-module@2.15.0: + dependencies: + hasown: 2.0.2 + + is-data-descriptor@1.0.1: + dependencies: + hasown: 2.0.1 + + is-descriptor@0.1.7: + dependencies: + is-accessor-descriptor: 1.0.1 + is-data-descriptor: 1.0.1 + + is-descriptor@1.0.3: + dependencies: + is-accessor-descriptor: 1.0.1 + is-data-descriptor: 1.0.1 + + is-extendable@0.1.1: {} + + is-extendable@1.0.1: + dependencies: + is-plain-object: 2.0.4 + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-fullwidth-code-point@4.0.0: {} + + is-fullwidth-code-point@5.0.0: + dependencies: + get-east-asian-width: 1.3.0 + + is-glob@3.1.0: + dependencies: + is-extglob: 2.1.1 + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-number@3.0.0: + dependencies: + kind-of: 3.2.2 + + is-number@7.0.0: {} + + is-path-inside@3.0.3: {} + + is-plain-object@2.0.4: + dependencies: + isobject: 3.0.1 + + is-windows@1.0.2: {} + + isarray@1.0.0: {} + + isexe@2.0.0: {} + + isobject@2.1.0: + dependencies: + isarray: 1.0.0 + + isobject@3.0.1: {} + + jiti@2.4.2: {} + + jju@1.4.0: {} + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + json-buffer@3.0.1: {} + + json-schema-traverse@0.4.1: {} + + json-schema-traverse@1.0.0: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + jsonfile@4.0.0: + optionalDependencies: + graceful-fs: 4.2.11 + + jsonfile@6.1.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + jsonschema@1.4.1: {} + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + kind-of@3.2.2: + dependencies: + is-buffer: 1.1.6 + + kind-of@4.0.0: + dependencies: + is-buffer: 1.1.6 + + kind-of@6.0.3: {} + + kolorist@1.8.0: {} + + leven@3.1.0: {} + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + lightningcss-darwin-arm64@1.30.1: + optional: true + + lightningcss-darwin-x64@1.30.1: + optional: true + + lightningcss-freebsd-x64@1.30.1: + optional: true + + lightningcss-linux-arm-gnueabihf@1.30.1: + optional: true + + lightningcss-linux-arm64-gnu@1.30.1: + optional: true + + lightningcss-linux-arm64-musl@1.30.1: + optional: true + + lightningcss-linux-x64-gnu@1.30.1: + optional: true + + lightningcss-linux-x64-musl@1.30.1: + optional: true + + lightningcss-win32-arm64-msvc@1.30.1: + optional: true + + lightningcss-win32-x64-msvc@1.30.1: + optional: true + + lightningcss@1.30.1: + dependencies: + detect-libc: 2.0.4 + optionalDependencies: + lightningcss-darwin-arm64: 1.30.1 + lightningcss-darwin-x64: 1.30.1 + lightningcss-freebsd-x64: 1.30.1 + lightningcss-linux-arm-gnueabihf: 1.30.1 + lightningcss-linux-arm64-gnu: 1.30.1 + lightningcss-linux-arm64-musl: 1.30.1 + lightningcss-linux-x64-gnu: 1.30.1 + lightningcss-linux-x64-musl: 1.30.1 + lightningcss-win32-arm64-msvc: 1.30.1 + lightningcss-win32-x64-msvc: 1.30.1 + + lilconfig@3.1.3: {} + + lint-staged@16.1.2: + dependencies: + chalk: 5.4.1 + commander: 14.0.0 + debug: 4.4.1 + lilconfig: 3.1.3 + listr2: 8.3.3 + micromatch: 4.0.8 + nano-spawn: 1.0.2 + pidtree: 0.6.0 + string-argv: 0.3.2 + yaml: 2.8.0 + transitivePeerDependencies: + - supports-color + + listr2@8.3.3: + dependencies: + cli-truncate: 4.0.0 + colorette: 2.0.20 + eventemitter3: 5.0.1 + log-update: 6.1.0 + rfdc: 1.4.1 + wrap-ansi: 9.0.0 + + lit-analyzer@1.2.1: + dependencies: + chalk: 2.4.2 + didyoumean2: 4.1.0 + fast-glob: 2.2.7 + parse5: 5.1.0 + ts-simple-type: 1.0.7 + vscode-css-languageservice: 4.3.0 + vscode-html-languageservice: 3.1.0 + web-component-analyzer: 1.1.7 + transitivePeerDependencies: + - supports-color + + lit-element@4.1.0: + dependencies: + '@lit-labs/ssr-dom-shim': 1.2.0 + '@lit/reactive-element': 2.0.4 + lit-html: 3.2.0 + + lit-html@3.2.0: + dependencies: + '@types/trusted-types': 2.0.7 + + lit@3.2.0: + dependencies: + '@lit/reactive-element': 2.0.4 + lit-element: 4.1.0 + lit-html: 3.2.0 + + local-pkg@0.5.0: + dependencies: + mlly: 1.7.1 + pkg-types: 1.1.3 + + local-pkg@1.1.1: + dependencies: + mlly: 1.7.4 + pkg-types: 2.2.0 + quansync: 0.2.10 + + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash.deburr@4.1.0: {} + + lodash.merge@4.6.2: {} + + lodash@4.17.21: {} + + log-update@6.1.0: + dependencies: + ansi-escapes: 7.0.0 + cli-cursor: 5.0.0 + slice-ansi: 7.1.0 + strip-ansi: 7.1.0 + wrap-ansi: 9.0.0 + + lru-cache@6.0.0: + dependencies: + yallist: 4.0.0 + + magic-string@0.30.11: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + + magic-string@0.30.17: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + + map-cache@0.2.2: {} + + map-visit@1.0.0: + dependencies: + object-visit: 1.0.1 + + mdn-data@2.12.2: {} + + merge2@1.4.1: {} + + micromatch@3.1.10: + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + braces: 2.3.2 + define-property: 2.0.2 + extend-shallow: 3.0.2 + extglob: 2.0.4 + fragment-cache: 0.2.1 + kind-of: 6.0.3 + nanomatch: 1.2.13 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + micromatch@4.0.5: + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mimic-function@5.0.1: {} + + minimatch@3.0.8: + dependencies: + brace-expansion: 1.1.11 + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimatch@9.0.3: + dependencies: + brace-expansion: 2.0.1 + + minimist@1.2.8: {} + + mixin-deep@1.3.2: + dependencies: + for-in: 1.0.2 + is-extendable: 1.0.1 + + mlly@1.7.1: + dependencies: + acorn: 8.11.3 + pathe: 1.1.2 + pkg-types: 1.1.3 + ufo: 1.5.4 + + mlly@1.7.4: + dependencies: + acorn: 8.15.0 + pathe: 2.0.3 + pkg-types: 1.3.1 + ufo: 1.5.4 + + mrmime@2.0.0: {} + + ms@2.0.0: {} + + ms@2.1.2: {} + + ms@2.1.3: {} + + muggle-string@0.4.1: {} + + nano-spawn@1.0.2: {} + + nanoid@3.3.11: {} + + nanomatch@1.2.13: + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + define-property: 2.0.2 + extend-shallow: 3.0.2 + fragment-cache: 0.2.1 + is-windows: 1.0.2 + kind-of: 6.0.3 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + natural-compare@1.4.0: {} + + node-fetch-native@1.6.4: {} + + normalize-path@3.0.0: {} + + object-copy@0.1.0: + dependencies: + copy-descriptor: 0.1.1 + define-property: 0.2.5 + kind-of: 3.2.2 + + object-visit@1.0.1: + dependencies: + isobject: 3.0.1 + + object.pick@1.3.0: + dependencies: + isobject: 3.0.1 + + ofetch@1.4.1: + dependencies: + destr: 2.0.3 + node-fetch-native: 1.6.4 + ufo: 1.5.4 + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + onetime@7.0.0: + dependencies: + mimic-function: 5.0.1 + + optionator@0.9.3: + dependencies: + '@aashutoshrathi/word-wrap': 1.2.6 + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + + overlayscrollbars@2.10.0: {} + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + p-try@2.2.0: {} + + package-manager-detector@1.3.0: {} + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse5@5.1.0: {} + + parse5@7.2.1: + dependencies: + entities: 4.5.0 + + pascalcase@0.1.1: {} + + path-browserify@1.0.1: {} + + path-dirname@1.0.2: {} + + path-exists@4.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + path-parse@1.0.7: {} + + path-type@4.0.0: {} + + pathe@1.1.2: {} + + pathe@2.0.3: {} + + perfect-debounce@1.0.0: {} + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + picomatch@4.0.3: {} + + pidtree@0.6.0: {} + + pkg-types@1.1.3: + dependencies: + confbox: 0.1.7 + mlly: 1.7.1 + pathe: 1.1.2 + + pkg-types@1.3.1: + dependencies: + confbox: 0.1.8 + mlly: 1.7.4 + pathe: 2.0.3 + + pkg-types@2.2.0: + dependencies: + confbox: 0.2.2 + exsolve: 1.0.7 + pathe: 2.0.3 + + posix-character-classes@0.1.1: {} + + postcss@8.5.6: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + prelude-ls@1.2.1: {} + + prettier@2.8.8: {} + + proxy-from-env@1.1.0: {} + + punycode@2.3.1: {} + + quansync@0.2.10: {} + + queue-microtask@1.2.3: {} + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + regenerator-runtime@0.14.1: {} + + regex-not@1.0.2: + dependencies: + extend-shallow: 3.0.2 + safe-regex: 1.1.0 + + repeat-element@1.1.4: {} + + repeat-string@1.6.1: {} + + require-directory@2.1.1: {} + + require-from-string@2.0.2: {} + + require-main-filename@2.0.0: {} + + resolve-from@4.0.0: {} + + resolve-pkg-maps@1.0.0: + optional: true + + resolve-url@0.2.1: {} + + resolve@1.22.8: + dependencies: + is-core-module: 2.15.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + restore-cursor@5.1.0: + dependencies: + onetime: 7.0.0 + signal-exit: 4.1.0 + + ret@0.1.15: {} + + reusify@1.0.4: {} + + rfdc@1.4.1: {} + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + + rolldown-vite@7.0.8(@types/node@18.19.43)(jiti@2.4.2)(tsx@4.16.5)(yaml@2.8.0): + dependencies: + fdir: 6.4.6(picomatch@4.0.3) + lightningcss: 1.30.1 + picomatch: 4.0.3 + postcss: 8.5.6 + rolldown: 1.0.0-beta.26 + tinyglobby: 0.2.14 + optionalDependencies: + '@types/node': 18.19.43 + fsevents: 2.3.3 + jiti: 2.4.2 + tsx: 4.16.5 + yaml: 2.8.0 + + rolldown@1.0.0-beta.26: + dependencies: + '@oxc-project/runtime': 0.76.0 + '@oxc-project/types': 0.76.0 + '@rolldown/pluginutils': 1.0.0-beta.26 + ansis: 4.1.0 + optionalDependencies: + '@rolldown/binding-darwin-arm64': 1.0.0-beta.26 + '@rolldown/binding-darwin-x64': 1.0.0-beta.26 + '@rolldown/binding-freebsd-x64': 1.0.0-beta.26 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.26 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.26 + '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.26 + '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.26 + '@rolldown/binding-linux-x64-musl': 1.0.0-beta.26 + '@rolldown/binding-wasm32-wasi': 1.0.0-beta.26 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.26 + '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.26 + '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.26 + + rollup@4.20.0: + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.20.0 + '@rollup/rollup-android-arm64': 4.20.0 + '@rollup/rollup-darwin-arm64': 4.20.0 + '@rollup/rollup-darwin-x64': 4.20.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.20.0 + '@rollup/rollup-linux-arm-musleabihf': 4.20.0 + '@rollup/rollup-linux-arm64-gnu': 4.20.0 + '@rollup/rollup-linux-arm64-musl': 4.20.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.20.0 + '@rollup/rollup-linux-riscv64-gnu': 4.20.0 + '@rollup/rollup-linux-s390x-gnu': 4.20.0 + '@rollup/rollup-linux-x64-gnu': 4.20.0 + '@rollup/rollup-linux-x64-musl': 4.20.0 + '@rollup/rollup-win32-arm64-msvc': 4.20.0 + '@rollup/rollup-win32-ia32-msvc': 4.20.0 + '@rollup/rollup-win32-x64-msvc': 4.20.0 + fsevents: 2.3.3 + optional: true + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + safe-regex@1.1.0: + dependencies: + ret: 0.1.15 + + semver@7.5.4: + dependencies: + lru-cache: 6.0.0 + + semver@7.6.0: + dependencies: + lru-cache: 6.0.0 + + set-blocking@2.0.0: {} + + set-value@2.0.1: + dependencies: + extend-shallow: 2.0.1 + is-extendable: 0.1.1 + is-plain-object: 2.0.4 + split-string: 3.1.0 + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + signal-exit@4.1.0: {} + + sirv@3.0.1: + dependencies: + '@polka/url': 1.0.0-next.25 + mrmime: 2.0.0 + totalist: 3.0.1 + + slash@3.0.0: {} + + slice-ansi@5.0.0: + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 + + slice-ansi@7.1.0: + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 5.0.0 + + snapdragon-node@2.1.1: + dependencies: + define-property: 1.0.0 + isobject: 3.0.1 + snapdragon-util: 3.0.1 + + snapdragon-util@3.0.1: + dependencies: + kind-of: 3.2.2 + + snapdragon@0.8.2: + dependencies: + base: 0.11.2 + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + map-cache: 0.2.2 + source-map: 0.5.7 + source-map-resolve: 0.5.3 + use: 3.1.1 + transitivePeerDependencies: + - supports-color + + source-map-js@1.2.0: {} + + source-map-js@1.2.1: {} + + source-map-resolve@0.5.3: + dependencies: + atob: 2.1.2 + decode-uri-component: 0.2.2 + resolve-url: 0.2.1 + source-map-url: 0.4.1 + urix: 0.1.0 + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map-url@0.4.1: {} + + source-map@0.5.7: {} + + source-map@0.6.1: {} + + split-string@3.1.0: + dependencies: + extend-shallow: 3.0.2 + + sprintf-js@1.0.3: {} + + static-extend@0.1.2: + dependencies: + define-property: 0.2.5 + object-copy: 0.1.0 + + string-argv@0.3.2: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@7.2.0: + dependencies: + emoji-regex: 10.4.0 + get-east-asian-width: 1.3.0 + strip-ansi: 7.1.0 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.1.0 + + strip-json-comments@3.1.1: {} + + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + text-table@0.2.0: {} + + tinyexec@1.0.1: {} + + tinyglobby@0.2.14: + dependencies: + fdir: 6.4.6(picomatch@4.0.3) + picomatch: 4.0.3 + + to-fast-properties@2.0.0: {} + + to-object-path@0.3.0: + dependencies: + kind-of: 3.2.2 + + to-regex-range@2.1.1: + dependencies: + is-number: 3.0.0 + repeat-string: 1.6.1 + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + to-regex@3.0.2: + dependencies: + define-property: 2.0.2 + extend-shallow: 3.0.2 + regex-not: 1.0.2 + safe-regex: 1.1.0 + + totalist@3.0.1: {} + + ts-api-utils@1.2.1(typescript@5.5.4): + dependencies: + typescript: 5.5.4 + + ts-simple-type@1.0.7: {} + + tslib@2.6.3: + optional: true + + tsx@4.16.5: + dependencies: + esbuild: 0.21.5 + get-tsconfig: 4.7.6 + optionalDependencies: + fsevents: 2.3.3 + optional: true + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-fest@0.20.2: {} + + typescript@3.9.10: {} + + typescript@5.4.2: {} + + typescript@5.5.4: {} + + ufo@1.5.4: {} + + unconfig@7.3.2: + dependencies: + '@quansync/fs': 0.1.3 + defu: 6.1.4 + jiti: 2.4.2 + quansync: 0.2.10 + + undici-types@5.26.5: {} + + union-value@1.0.1: + dependencies: + arr-union: 3.1.0 + get-value: 2.0.6 + is-extendable: 0.1.1 + set-value: 2.0.1 + + universalify@0.1.2: {} + + universalify@2.0.1: {} + + unocss@66.3.3(postcss@8.5.6)(rolldown-vite@7.0.8(@types/node@18.19.43)(jiti@2.4.2)(tsx@4.16.5)(yaml@2.8.0))(vue@3.5.17(typescript@5.5.4)): + dependencies: + '@unocss/astro': 66.3.3(rolldown-vite@7.0.8(@types/node@18.19.43)(jiti@2.4.2)(tsx@4.16.5)(yaml@2.8.0))(vue@3.5.17(typescript@5.5.4)) + '@unocss/cli': 66.3.3 + '@unocss/core': 66.3.3 + '@unocss/postcss': 66.3.3(postcss@8.5.6) + '@unocss/preset-attributify': 66.3.3 + '@unocss/preset-icons': 66.3.3 + '@unocss/preset-mini': 66.3.3 + '@unocss/preset-tagify': 66.3.3 + '@unocss/preset-typography': 66.3.3 + '@unocss/preset-uno': 66.3.3 + '@unocss/preset-web-fonts': 66.3.3 + '@unocss/preset-wind': 66.3.3 + '@unocss/preset-wind3': 66.3.3 + '@unocss/preset-wind4': 66.3.3 + '@unocss/transformer-attributify-jsx': 66.3.3 + '@unocss/transformer-compile-class': 66.3.3 + '@unocss/transformer-directives': 66.3.3 + '@unocss/transformer-variant-group': 66.3.3 + '@unocss/vite': 66.3.3(rolldown-vite@7.0.8(@types/node@18.19.43)(jiti@2.4.2)(tsx@4.16.5)(yaml@2.8.0))(vue@3.5.17(typescript@5.5.4)) + optionalDependencies: + vite: rolldown-vite@7.0.8(@types/node@18.19.43)(jiti@2.4.2)(tsx@4.16.5)(yaml@2.8.0) + transitivePeerDependencies: + - postcss + - supports-color + - vue + + unplugin-utils@0.2.4: + dependencies: + pathe: 2.0.3 + picomatch: 4.0.3 + + unset-value@1.0.0: + dependencies: + has-value: 0.3.1 + isobject: 3.0.1 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + urix@0.1.0: {} + + use@3.1.1: {} + + vite-plugin-dts@4.0.0-beta.2(@types/node@18.19.43)(rolldown-vite@7.0.8(@types/node@18.19.43)(jiti@2.4.2)(tsx@4.16.5)(yaml@2.8.0))(rollup@4.20.0)(typescript@5.5.4): + dependencies: + '@microsoft/api-extractor': 7.47.4(@types/node@18.19.43) + '@rollup/pluginutils': 5.1.0(rollup@4.20.0) + '@volar/typescript': 2.3.4 + '@vue/language-core': 2.0.29(typescript@5.5.4) + compare-versions: 6.1.1 + debug: 4.3.6 + kolorist: 1.8.0 + local-pkg: 0.5.0 + magic-string: 0.30.11 + typescript: 5.5.4 + vue-tsc: 2.0.29(typescript@5.5.4) + optionalDependencies: + vite: rolldown-vite@7.0.8(@types/node@18.19.43)(jiti@2.4.2)(tsx@4.16.5)(yaml@2.8.0) + transitivePeerDependencies: + - '@types/node' + - rollup + - supports-color + + vscode-css-languageservice@4.3.0: + dependencies: + vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-types: 3.16.0-next.2 + vscode-nls: 4.1.2 + vscode-uri: 2.1.2 + + vscode-html-languageservice@3.1.0: + dependencies: + vscode-languageserver-textdocument: 1.0.11 + vscode-languageserver-types: 3.16.0-next.2 + vscode-nls: 4.1.2 + vscode-uri: 2.1.2 + + vscode-languageserver-textdocument@1.0.11: {} + + vscode-languageserver-types@3.16.0-next.2: {} + + vscode-nls@4.1.2: {} + + vscode-uri@2.1.2: {} + + vscode-uri@3.0.8: {} + + vue-flow-layout@0.1.1(vue@3.5.17(typescript@5.5.4)): + dependencies: + vue: 3.5.17(typescript@5.5.4) + + vue-tsc@2.0.29(typescript@5.5.4): + dependencies: + '@volar/typescript': 2.4.0-alpha.18 + '@vue/language-core': 2.0.29(typescript@5.5.4) + semver: 7.6.0 + typescript: 5.5.4 + + vue@3.5.17(typescript@5.5.4): + dependencies: + '@vue/compiler-dom': 3.5.17 + '@vue/compiler-sfc': 3.5.17 + '@vue/runtime-dom': 3.5.17 + '@vue/server-renderer': 3.5.17(vue@3.5.17(typescript@5.5.4)) + '@vue/shared': 3.5.17 + optionalDependencies: + typescript: 5.5.4 + + web-component-analyzer@1.1.7: + dependencies: + fast-glob: 3.3.2 + ts-simple-type: 1.0.7 + typescript: 3.9.10 + yargs: 15.4.1 + + which-module@2.0.1: {} + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + wrap-ansi@6.2.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@9.0.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 7.2.0 + strip-ansi: 7.1.0 + + wrappy@1.0.2: {} + + y18n@4.0.3: {} + + yallist@4.0.0: {} + + yaml@2.8.0: {} + + yargs-parser@18.1.3: + dependencies: + camelcase: 5.3.1 + decamelize: 1.2.0 + + yargs@15.4.1: + dependencies: + cliui: 6.0.0 + decamelize: 1.2.0 + find-up: 4.1.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + require-main-filename: 2.0.0 + set-blocking: 2.0.0 + string-width: 4.2.3 + which-module: 2.0.1 + y18n: 4.0.3 + yargs-parser: 18.1.3 + + yocto-queue@0.1.0: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..b1b61b5 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,4 @@ +packages: + - packages/** +onlyBuiltDependencies: + - esbuild diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..db8a03f --- /dev/null +++ b/settings.gradle @@ -0,0 +1,11 @@ +pluginManagement { + repositories { + maven { url 'https://s01.oss.sonatype.org/content/repositories/releases' } + maven { url 'https://maven.aliyun.com/repository/gradle-plugin' } + maven { url 'https://maven.aliyun.com/repository/spring-plugin' } + maven { url 'https://repo.spring.io/milestone' } + gradlePluginPortal() + } +} +rootProject.name = 'plugin-search-widget' + diff --git a/src/main/java/run/halo/search/widget/SearchView.java b/src/main/java/run/halo/search/widget/SearchView.java new file mode 100644 index 0000000..a028d62 --- /dev/null +++ b/src/main/java/run/halo/search/widget/SearchView.java @@ -0,0 +1,59 @@ +package run.halo.search.widget; + +import org.springframework.context.annotation.Bean; +import org.springframework.http.MediaType; +import org.springframework.stereotype.Component; +import org.springframework.web.reactive.function.server.*; +import reactor.core.publisher.Mono; +import run.halo.app.search.SearchOption; +import run.halo.app.search.SearchResult; +import run.halo.app.search.SearchService; + +import java.util.List; +import java.util.Map; + +@Component +public class SearchView { + + private final SearchService searchService; + + public SearchView(SearchService searchService) { + this.searchService = searchService; + } + + @Bean + RouterFunction searchView() { + return RouterFunctions.route() + .GET("/search", RequestPredicates.accept(MediaType.TEXT_HTML), this::performSearch) + .build(); + } + + private Mono performSearch(ServerRequest serverRequest) { + int limit = serverRequest.queryParam("limit") + .map(Integer::parseInt) + .orElse(10); + var keyword = serverRequest.queryParam("keyword").orElse(""); + Mono result; + if (keyword.isBlank()) { + var searchResult = new SearchResult(); + searchResult.setTotal(0L); + searchResult.setLimit(limit); + searchResult.setProcessingTimeMillis(0); + searchResult.setHits(List.of()); + result = Mono.just(searchResult); + } else { + var includeTypes = serverRequest.queryParams().get("includeTypes"); + var option = new SearchOption(); + option.setKeyword(keyword); + option.setLimit(limit); + option.setFilterExposed(true); + option.setFilterPublished(true); + option.setFilterRecycled(false); + option.setIncludeTypes(includeTypes); + result = searchService.search(option); + } + return ServerResponse.ok().render("search", Map.of( + "searchResult", result + )); + } +} diff --git a/src/main/java/run/halo/search/widget/SearchWidgetHeadProcessor.java b/src/main/java/run/halo/search/widget/SearchWidgetHeadProcessor.java new file mode 100644 index 0000000..0007623 --- /dev/null +++ b/src/main/java/run/halo/search/widget/SearchWidgetHeadProcessor.java @@ -0,0 +1,43 @@ +package run.halo.search.widget; + +import java.util.Properties; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Component; +import org.springframework.util.PropertyPlaceholderHelper; +import org.thymeleaf.context.ITemplateContext; +import org.thymeleaf.model.IModel; +import org.thymeleaf.model.IModelFactory; +import org.thymeleaf.processor.element.IElementModelStructureHandler; +import reactor.core.publisher.Mono; +import run.halo.app.plugin.PluginContext; +import run.halo.app.theme.dialect.TemplateHeadProcessor; + +@Component +@RequiredArgsConstructor +public class SearchWidgetHeadProcessor implements TemplateHeadProcessor { + + static final PropertyPlaceholderHelper PROPERTY_PLACEHOLDER_HELPER = new PropertyPlaceholderHelper("${", "}"); + + private final PluginContext pluginContext; + + @Override + public Mono process(ITemplateContext context, IModel model, + IElementModelStructureHandler structureHandler) { + final IModelFactory modelFactory = context.getModelFactory(); + model.add(modelFactory.createText(searchWidgetScript())); + return Mono.empty(); + } + + private String searchWidgetScript() { + + final Properties properties = new Properties(); + properties.setProperty("version", pluginContext.getVersion()); + + return PROPERTY_PLACEHOLDER_HELPER.replacePlaceholders(""" + + + + + """, properties); + } +} diff --git a/src/main/java/run/halo/search/widget/SearchWidgetPlugin.java b/src/main/java/run/halo/search/widget/SearchWidgetPlugin.java new file mode 100644 index 0000000..0c04625 --- /dev/null +++ b/src/main/java/run/halo/search/widget/SearchWidgetPlugin.java @@ -0,0 +1,24 @@ +package run.halo.search.widget; + +import org.springframework.stereotype.Component; +import run.halo.app.plugin.BasePlugin; +import run.halo.app.plugin.PluginContext; + +/** + * @author ryanwang + */ +@Component +public class SearchWidgetPlugin extends BasePlugin { + + public SearchWidgetPlugin(PluginContext pluginContext) { + super(pluginContext); + } + + @Override + public void start() { + } + + @Override + public void stop() { + } +} diff --git a/src/main/resources/extensions/reverseProxy.yaml b/src/main/resources/extensions/reverseProxy.yaml new file mode 100644 index 0000000..ca50076 --- /dev/null +++ b/src/main/resources/extensions/reverseProxy.yaml @@ -0,0 +1,8 @@ +apiVersion: plugin.halo.run/v1alpha1 +kind: ReverseProxy +metadata: + name: reverse-proxy-template +rules: + - path: /static/** + file: + directory: static diff --git a/src/main/resources/logo.svg b/src/main/resources/logo.svg new file mode 100644 index 0000000..d9fefcb --- /dev/null +++ b/src/main/resources/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/main/resources/plugin.yaml b/src/main/resources/plugin.yaml new file mode 100644 index 0000000..03aceb6 --- /dev/null +++ b/src/main/resources/plugin.yaml @@ -0,0 +1,23 @@ +apiVersion: plugin.halo.run/v1alpha1 +kind: Plugin +metadata: + name: PluginSearchWidget + annotations: + # Add supports for Halo App Store + # https://halo.run/store/apps/app-DlacW + "store.halo.run/app-id": "app-DlacW" +spec: + enabled: true + requires: ">=2.17.0" + author: + name: Halo + website: https://github.com/halo-dev + logo: logo.svg + homepage: https://www.halo.run/store/apps/app-DlacW + repo: https://github.com/halo-dev/plugin-search-widget + issues: https://github.com/halo-dev/plugin-search-widget/issues + displayName: "搜索组件" + description: "为 Halo 2.0 提供统一的搜索组件,方便主题端使用。" + license: + - name: "GPL-3.0" + url: "https://github.com/halo-dev/plugin-search-widget/blob/main/LICENSE" diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..283c613 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "target": "ES2020", + "experimentalDecorators": true, + "useDefineForClassFields": false, + "module": "ESNext", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + } +}

    >^Jbl4re#k7BY32+ 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 + + + + + Search Widget Preview + + + + + + + + + + + diff --git a/packages/search-widget/lit-localize.json b/packages/search-widget/lit-localize.json new file mode 100644 index 0000000..fd1962f --- /dev/null +++ b/packages/search-widget/lit-localize.json @@ -0,0 +1,15 @@ +{ + "$schema": "https://raw.githubusercontent.com/lit/lit/main/packages/localize-tools/config.schema.json", + "sourceLocale": "en", + "targetLocales": ["es", "zh-CN", "zh-TW"], + "tsConfig": "./tsconfig.json", + "output": { + "mode": "runtime", + "outputDir": "./src/generated/locales", + "localeCodesModule": "./src/generated/locale-codes.ts" + }, + "interchange": { + "format": "xliff", + "xliffDir": "./xliff/" + } +} diff --git a/packages/search-widget/package.json b/packages/search-widget/package.json new file mode 100644 index 0000000..3efa306 --- /dev/null +++ b/packages/search-widget/package.json @@ -0,0 +1,42 @@ +{ + "name": "@halo-dev/search-widget", + "version": "1.7.1", + "type": "module", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.js" + }, + "./var.css": "./var.css" + }, + "main": "./dist/index.js", + "module": "./dist/index.js", + "types": "./dist/index.d.ts", + "files": [ + "dist", + "var.css" + ], + "scripts": { + "dev": "vite --config vite.config.dev.ts", + "build": "vite build --config vite.config.lib.ts", + "lint": "lit-analyzer && eslint 'src/**/*.ts' --fix", + "prettier": "prettier \"**/*.{cjs,html,js,json,md,ts}\" --ignore-path ./.gitignore --write", + "prepublishOnly": "pnpm run build" + }, + "dependencies": { + "@lit/localize": "^0.12.2", + "es-toolkit": "^1.39.7", + "lit": "^3.2.0", + "overlayscrollbars": "^2.10.0" + }, + "devDependencies": { + "@iconify/json": "^2.2.234", + "@julr/unocss-preset-forms": "^2.0.0", + "@lit/localize-tools": "^0.8.0", + "@unocss/reset": "^66.3.3", + "lit-analyzer": "^1.2.1", + "unocss": "^66.3.3", + "vite-plugin-dts": "4.0.0-beta.2", + "vite": "npm:rolldown-vite@7.0.8" + } +} diff --git a/packages/search-widget/src/constants/index.ts b/packages/search-widget/src/constants/index.ts new file mode 100644 index 0000000..a1c2b31 --- /dev/null +++ b/packages/search-widget/src/constants/index.ts @@ -0,0 +1,2 @@ +export const HISTORY_KEY = 'halo:search-widgets:history:hits'; +export const MAX_HISTORY_ITEMS = 50; diff --git a/packages/search-widget/src/generated/locale-codes.ts b/packages/search-widget/src/generated/locale-codes.ts new file mode 100644 index 0000000..23dbf36 --- /dev/null +++ b/packages/search-widget/src/generated/locale-codes.ts @@ -0,0 +1,27 @@ +// Do not modify this file by hand! +// Re-generate this file by running lit-localize. + +/** + * The locale code that templates in this source code are written in. + */ +export const sourceLocale = `en`; + +/** + * The other locale codes that this application is localized into. Sorted + * lexicographically. + */ +export const targetLocales = [ + `es`, + `zh-CN`, + `zh-TW`, +] as const; + +/** + * All valid project locale codes. Sorted lexicographically. + */ +export const allLocales = [ + `en`, + `es`, + `zh-CN`, + `zh-TW`, +] as const; diff --git a/packages/search-widget/src/generated/locales/es.ts b/packages/search-widget/src/generated/locales/es.ts new file mode 100644 index 0000000..05e65b4 --- /dev/null +++ b/packages/search-widget/src/generated/locales/es.ts @@ -0,0 +1,20 @@ + + // Do not modify this file by hand! + // Re-generate this file by running lit-localize + + + + + /* eslint-disable no-irregular-whitespace */ + /* eslint-disable @typescript-eslint/no-explicit-any */ + + export const templates = { + 's5e8250fb85d64c23': `Cerrar`, +'sa84142fc34654130': `Sin resultados de búsqueda`, +'sad5f82f8364e5a1c': `Introducir palabras clave para buscar`, +'sb4f1dffbb6be6302': `Borrar`, +'sb85774dc5d18ff0f': `Confirmar`, +'sbce70cbdb856635e': `Recientes`, +'sfc63e31ac7c956ed': `Seleccionar`, + }; + \ No newline at end of file diff --git a/packages/search-widget/src/generated/locales/zh-CN.ts b/packages/search-widget/src/generated/locales/zh-CN.ts new file mode 100644 index 0000000..f3d472e --- /dev/null +++ b/packages/search-widget/src/generated/locales/zh-CN.ts @@ -0,0 +1,20 @@ + + // Do not modify this file by hand! + // Re-generate this file by running lit-localize + + + + + /* eslint-disable no-irregular-whitespace */ + /* eslint-disable @typescript-eslint/no-explicit-any */ + + export const templates = { + 's5e8250fb85d64c23': `关闭`, +'sa84142fc34654130': `没有搜索结果`, +'sad5f82f8364e5a1c': `输入关键词以搜索`, +'sb4f1dffbb6be6302': `清空`, +'sb85774dc5d18ff0f': `确认`, +'sbce70cbdb856635e': `最近搜索`, +'sfc63e31ac7c956ed': `选择`, + }; + \ No newline at end of file diff --git a/packages/search-widget/src/generated/locales/zh-TW.ts b/packages/search-widget/src/generated/locales/zh-TW.ts new file mode 100644 index 0000000..65fef31 --- /dev/null +++ b/packages/search-widget/src/generated/locales/zh-TW.ts @@ -0,0 +1,20 @@ + + // Do not modify this file by hand! + // Re-generate this file by running lit-localize + + + + + /* eslint-disable no-irregular-whitespace */ + /* eslint-disable @typescript-eslint/no-explicit-any */ + + export const templates = { + 's5e8250fb85d64c23': `關閉`, +'sa84142fc34654130': `沒有搜尋結果`, +'sad5f82f8364e5a1c': `輸入關鍵字以搜尋`, +'sb4f1dffbb6be6302': `清空`, +'sb85774dc5d18ff0f': `確認`, +'sbce70cbdb856635e': `最近搜尋`, +'sfc63e31ac7c956ed': `選擇`, + }; + \ No newline at end of file diff --git a/packages/search-widget/src/index.ts b/packages/search-widget/src/index.ts new file mode 100644 index 0000000..2173eac --- /dev/null +++ b/packages/search-widget/src/index.ts @@ -0,0 +1,5 @@ +import { SearchForm } from './search-form'; +import { SearchModal } from './search-modal'; +import './locale'; + +export { SearchForm, SearchModal }; diff --git a/packages/search-widget/src/locale/index.ts b/packages/search-widget/src/locale/index.ts new file mode 100644 index 0000000..af4db8e --- /dev/null +++ b/packages/search-widget/src/locale/index.ts @@ -0,0 +1,38 @@ +import { configureLocalization, type LocaleModule } from '@lit/localize'; +import { + allLocales, + sourceLocale, + targetLocales, +} from '../generated/locale-codes'; +import * as templates_es from '../generated/locales/es'; +import * as templates_zh_CN from '../generated/locales/zh-CN'; +import * as templates_zh_TW from '../generated/locales/zh-TW'; + +const localizedTemplates = new Map([ + ['es', templates_es], + ['zh-CN', templates_zh_CN], + ['zh-TW', templates_zh_TW], +]); + +const { setLocale } = configureLocalization({ + sourceLocale, + targetLocales, + loadLocale: async (locale) => localizedTemplates.get(locale) as LocaleModule, +}); + +setLocale(getLocale()); + +function getLanguageFromCookie() { + const match = document.cookie.match(/(^| )language=([^;]+)/); + const matchedLanguage = allLocales.find((locale) => locale === match?.[2]); + return matchedLanguage; +} + +function getLanguageFromBrowser() { + const language = allLocales.find((locale) => locale === navigator.language); + return language; +} + +export function getLocale() { + return getLanguageFromCookie() || getLanguageFromBrowser() || sourceLocale; +} diff --git a/packages/search-widget/src/search-form.ts b/packages/search-widget/src/search-form.ts new file mode 100644 index 0000000..695ec62 --- /dev/null +++ b/packages/search-widget/src/search-form.ts @@ -0,0 +1,350 @@ +import type { + HaloDocument, + SearchOption, + SearchResult, +} from '@halo-dev/api-client'; +import { msg } from '@lit/localize'; +import resetStyles from '@unocss/reset/tailwind.css?inline'; +import { type DebouncedFunction, debounce } from 'es-toolkit'; +import { uniqBy } from 'es-toolkit/compat'; +import { css, html, LitElement, unsafeCSS } from 'lit'; +import { property, state } from 'lit/decorators.js'; +import { createRef, type Ref, ref } from 'lit/directives/ref.js'; +import { unsafeHTML } from 'lit/directives/unsafe-html.js'; +import { HISTORY_KEY, MAX_HISTORY_ITEMS } from './constants'; +import baseStyles from './styles/base'; + +export class SearchForm extends LitElement { + @property({ type: String }) + baseUrl = ''; + + @property({ type: Object }) + options = {}; + + @state() + private keyword = ''; + + @state() + private searchResult?: SearchResult; + + @state() + private loading: boolean = false; + + @state() + private selectedIndex = 0; + + @state() + private historyHits: HaloDocument[] = []; + + inputRef: Ref = createRef(); + + constructor() { + super(); + + this.addEventListener('keydown', this.handleKeydown); + + this.historyHits = JSON.parse( + localStorage.getItem(HISTORY_KEY) || '[]' + ) as HaloDocument[]; + + setTimeout(() => { + this.inputRef.value?.focus(); + }, 0); + } + + override render() { + return html` +