From d36eb36c370c601cfecf0548428b4e4b1ccd7f42 Mon Sep 17 00:00:00 2001 From: mdestafadilah Date: Thu, 21 May 2026 10:22:29 +0700 Subject: [PATCH 1/7] Add initial project structure with Docker setup, environment configuration, and client/server architecture --- .dockerignore | 27 + .env.example | 6 + .github/FUNDING.yml | 1 + .gitignore | 44 + CONTRIBUTING.md | 25 + Dockerfile | 46 + LICENSE | 695 +-- README.md | 653 +-- bun.lock | 694 +++ client/.gitignore | 24 + client/README.md | 54 + client/eslint.config.js | 28 + client/index.html | 28 + client/package.json | 44 + {public => client/public}/yuki-host-logo.png | Bin client/src/App.tsx | 78 + client/src/components/floating-shapes.tsx | 24 + client/src/components/qr-code-display.tsx | 133 + client/src/components/qris-generator.tsx | 179 + client/src/components/theme-toggle.tsx | 30 + client/src/components/ui/button.tsx | 58 + client/src/components/ui/card.tsx | 75 + .../src/components}/ui/input.tsx | 42 +- client/src/components/ui/label.tsx | 22 + client/src/index.css | 186 + client/src/lib/api.ts | 19 + {lib => client/src/lib}/utils.ts | 12 +- client/src/main.tsx | 10 + client/src/vite-env.d.ts | 1 + client/tsconfig.app.json | 26 + client/tsconfig.json | 5 + client/tsconfig.node.json | 24 + client/vite.config.ts | 22 + docker-compose.yml | 20 + legacy/LICENSE | 674 +++ Procfile => legacy/Procfile | 2 +- legacy/README.md | 493 ++ {app => legacy/app}/globals.css | 412 +- {app => legacy/app}/layout.tsx | 60 +- {app => legacy/app}/miaw | 0 {app => legacy/app}/page.tsx | 154 +- components.json => legacy/components.json | 42 +- .../components}/floating-shapes.tsx | 52 +- .../components}/qr-code-display.tsx | 278 +- .../components}/qris-generator.tsx | 416 +- .../components}/theme-provider.tsx | 22 +- .../components}/theme-toggle.tsx | 64 +- .../components}/ui/button.tsx | 120 +- {components => legacy/components}/ui/card.tsx | 184 +- legacy/components/ui/input.tsx | 21 + .../components}/ui/label.tsx | 48 +- {components => legacy/components}/ui/miaw | 0 global.d.ts => legacy/global.d.ts | 2 +- {lib => legacy/lib}/miaw | 0 legacy/lib/utils.ts | 6 + next-env.d.ts => legacy/next-env.d.ts | 10 +- next.config.mjs => legacy/next.config.mjs | 28 +- package-lock.json => legacy/package-lock.json | 4370 ++++++++--------- legacy/package.json | 35 + pnpm-lock.yaml => legacy/pnpm-lock.yaml | 2822 +++++------ .../postcss.config.mjs | 16 +- .../public}/placeholder-logo.png | Bin .../public}/placeholder-logo.svg | 0 .../public}/placeholder-user.jpg | Bin {public => legacy/public}/placeholder.jpg | Bin {public => legacy/public}/placeholder.svg | 0 legacy/public/yuki-host-logo.png | Bin 0 -> 136285 bytes {styles => legacy/styles}/globals.css | 250 +- legacy/tsconfig.json | 27 + package.json | 75 +- server/.gitignore | 2 + server/README.md | 11 + server/package.json | 24 + server/src/index.ts | 66 + server/tsconfig.json | 26 + shared/package.json | 19 + shared/src/index.ts | 2 + shared/src/qris.ts | 48 + shared/src/types/index.ts | 16 + shared/tsconfig.json | 24 + tsconfig.json | 59 +- turbo.json | 148 + 82 files changed, 8531 insertions(+), 5932 deletions(-) create mode 100644 .dockerignore create mode 100644 .env.example create mode 100644 .github/FUNDING.yml create mode 100644 .gitignore create mode 100644 CONTRIBUTING.md create mode 100644 Dockerfile create mode 100644 bun.lock create mode 100644 client/.gitignore create mode 100644 client/README.md create mode 100644 client/eslint.config.js create mode 100644 client/index.html create mode 100644 client/package.json rename {public => client/public}/yuki-host-logo.png (100%) create mode 100644 client/src/App.tsx create mode 100644 client/src/components/floating-shapes.tsx create mode 100644 client/src/components/qr-code-display.tsx create mode 100644 client/src/components/qris-generator.tsx create mode 100644 client/src/components/theme-toggle.tsx create mode 100644 client/src/components/ui/button.tsx create mode 100644 client/src/components/ui/card.tsx rename {components => client/src/components}/ui/input.tsx (97%) create mode 100644 client/src/components/ui/label.tsx create mode 100644 client/src/index.css create mode 100644 client/src/lib/api.ts rename {lib => client/src/lib}/utils.ts (96%) create mode 100644 client/src/main.tsx create mode 100644 client/src/vite-env.d.ts create mode 100644 client/tsconfig.app.json create mode 100644 client/tsconfig.json create mode 100644 client/tsconfig.node.json create mode 100644 client/vite.config.ts create mode 100644 docker-compose.yml create mode 100644 legacy/LICENSE rename Procfile => legacy/Procfile (93%) create mode 100644 legacy/README.md rename {app => legacy/app}/globals.css (96%) rename {app => legacy/app}/layout.tsx (96%) rename {app => legacy/app}/miaw (100%) rename {app => legacy/app}/page.tsx (97%) rename components.json => legacy/components.json (95%) rename {components => legacy/components}/floating-shapes.tsx (98%) rename {components => legacy/components}/qr-code-display.tsx (96%) rename {components => legacy/components}/qris-generator.tsx (97%) rename {components => legacy/components}/theme-provider.tsx (96%) rename {components => legacy/components}/theme-toggle.tsx (97%) rename {components => legacy/components}/ui/button.tsx (97%) rename {components => legacy/components}/ui/card.tsx (95%) create mode 100644 legacy/components/ui/input.tsx rename {components => legacy/components}/ui/label.tsx (96%) rename {components => legacy/components}/ui/miaw (100%) rename global.d.ts => legacy/global.d.ts (96%) rename {lib => legacy/lib}/miaw (100%) create mode 100644 legacy/lib/utils.ts rename next-env.d.ts => legacy/next-env.d.ts (97%) rename next.config.mjs => legacy/next.config.mjs (94%) rename package-lock.json => legacy/package-lock.json (97%) create mode 100644 legacy/package.json rename pnpm-lock.yaml => legacy/pnpm-lock.yaml (97%) rename postcss.config.mjs => legacy/postcss.config.mjs (94%) rename {public => legacy/public}/placeholder-logo.png (100%) rename {public => legacy/public}/placeholder-logo.svg (100%) rename {public => legacy/public}/placeholder-user.jpg (100%) rename {public => legacy/public}/placeholder.jpg (100%) rename {public => legacy/public}/placeholder.svg (100%) create mode 100644 legacy/public/yuki-host-logo.png rename {styles => legacy/styles}/globals.css (97%) create mode 100644 legacy/tsconfig.json create mode 100644 server/.gitignore create mode 100644 server/README.md create mode 100644 server/package.json create mode 100644 server/src/index.ts create mode 100644 server/tsconfig.json create mode 100644 shared/package.json create mode 100644 shared/src/index.ts create mode 100644 shared/src/qris.ts create mode 100644 shared/src/types/index.ts create mode 100644 shared/tsconfig.json create mode 100644 turbo.json diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..c3ab32f --- /dev/null +++ b/.dockerignore @@ -0,0 +1,27 @@ +**/node_modules +**/dist +**/build +**/.turbo +**/.cache +**/coverage +**/.next + +.git +.github +.vscode +.idea + +legacy +docker-compose*.yml +Dockerfile +.dockerignore + +**/.env +**/.env.* +!**/.env.example + +**/*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..0f5779e --- /dev/null +++ b/.env.example @@ -0,0 +1,6 @@ +# Host port mapped to the container (container always listens on 3000). +PORT=3000 + +# Optional: override the API base URL used by the client at build time. +# Leave empty in production (the Hono server serves both the client and the API). +# VITE_SERVER_URL=http://localhost:3000 diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..b144148 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +ko_fi: stevedylandev diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..83c044e --- /dev/null +++ b/.gitignore @@ -0,0 +1,44 @@ +# bhvr/.gitignore +# dependencies +node_modules +.pnp +.pnp.js + +# testing +coverage + +# production +dist +build + +# misc +.DS_Store +.env +.env.local +.env.development.local +.env.test.local +.env.production.local +.env*.local + +# logs +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + +# editor directories and files +.idea +.vscode/* +!.vscode/extensions.json +!.vscode/settings.json +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +# Bun +bun.lockb + +# Turbo +.turbo \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..fb8d6f9 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,25 @@ +# Contributing to create-bhvr + +First off, thank you for considering contributing to `bhvr`! This is a true open source project and we welcome community ideas and contributions. In order to keep things clean please follow the contributing guidelines below. + +## How Can I Contribute? + +### Reporting Bugs + +If you find a bug, please make sure the bug has not already been reported by searching on GitHub under [Issues](https://github.com/stevedylandev/bhvr/issues). If you're unable to find an open issue addressing the problem, [open a new one](https://github.com/stevedylandev/bhvr/issues/new). Be sure to include a **title and clear description**, as much relevant information as possible, and a **code sample** or an **executable test case** demonstrating the expected behavior that is not occurring. + +### Suggesting Enhancements + +If you have an idea for an enhancement, please make sure the enhancement has not already been suggested by searching on GitHub under [Issues](https://github.com/stevedylandev/bhvr/issues). If you're unable to find an open issue addressing the suggestion, [open a new one](https://github.com/stevedylandev/bhvr/issues/new). Be sure to include a **title and clear description** of the enhancement you're suggesting. + +### Submitting a Pull Request + +1. Fork the repository and create your branch from `main`. +2. Run `bun install` to install the dependencies. +3. Make your changes. +4. Run `bun run build` to make sure your changes build correctly. +5. Issue that pull request! + +## License + +By contributing, you agree that your contributions will be licensed under its MIT License. diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..b1cad0e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,46 @@ +# syntax=docker/dockerfile:1.7 + +# ---- Builder: install all workspaces and build client + server + shared ---- +FROM oven/bun:1.2-alpine AS builder +WORKDIR /app + +# Copy workspace manifests first so dep-install can cache. +COPY package.json bun.lock tsconfig.json turbo.json ./ +COPY shared/package.json ./shared/ +COPY server/package.json ./server/ +COPY client/package.json ./client/ + +# Install all deps (postinstall builds shared + server via turbo). +RUN bun install + +# Copy the rest of the sources and run the full build (adds client/dist). +COPY shared ./shared +COPY server ./server +COPY client ./client +RUN bun run build + +# ---- Runner: minimal image that boots the Hono server ---- +FROM oven/bun:1.2-alpine AS runner +WORKDIR /app + +ENV NODE_ENV=production \ + PORT=3000 \ + CLIENT_DIST_DIR=/app/public + +# Hop the built artefacts and resolved node_modules out of the builder. +COPY --from=builder /app/package.json /app/bun.lock ./ +COPY --from=builder /app/shared/package.json ./shared/ +COPY --from=builder /app/server/package.json ./server/ +COPY --from=builder /app/shared/dist ./shared/dist +COPY --from=builder /app/server/dist ./server/dist +COPY --from=builder /app/client/dist ./public +COPY --from=builder /app/node_modules ./node_modules + +EXPOSE 3000 + +HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \ + CMD wget -q -O - http://127.0.0.1:${PORT}/healthz || exit 1 + +# Drop privileges; the oven/bun image ships a non-root "bun" user. +USER bun +CMD ["bun", "run", "server/dist/index.js"] diff --git a/LICENSE b/LICENSE index f288702..a0aa89b 100644 --- a/LICENSE +++ b/LICENSE @@ -1,674 +1,21 @@ - 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 -. +MIT License + +Copyright (c) 2025 Steve Simkins + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index 76525f4..ae3beea 100644 --- a/README.md +++ b/README.md @@ -1,493 +1,160 @@ -# QRIS Dynamic Generator 🚀 - -[![Next.js](https://img.shields.io/badge/Next.js-15.2.4-black?style=for-the-badge&logo=next.js)](https://nextjs.org/) -[![TypeScript](https://img.shields.io/badge/TypeScript-5.0.2-blue?style=for-the-badge&logo=typescript)](https://www.typescriptlang.org/) - -Aplikasi web modern untuk mengkonversi QRIS statis menjadi QRIS dinamis dengan nominal pembayaran yang dapat disesuaikan. Dilengkapi dengan dark/light mode, animasi smooth, dan logo branding otomatis pada QR code. - -

- - QRIS Dynamic Generator Preview - -

- -## 📋 Daftar Isi - -- [Apa itu QRIS Dynamic?](#-apa-itu-qris-dynamic) -- [Fitur Utama](#-fitur-utama) -- [Kegunaan](#-kegunaan) -- [Manfaat](#-manfaat) -- [Teknologi](#%EF%B8%8F-teknologi) -- [Penjelasan Code Utama](#-penjelasan-code-utama) -- [Instalasi Lokal](#-instalasi-lokal) -- [Deploy ke Vercel](#-deploy-ke-vercel) -- [Deploy ke Heroku](#-deploy-ke-heroku) -- [Cara Penggunaan](#-cara-penggunaan) -- [Kontribusi](#-kontribusi) -- [Lisensi](#-lisensi) - -## 🎯 Apa itu QRIS Dynamic? - -**QRIS (Quick Response Code Indonesian Standard)** adalah standar QR code untuk pembayaran digital di Indonesia yang menggabungkan berbagai metode pembayaran dalam satu QR code. - -**QRIS Statis** adalah QR code dengan nominal yang tidak ditentukan - pelanggan harus memasukkan nominal pembayaran secara manual. - -**QRIS Dinamis** adalah QR code yang sudah memiliki nominal pembayaran yang ditentukan - pelanggan tinggal scan dan konfirmasi pembayaran tanpa perlu input nominal. - -Aplikasi ini mengkonversi QRIS statis menjadi dinamis dengan cara: -1. Membaca data dari QRIS statis -2. Menambahkan informasi nominal pembayaran (tag 54) -3. Menghitung ulang CRC16 checksum -4. Generate QR code baru dengan logo branding - -## ✨ Fitur Utama - -- **Upload QRIS Image** - Upload gambar QR code statis atau paste kode QRIS secara manual -- **Input Nominal Dinamis** - Masukkan nominal pembayaran dalam format Rupiah dengan auto-formatting -- **QR Code dengan Logo** - Setiap QR code yang dihasilkan menyertakan logo Yuki Host di tengahnya -- **Dark/Light Mode** - Toggle tema gelap/terang dengan transisi smooth -- **Animated Background** - Floating shapes dengan animasi yang modern dan smooth -- **Download QR Code** - Download QR code sebagai file PNG -- **Copy QRIS String** - Copy kode QRIS untuk digunakan di platform lain -- **Responsive Design** - Tampilan optimal di semua ukuran layar -- **Modern UI/UX** - Glassmorphism effects, gradient animations, dan smooth transitions - -## 🎨 Kegunaan - -### Untuk Merchant/Bisnis -- Generate QR code pembayaran dengan nominal spesifik untuk setiap transaksi -- Buat invoice digital dengan QR code yang sudah include nominal -- Terima pembayaran dengan lebih cepat tanpa perlu pelanggan input nominal manual - -### Untuk Freelancer -- Buat QR code untuk invoice project dengan nominal yang sudah ditentukan -- Kirim QR code pembayaran langsung ke klien via WhatsApp/Email - -### Untuk Event Organizer -- Generate QR code untuk tiket dengan harga berbeda-beda -- Buat QR code untuk pembayaran booth atau sponsorship - -### Untuk Donasi/Fundraising -- Buat QR code dengan nominal donasi yang disarankan -- Generate multiple QR codes untuk berbagai tier donasi - -## 💡 Manfaat - -### Efisiensi Waktu -Tidak perlu login ke dashboard bank atau payment gateway untuk membuat QRIS dinamis. Cukup buka aplikasi, input nominal, dan QR code siap digunakan dalam hitungan detik. - -### Mengurangi Error -Dengan nominal yang sudah ditentukan, mengurangi risiko kesalahan input nominal oleh pelanggan. - -### Profesional -QR code dengan logo branding memberikan kesan profesional dan meningkatkan brand awareness. - -### User Experience -Interface modern dengan dark/light mode dan animasi smooth membuat pengalaman pengguna lebih menyenangkan. - -### Gratis & Open Source -Tidak ada biaya berlangganan atau batasan penggunaan. Source code tersedia untuk dipelajari dan dikembangkan. - -### Fleksibel -Dapat digunakan untuk berbagai skenario pembayaran dengan nominal yang berbeda-beda. - -## 🛠️ Teknologi - -Aplikasi ini dibangun menggunakan teknologi modern: - -- **Next.js 15.2.4** - React framework untuk production -- **React 19** - Library UI terbaru -- **TypeScript** - Type-safe JavaScript -- **Tailwind CSS v4** - Utility-first CSS framework -- **shadcn/ui** - High-quality React components -- **qrcode** - QR code generation library -- **Geist Font** - Modern font dari Vercel -- **Lucide React** - Beautiful icon library - -## 🔍 Penjelasan Code Utama - -### 1. CRC16 Calculation (`components/qris-generator.tsx`) - -```typescript -function crc16(data: string): string { - let crc = 0xFFFF; - for (let i = 0; i < data.length; i++) { - crc ^= data.charCodeAt(i) << 8; - for (let j = 0; j < 8; j++) { - if (crc & 0x8000) { - crc = (crc << 1) ^ 0x1021; - } else { - crc = crc << 1; - } - } - } - crc = crc & 0xFFFF; - return crc.toString(16).toUpperCase().padStart(4, '0'); -} -``` - -**Fungsi:** Menghitung checksum CRC16-CCITT untuk validasi data QRIS. - -**Cara Kerja:** -- Inisialisasi CRC dengan nilai 0xFFFF -- Untuk setiap karakter dalam data, XOR dengan CRC yang di-shift 8 bit -- Lakukan 8 iterasi bit manipulation dengan polynomial 0x1021 -- Return hasil dalam format hexadecimal 4 digit - -### 2. QRIS Dynamic Conversion (`components/qris-generator.tsx`) - -```typescript -const modifyQris = (staticQris: string, nominal: number): string => { - // Remove existing CRC (last 4 characters) - let qrisWithoutCrc = staticQris.slice(0, -4); - - // Format nominal as string with 2 decimal places - const nominalStr = nominal.toFixed(2); - - // Create tag 54 (Transaction Amount) - const tag54 = `54${nominalStr.length.toString().padStart(2, '0')}${nominalStr}`; - - // Insert or replace tag 54 in QRIS string - // ... (logic to find and replace tag 54) - - // Calculate new CRC16 - const newCrc = crc16(qrisWithoutCrc + '6304'); - - // Return complete QRIS with new CRC - return qrisWithoutCrc + '6304' + newCrc; -}; -``` - -**Fungsi:** Mengkonversi QRIS statis menjadi dinamis dengan menambahkan nominal. - -**Cara Kerja:** -1. Hapus CRC lama (4 karakter terakhir) -2. Format nominal menjadi string dengan 2 desimal -3. Buat tag 54 (Transaction Amount) dengan format: `54[length][nominal]` -4. Insert/replace tag 54 di string QRIS -5. Hitung CRC16 baru untuk data yang sudah dimodifikasi -6. Gabungkan semua komponen menjadi QRIS dinamis yang valid - -### 3. QR Code Generation with Logo (`components/qr-code-display.tsx`) - -```typescript -useEffect(() => { - const canvas = canvasRef.current; - if (!canvas || !qrisString) return; - - // Generate QR code to canvas - QRCode.toCanvas(canvas, qrisString, { - width: 300, - margin: 2, - errorCorrectionLevel: 'H' // High error correction for logo overlay - }); - - // Draw logo in center - const ctx = canvas.getContext('2d'); - const logo = new Image(); - logo.crossOrigin = 'anonymous'; - logo.src = '/yuki-host-logo.png'; - - logo.onload = () => { - const logoSize = 100; - const x = (canvas.width - logoSize) / 2; - const y = (canvas.height - logoSize) / 2; - - // Draw white background for logo - ctx.fillStyle = 'white'; - ctx.fillRect(x - 5, y - 5, logoSize + 10, logoSize + 10); - - // Draw logo - ctx.drawImage(logo, x, y, logoSize, logoSize); - }; -}, [qrisString]); -``` - -**Fungsi:** Generate QR code dengan logo di tengahnya. - -**Cara Kerja:** -1. Generate QR code ke canvas dengan error correction level 'H' (30% recovery) -2. Load logo image dengan CORS handling -3. Gambar background putih di tengah QR code -4. Overlay logo di atas background putih -5. Error correction level tinggi memastikan QR code tetap scannable meskipun ada logo - -### 4. Theme Toggle (`components/theme-toggle.tsx`) - -```typescript -const toggleTheme = () => { - const newTheme = theme === 'dark' ? 'light' : 'dark'; - setTheme(newTheme); - localStorage.setItem('theme', newTheme); - document.documentElement.classList.toggle('dark', newTheme === 'dark'); -}; -``` - -**Fungsi:** Toggle antara dark mode dan light mode. - -**Cara Kerja:** -1. Toggle state theme antara 'dark' dan 'light' -2. Simpan preferensi ke localStorage untuk persistence -3. Toggle class 'dark' pada element HTML untuk trigger CSS variables -4. CSS variables di `globals.css` otomatis berubah sesuai class - -## 📦 Instalasi Lokal - -### Prerequisites -- Node.js 18+ atau 20+ -- npm, yarn, atau pnpm - -### Langkah-langkah - -1. **Clone repository** -```bash -git clone https://github.com/AmmarrBN/Qris-Dynamic.git -cd Qris-Dynamic -``` - -2. **Install dependencies** -```bash -# Menggunakan npm -npm install - -# Atau menggunakan yarn -yarn install - -# Atau menggunakan pnpm -pnpm install -``` - -3. **Jalankan development server** -```bash -npm run dev -# atau -yarn dev -# atau -pnpm dev -``` - -4. **Buka browser** -``` -http://localhost:3000 -``` - -## 🚀 Deploy ke Vercel - -Vercel adalah platform deployment yang paling mudah untuk Next.js (dibuat oleh creator Next.js). - -### Method 1: Deploy via GitHub (Recommended) - -1. **Push code ke GitHub** -```bash -git add . -git commit -m "Initial commit" -git push origin main -``` - -2. **Import ke Vercel** - - Buka [vercel.com](https://vercel.com) - - Login dengan GitHub account - - Click "Add New Project" - - Import repository `Qris-Dynamic` - - Click "Deploy" - -3. **Konfigurasi (Optional)** - - Framework Preset: Next.js (auto-detected) - - Build Command: `npm run build` (auto-detected) - - Output Directory: `.next` (auto-detected) - - Install Command: `npm install` (auto-detected) - -4. **Deploy** - - Click "Deploy" - - Tunggu proses build selesai (2-3 menit) - - Aplikasi akan live di `https://your-project.vercel.app` - -### Method 2: Deploy via Vercel CLI - -1. **Install Vercel CLI** -```bash -npm install -g vercel -``` - -2. **Login ke Vercel** -```bash -vercel login -``` - -3. **Deploy** -```bash -vercel -``` - -4. **Deploy ke Production** -```bash -vercel --prod -``` - -### Auto-Deploy -Setiap push ke branch `main` akan otomatis trigger deployment baru di Vercel. - -## 🌐 Deploy ke Heroku - -Heroku adalah platform cloud yang mendukung berbagai bahasa pemrograman. - -### Prerequisites -- Heroku account (gratis di [heroku.com](https://heroku.com)) -- Heroku CLI installed - -### Langkah-langkah - -1. **Install Heroku CLI** -```bash -# macOS -brew tap heroku/brew && brew install heroku - -# Windows -# Download installer dari https://devcenter.heroku.com/articles/heroku-cli - -# Linux -curl https://cli-assets.heroku.com/install.sh | sh -``` - -2. **Login ke Heroku** -```bash -heroku login -``` - -3. **Create Heroku App** -```bash -heroku create your-app-name -# atau biarkan Heroku generate nama random -heroku create -``` - -4. **Set Buildpack** -```bash -heroku buildpacks:set heroku/nodejs -``` - -5. **Configure Environment** - -Pastikan `package.json` memiliki scripts yang benar: -```json -{ - "scripts": { - "dev": "next dev", - "build": "next build", - "start": "next start -p $PORT", - "lint": "next lint" - } -} -``` - -Pastikan ada file `Procfile` di root directory: -``` -web: npm start -``` - -6. **Deploy ke Heroku** -```bash -git add . -git commit -m "Deploy to Heroku" -git push heroku main -``` - -7. **Open App** -```bash -heroku open -``` - -### Troubleshooting Heroku - -**Error: Cannot find module '@tailwindcss/postcss'** -- Pastikan `@tailwindcss/postcss` ada di `devDependencies` di `package.json` - -**Error: Application error** -- Check logs: `heroku logs --tail` -- Pastikan PORT environment variable digunakan: `next start -p $PORT` - -**Build timeout** -- Upgrade ke Heroku paid plan untuk build time lebih lama -- Atau optimize dependencies - -### Environment Variables (Optional) - -Jika aplikasi memerlukan environment variables: - -```bash -heroku config:set VARIABLE_NAME=value -``` - -## 📖 Cara Penggunaan - -1. **Upload QRIS Statis** - - Click area upload atau drag & drop gambar QR code statis - - Atau paste kode QRIS secara manual di text area - -2. **Input Nominal** - - Masukkan nominal pembayaran (contoh: 50000) - - Format otomatis menjadi Rupiah (Rp 50.000) - -3. **Generate QR Code** - - Click tombol "Generate QRIS Dinamis" - - QR code baru akan muncul dengan logo di tengahnya - -4. **Download atau Copy** - - Click "Download QR Code" untuk save sebagai PNG - - Click "Copy QRIS String" untuk copy kode QRIS - -5. **Toggle Theme (Optional)** - - Click icon sun/moon di pojok kanan atas untuk switch dark/light mode - -## 🤝 Kontribusi - -Kontribusi sangat diterima! Berikut cara berkontribusi: - -1. Fork repository ini -2. Create branch baru (`git checkout -b feature/AmazingFeature`) -3. Commit changes (`git commit -m 'Add some AmazingFeature'`) -4. Push ke branch (`git push origin feature/AmazingFeature`) -5. Open Pull Request - -### Ideas untuk Kontribusi -- Tambah support untuk multiple payment methods -- Implementasi history/saved QR codes -- Export QR code dalam berbagai format (SVG, PDF) -- Batch generation untuk multiple QR codes -- API endpoint untuk integration dengan sistem lain - -## 📝 Lisensi - -Distributed under the MIT License. See `LICENSE` for more information. - -## 👨‍💻 Author - -**AmmarBN** -- GitHub: [@AmmarrBN](https://github.com/AmmarrBN) - -## 🙏 Acknowledgments - -- [Next.js](https://nextjs.org/) - React framework -- [Heroku](https://heroku.com/) - Deployment platform -- [Vercel](https://vercel.com/) - Deployment platform -- [shadcn/ui](https://ui.shadcn.com/) - UI components -- [Tailwind CSS](https://tailwindcss.com/) - CSS framework - -## 📞 Support - -Jika ada pertanyaan atau issue, silakan: -- Open issue di GitHub -- Contact via email: [ammarburhanudinafis@gmail.com] - ---- - -**⭐ Jika project ini membantu, jangan lupa kasih star di GitHub!** - -Made with ❤️ by [AmmarBN](https://github.com/AmmarrBN) - - - - - +# QRIS Dynamic 🚀 + +Konversi QRIS statis menjadi QRIS dinamis dengan nominal pembayaran terkustomisasi. Dibangun ulang di atas **BHVR**: Bun + Hono + Vite + React, dideploy sebagai single container via Docker Compose. + +> Versi Next.js sebelumnya tetap tersedia sebagai referensi di folder [`legacy/`](legacy/). + +## ✨ Fitur + +- Konversi QRIS statis → dinamis (logika CRC16 + tag 54) di server (Hono) untuk validasi terpusat. +- UI modern: Tailwind v4, shadcn/ui, dark/light mode, animasi floating shapes & gradient. +- QR code di-render di canvas dengan logo overlay (error correction level H). +- Download QR sebagai PNG dan copy string QRIS dinamis. + +## 🛠️ Tech stack + +- **[Bun](https://bun.sh)** — runtime + package manager + monorepo workspaces. +- **[Hono](https://hono.dev)** — API HTTP super ringan + static file serving. +- **[Vite](https://vitejs.dev)** — bundler/dev-server untuk client. +- **[React 19](https://react.dev)** + **[Tailwind CSS v4](https://tailwindcss.com)** + **[shadcn/ui](https://ui.shadcn.com)** + **[lucide-react](https://lucide.dev)**. +- **[Turborepo](https://turbo.build)** — orchestrate build/lint/dev di tiga workspace. + +## 📂 Struktur + +``` +. +├── client/ # Vite + React UI (port 5173 saat dev) +├── server/ # Hono API + static client (port 3000) +├── shared/ # Type-safe shared logic (QRIS utils + API types) +├── legacy/ # Snapshot Next.js sebelum migrasi (read-only) +├── Dockerfile +├── docker-compose.yml +└── package.json # workspaces + turbo scripts +``` + +## 🚀 Development + +### Prasyarat + +- [Bun](https://bun.sh) ≥ 1.2 + +### Install & jalankan + +```bash +bun install # menginstall semua workspace + build shared/server +bun run dev # menjalankan client (5173) dan server (3000) secara paralel +``` + +Atau jalankan terpisah: + +```bash +bun run dev:client # http://localhost:5173 (Vite, dengan proxy /api → :3000) +bun run dev:server # http://localhost:3000 (Hono, hot-reload via --watch) +``` + +### Build production lokal + +```bash +bun run build # build shared + server (tsc) + client (vite build) +bun run start # menjalankan server prod, melayani API dan client/dist +``` + +## 🔌 API + +### `POST /api/qris/dynamic` + +Mengkonversi QRIS statis menjadi dinamis. + +**Request** +```json +{ + "qris": "00020101021126670016COM.NOBUBANK.WWW...6304F6C8", + "amount": 50000 +} +``` + +**Response 200** +```json +{ + "success": true, + "data": { + "qris": "00020101021226670016COM.NOBUBANK.WWW...54050000050802ID...", + "amount": 50000 + } +} +``` + +**Response 4xx** +```json +{ "success": false, "error": "amount must be a positive number" } +``` + +### `GET /healthz` + +Healthcheck untuk Docker / orchestrator. Mengembalikan `{ "ok": true }`. + +## 🐳 Deploy ke VPS dengan Docker Compose + +`Dockerfile` adalah multi-stage build: stage `builder` install deps & build semua workspace, stage `runner` hanya membawa `node_modules`, artefak build, dan static client. Server Hono menyajikan API dan static client dari port `3000`. + +### 1. Sediakan file di VPS + +Cara paling praktis adalah clone repo langsung di VPS: + +```bash +git clone qris-dynamic +cd qris-dynamic +cp .env.example .env # opsional, edit PORT bila perlu +``` + +### 2. Jalankan + +```bash +docker compose up -d --build +``` + +Build akan memakan beberapa menit di run pertama (download base image `oven/bun:1.2-alpine` + install deps). Setelah container running, aplikasi tersedia di `http://:${PORT:-3000}` dan healthcheck Docker akan ping `/healthz` setiap 30 detik. + +### 3. Pasang di belakang reverse proxy + +Container hanya mengekspos HTTP polos. Untuk TLS, taruh di belakang Nginx/Caddy/Traefik. Contoh blok Caddyfile: + +```caddy +qris.example.com { + reverse_proxy localhost:3000 +} +``` + +### Operasional + +```bash +docker compose logs -f # tail log +docker compose restart qris-dynamic # restart +docker compose pull && docker compose up -d --build # update setelah git pull +docker compose down # stop & remove container +``` + +### Catatan platform + +Image dibangun dengan base `oven/bun:1.2-alpine` di Linux/amd64. Jika VPS Anda ARM, Docker akan otomatis pull varian yang sesuai. `bun install` di builder stage dijalankan tanpa `--frozen-lockfile` karena `bun.lock` dihasilkan di Windows; jika Anda men-commit lockfile dari Linux, tambahkan `--frozen-lockfile` di `Dockerfile` untuk build reproducible. + +## 🔧 Environment variables + +| Variabel | Default | Keterangan | +|---------------------|--------------------------|---------------------------------------------------------------------------| +| `PORT` | `3000` | Port HTTP yang didengarkan oleh server Hono. | +| `CLIENT_DIST_DIR` | `./public` (di image) | Lokasi static client (`client/dist`) yang di-mount oleh server. | +| `VITE_SERVER_URL` | _(kosong)_ | Build-time only. Set jika client dideploy terpisah dari server. | + +## 📁 Folder legacy + +[`legacy/`](legacy/) menyimpan project Next.js asli (App Router, Heroku/Vercel-ready). Tidak digunakan oleh build BHVR dan aman untuk dihapus jika tidak lagi diperlukan. + +## 📝 Lisensi + +MIT — lihat [LICENSE](LICENSE). + +## 🙏 Acknowledgments + +- Project asli: [@AmmarrBN/Qris-Dynamic](https://github.com/AmmarrBN/Qris-Dynamic). +- Template stack: [bhvr.dev](https://bhvr.dev) oleh Steve Simkins. diff --git a/bun.lock b/bun.lock new file mode 100644 index 0000000..209ecd3 --- /dev/null +++ b/bun.lock @@ -0,0 +1,694 @@ +{ + "lockfileVersion": 1, + "configVersion": 0, + "workspaces": { + "": { + "name": "bhvr", + "devDependencies": { + "bun-types": "latest", + "turbo": "^2.6.3", + }, + "peerDependencies": { + "typescript": "^5.8.3", + }, + }, + "client": { + "name": "client", + "version": "0.0.1", + "dependencies": { + "@radix-ui/react-label": "^2.1.7", + "@radix-ui/react-slot": "^1.2.2", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "lucide-react": "^0.454.0", + "qrcode": "^1.5.4", + "react": "^19.2.3", + "react-dom": "^19.2.3", + "server": "workspace:*", + "shared": "workspace:*", + "tailwind-merge": "^2.5.5", + }, + "devDependencies": { + "@eslint/js": "^9.39.2", + "@tailwindcss/vite": "^4.1.9", + "@types/node": "^22.19.2", + "@types/qrcode": "^1.5.5", + "@types/react": "^19.2.7", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^4.7.0", + "eslint": "^9.39.2", + "eslint-plugin-react-hooks": "^5.2.0", + "eslint-plugin-react-refresh": "^0.4.24", + "globals": "^16.5.0", + "tailwindcss": "^4.1.9", + "tw-animate-css": "^1.4.0", + "typescript": "~5.7.3", + "typescript-eslint": "^8.49.0", + "vite": "^6.4.1", + }, + }, + "server": { + "name": "server", + "version": "0.0.1", + "dependencies": { + "hono": "^4.10.8", + "shared": "workspace:*", + }, + "devDependencies": { + "@types/bun": "latest", + }, + }, + "shared": { + "name": "shared", + "version": "0.0.1", + "devDependencies": { + "typescript": "^5.9.3", + }, + }, + }, + "packages": { + "@ampproject/remapping": ["@ampproject/remapping@2.3.0", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw=="], + + "@babel/code-frame": ["@babel/code-frame@7.27.1", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg=="], + + "@babel/compat-data": ["@babel/compat-data@7.28.0", "", {}, "sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw=="], + + "@babel/core": ["@babel/core@7.28.0", "", { "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.0", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-module-transforms": "^7.27.3", "@babel/helpers": "^7.27.6", "@babel/parser": "^7.28.0", "@babel/template": "^7.27.2", "@babel/traverse": "^7.28.0", "@babel/types": "^7.28.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ=="], + + "@babel/generator": ["@babel/generator@7.28.0", "", { "dependencies": { "@babel/parser": "^7.28.0", "@babel/types": "^7.28.0", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" } }, "sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg=="], + + "@babel/helper-compilation-targets": ["@babel/helper-compilation-targets@7.27.2", "", { "dependencies": { "@babel/compat-data": "^7.27.2", "@babel/helper-validator-option": "^7.27.1", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" } }, "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ=="], + + "@babel/helper-globals": ["@babel/helper-globals@7.28.0", "", {}, "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw=="], + + "@babel/helper-module-imports": ["@babel/helper-module-imports@7.27.1", "", { "dependencies": { "@babel/traverse": "^7.27.1", "@babel/types": "^7.27.1" } }, "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w=="], + + "@babel/helper-module-transforms": ["@babel/helper-module-transforms@7.27.3", "", { "dependencies": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1", "@babel/traverse": "^7.27.3" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg=="], + + "@babel/helper-plugin-utils": ["@babel/helper-plugin-utils@7.27.1", "", {}, "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw=="], + + "@babel/helper-string-parser": ["@babel/helper-string-parser@7.27.1", "", {}, "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA=="], + + "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.27.1", "", {}, "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow=="], + + "@babel/helper-validator-option": ["@babel/helper-validator-option@7.27.1", "", {}, "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg=="], + + "@babel/helpers": ["@babel/helpers@7.27.6", "", { "dependencies": { "@babel/template": "^7.27.2", "@babel/types": "^7.27.6" } }, "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug=="], + + "@babel/parser": ["@babel/parser@7.28.0", "", { "dependencies": { "@babel/types": "^7.28.0" }, "bin": "./bin/babel-parser.js" }, "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g=="], + + "@babel/plugin-transform-react-jsx-self": ["@babel/plugin-transform-react-jsx-self@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw=="], + + "@babel/plugin-transform-react-jsx-source": ["@babel/plugin-transform-react-jsx-source@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw=="], + + "@babel/template": ["@babel/template@7.27.2", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/parser": "^7.27.2", "@babel/types": "^7.27.1" } }, "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw=="], + + "@babel/traverse": ["@babel/traverse@7.28.0", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.0", "@babel/helper-globals": "^7.28.0", "@babel/parser": "^7.28.0", "@babel/template": "^7.27.2", "@babel/types": "^7.28.0", "debug": "^4.3.1" } }, "sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg=="], + + "@babel/types": ["@babel/types@7.28.1", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1" } }, "sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ=="], + + "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.8", "", { "os": "aix", "cpu": "ppc64" }, "sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA=="], + + "@esbuild/android-arm": ["@esbuild/android-arm@0.25.8", "", { "os": "android", "cpu": "arm" }, "sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw=="], + + "@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.8", "", { "os": "android", "cpu": "arm64" }, "sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w=="], + + "@esbuild/android-x64": ["@esbuild/android-x64@0.25.8", "", { "os": "android", "cpu": "x64" }, "sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA=="], + + "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.8", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw=="], + + "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.8", "", { "os": "darwin", "cpu": "x64" }, "sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg=="], + + "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.8", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA=="], + + "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.8", "", { "os": "freebsd", "cpu": "x64" }, "sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw=="], + + "@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.8", "", { "os": "linux", "cpu": "arm" }, "sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg=="], + + "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.8", "", { "os": "linux", "cpu": "arm64" }, "sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w=="], + + "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.8", "", { "os": "linux", "cpu": "ia32" }, "sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg=="], + + "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.8", "", { "os": "linux", "cpu": "none" }, "sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ=="], + + "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.8", "", { "os": "linux", "cpu": "none" }, "sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw=="], + + "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.8", "", { "os": "linux", "cpu": "ppc64" }, "sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ=="], + + "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.8", "", { "os": "linux", "cpu": "none" }, "sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg=="], + + "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.8", "", { "os": "linux", "cpu": "s390x" }, "sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg=="], + + "@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.8", "", { "os": "linux", "cpu": "x64" }, "sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ=="], + + "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.8", "", { "os": "none", "cpu": "arm64" }, "sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw=="], + + "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.8", "", { "os": "none", "cpu": "x64" }, "sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg=="], + + "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.8", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ=="], + + "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.8", "", { "os": "openbsd", "cpu": "x64" }, "sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ=="], + + "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.25.8", "", { "os": "none", "cpu": "arm64" }, "sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg=="], + + "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.8", "", { "os": "sunos", "cpu": "x64" }, "sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w=="], + + "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.8", "", { "os": "win32", "cpu": "arm64" }, "sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ=="], + + "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.8", "", { "os": "win32", "cpu": "ia32" }, "sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg=="], + + "@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.8", "", { "os": "win32", "cpu": "x64" }, "sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw=="], + + "@eslint-community/eslint-utils": ["@eslint-community/eslint-utils@4.9.0", "", { "dependencies": { "eslint-visitor-keys": "^3.4.3" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g=="], + + "@eslint-community/regexpp": ["@eslint-community/regexpp@4.12.1", "", {}, "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ=="], + + "@eslint/config-array": ["@eslint/config-array@0.21.1", "", { "dependencies": { "@eslint/object-schema": "^2.1.7", "debug": "^4.3.1", "minimatch": "^3.1.2" } }, "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA=="], + + "@eslint/config-helpers": ["@eslint/config-helpers@0.4.2", "", { "dependencies": { "@eslint/core": "^0.17.0" } }, "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw=="], + + "@eslint/core": ["@eslint/core@0.17.0", "", { "dependencies": { "@types/json-schema": "^7.0.15" } }, "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ=="], + + "@eslint/eslintrc": ["@eslint/eslintrc@3.3.1", "", { "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^10.0.1", "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" } }, "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ=="], + + "@eslint/js": ["@eslint/js@9.39.2", "", {}, "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA=="], + + "@eslint/object-schema": ["@eslint/object-schema@2.1.7", "", {}, "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA=="], + + "@eslint/plugin-kit": ["@eslint/plugin-kit@0.4.1", "", { "dependencies": { "@eslint/core": "^0.17.0", "levn": "^0.4.1" } }, "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA=="], + + "@humanfs/core": ["@humanfs/core@0.19.1", "", {}, "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA=="], + + "@humanfs/node": ["@humanfs/node@0.16.6", "", { "dependencies": { "@humanfs/core": "^0.19.1", "@humanwhocodes/retry": "^0.3.0" } }, "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw=="], + + "@humanwhocodes/module-importer": ["@humanwhocodes/module-importer@1.0.1", "", {}, "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="], + + "@humanwhocodes/retry": ["@humanwhocodes/retry@0.4.3", "", {}, "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ=="], + + "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.12", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg=="], + + "@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="], + + "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], + + "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="], + + "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.29", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ=="], + + "@radix-ui/react-compose-refs": ["@radix-ui/react-compose-refs@1.1.2", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg=="], + + "@radix-ui/react-label": ["@radix-ui/react-label@2.1.8", "", { "dependencies": { "@radix-ui/react-primitive": "2.1.4" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-FmXs37I6hSBVDlO4y764TNz1rLgKwjJMQ0EGte6F3Cb3f4bIuHB/iLa/8I9VKkmOy+gNHq8rql3j686ACVV21A=="], + + "@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.1.4", "", { "dependencies": { "@radix-ui/react-slot": "1.2.4" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg=="], + + "@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.4", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA=="], + + "@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.0-beta.27", "", {}, "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA=="], + + "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.45.1", "", { "os": "android", "cpu": "arm" }, "sha512-NEySIFvMY0ZQO+utJkgoMiCAjMrGvnbDLHvcmlA33UXJpYBCvlBEbMMtV837uCkS+plG2umfhn0T5mMAxGrlRA=="], + + "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.45.1", "", { "os": "android", "cpu": "arm64" }, "sha512-ujQ+sMXJkg4LRJaYreaVx7Z/VMgBBd89wGS4qMrdtfUFZ+TSY5Rs9asgjitLwzeIbhwdEhyj29zhst3L1lKsRQ=="], + + "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.45.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-FSncqHvqTm3lC6Y13xncsdOYfxGSLnP+73k815EfNmpewPs+EyM49haPS105Rh4aF5mJKywk9X0ogzLXZzN9lA=="], + + "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.45.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-2/vVn/husP5XI7Fsf/RlhDaQJ7x9zjvC81anIVbr4b/f0xtSmXQTFcGIQ/B1cXIYM6h2nAhJkdMHTnD7OtQ9Og=="], + + "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.45.1", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-4g1kaDxQItZsrkVTdYQ0bxu4ZIQ32cotoQbmsAnW1jAE4XCMbcBPDirX5fyUzdhVCKgPcrwWuucI8yrVRBw2+g=="], + + "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.45.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-L/6JsfiL74i3uK1Ti2ZFSNsp5NMiM4/kbbGEcOCps99aZx3g8SJMO1/9Y0n/qKlWZfn6sScf98lEOUe2mBvW9A=="], + + "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.45.1", "", { "os": "linux", "cpu": "arm" }, "sha512-RkdOTu2jK7brlu+ZwjMIZfdV2sSYHK2qR08FUWcIoqJC2eywHbXr0L8T/pONFwkGukQqERDheaGTeedG+rra6Q=="], + + "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.45.1", "", { "os": "linux", "cpu": "arm" }, "sha512-3kJ8pgfBt6CIIr1o+HQA7OZ9mp/zDk3ctekGl9qn/pRBgrRgfwiffaUmqioUGN9hv0OHv2gxmvdKOkARCtRb8Q=="], + + "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.45.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-k3dOKCfIVixWjG7OXTCOmDfJj3vbdhN0QYEqB+OuGArOChek22hn7Uy5A/gTDNAcCy5v2YcXRJ/Qcnm4/ma1xw=="], + + "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.45.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-PmI1vxQetnM58ZmDFl9/Uk2lpBBby6B6rF4muJc65uZbxCs0EA7hhKCk2PKlmZKuyVSHAyIw3+/SiuMLxKxWog=="], + + "@rollup/rollup-linux-loongarch64-gnu": ["@rollup/rollup-linux-loongarch64-gnu@4.45.1", "", { "os": "linux", "cpu": "none" }, "sha512-9UmI0VzGmNJ28ibHW2GpE2nF0PBQqsyiS4kcJ5vK+wuwGnV5RlqdczVocDSUfGX/Na7/XINRVoUgJyFIgipoRg=="], + + "@rollup/rollup-linux-powerpc64le-gnu": ["@rollup/rollup-linux-powerpc64le-gnu@4.45.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-7nR2KY8oEOUTD3pBAxIBBbZr0U7U+R9HDTPNy+5nVVHDXI4ikYniH1oxQz9VoB5PbBU1CZuDGHkLJkd3zLMWsg=="], + + "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.45.1", "", { "os": "linux", "cpu": "none" }, "sha512-nlcl3jgUultKROfZijKjRQLUu9Ma0PeNv/VFHkZiKbXTBQXhpytS8CIj5/NfBeECZtY2FJQubm6ltIxm/ftxpw=="], + + "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.45.1", "", { "os": "linux", "cpu": "none" }, "sha512-HJV65KLS51rW0VY6rvZkiieiBnurSzpzore1bMKAhunQiECPuxsROvyeaot/tcK3A3aGnI+qTHqisrpSgQrpgA=="], + + "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.45.1", "", { "os": "linux", "cpu": "s390x" }, "sha512-NITBOCv3Qqc6hhwFt7jLV78VEO/il4YcBzoMGGNxznLgRQf43VQDae0aAzKiBeEPIxnDrACiMgbqjuihx08OOw=="], + + "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.45.1", "", { "os": "linux", "cpu": "x64" }, "sha512-+E/lYl6qu1zqgPEnTrs4WysQtvc/Sh4fC2nByfFExqgYrqkKWp1tWIbe+ELhixnenSpBbLXNi6vbEEJ8M7fiHw=="], + + "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.45.1", "", { "os": "linux", "cpu": "x64" }, "sha512-a6WIAp89p3kpNoYStITT9RbTbTnqarU7D8N8F2CV+4Cl9fwCOZraLVuVFvlpsW0SbIiYtEnhCZBPLoNdRkjQFw=="], + + "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.45.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-T5Bi/NS3fQiJeYdGvRpTAP5P02kqSOpqiopwhj0uaXB6nzs5JVi2XMJb18JUSKhCOX8+UE1UKQufyD6Or48dJg=="], + + "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.45.1", "", { "os": "win32", "cpu": "ia32" }, "sha512-lxV2Pako3ujjuUe9jiU3/s7KSrDfH6IgTSQOnDWr9aJ92YsFd7EurmClK0ly/t8dzMkDtd04g60WX6yl0sGfdw=="], + + "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.45.1", "", { "os": "win32", "cpu": "x64" }, "sha512-M/fKi4sasCdM8i0aWJjCSFm2qEnYRR8AMLG2kxp6wD13+tMGA4Z1tVAuHkNRjud5SW2EM3naLuK35w9twvf6aA=="], + + "@tailwindcss/node": ["@tailwindcss/node@4.3.0", "", { "dependencies": { "@jridgewell/remapping": "^2.3.5", "enhanced-resolve": "^5.21.0", "jiti": "^2.6.1", "lightningcss": "1.32.0", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", "tailwindcss": "4.3.0" } }, "sha512-aFb4gUhFOgdh9AXo4IzBEOzBkkAxm9VigwDJnMIYv3lcfXCJVesNfbEaBl4BNgVRyid92AmdviqwBUBRKSeY3g=="], + + "@tailwindcss/oxide": ["@tailwindcss/oxide@4.3.0", "", { "optionalDependencies": { "@tailwindcss/oxide-android-arm64": "4.3.0", "@tailwindcss/oxide-darwin-arm64": "4.3.0", "@tailwindcss/oxide-darwin-x64": "4.3.0", "@tailwindcss/oxide-freebsd-x64": "4.3.0", "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.0", "@tailwindcss/oxide-linux-arm64-gnu": "4.3.0", "@tailwindcss/oxide-linux-arm64-musl": "4.3.0", "@tailwindcss/oxide-linux-x64-gnu": "4.3.0", "@tailwindcss/oxide-linux-x64-musl": "4.3.0", "@tailwindcss/oxide-wasm32-wasi": "4.3.0", "@tailwindcss/oxide-win32-arm64-msvc": "4.3.0", "@tailwindcss/oxide-win32-x64-msvc": "4.3.0" } }, "sha512-F7HZGBeN9I0/AuuJS5PwcD8xayx5ri5GhjYUDBEVYUkexyA/giwbDNjRVrxSezE3T250OU2K/wp/ltWx3UOefg=="], + + "@tailwindcss/oxide-android-arm64": ["@tailwindcss/oxide-android-arm64@4.3.0", "", { "os": "android", "cpu": "arm64" }, "sha512-TJPiq67tKlLuObP6RkwvVGDoxCMBVtDgKkLfa/uyj7/FyxvQwHS+UOnVrXXgbEsfUaMgiVvC4KbJnRr26ho4Ng=="], + + "@tailwindcss/oxide-darwin-arm64": ["@tailwindcss/oxide-darwin-arm64@4.3.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-oMN/WZRb+SO37BmUElEgeEWuU8E/HXRkiODxJxLe1UTHVXLrdVSgfaJV7pSlhRGMSOiXLuxTIjfsF3wYvz8cgQ=="], + + "@tailwindcss/oxide-darwin-x64": ["@tailwindcss/oxide-darwin-x64@4.3.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-N6CUmu4a6bKVADfw77p+iw6Yd9Q3OBhe0veaDX+QazfuVYlQsHfDgxBrsjQ/IW+zywL8mTrNd0SdJT/zgtvMdA=="], + + "@tailwindcss/oxide-freebsd-x64": ["@tailwindcss/oxide-freebsd-x64@4.3.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-zDL5hBkQdH5C6MpqbK3gQAgP80tsMwSI26vjOzjJtNCMUo0lFgOItzHKBIupOZNQxt3ouPH7RPhvNhiTfCe5CQ=="], + + "@tailwindcss/oxide-linux-arm-gnueabihf": ["@tailwindcss/oxide-linux-arm-gnueabihf@4.3.0", "", { "os": "linux", "cpu": "arm" }, "sha512-R06HdNi7A7OEoMsf6d4tjZ71RCWnZQPHj2mnotSFURjNLdBC+cIgXQ7l81CqeoiQftjf6OOblxXMInMgN2VzMA=="], + + "@tailwindcss/oxide-linux-arm64-gnu": ["@tailwindcss/oxide-linux-arm64-gnu@4.3.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-qTJHELX8jetjhRQHCLilkVLmybpzNQAtaI/gaoVoidn/ufbNDbAo8KlK2J+yPoc8wQxvDxCmh/5lr8nC1+lTbg=="], + + "@tailwindcss/oxide-linux-arm64-musl": ["@tailwindcss/oxide-linux-arm64-musl@4.3.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-Z6sukiQsngnWO+l39X4pPbiWT81IC+PLKF+PHxIlyZbGNb9MODfYlXEVlFvej5BOZInWX01kVyzeLvHsXhfczQ=="], + + "@tailwindcss/oxide-linux-x64-gnu": ["@tailwindcss/oxide-linux-x64-gnu@4.3.0", "", { "os": "linux", "cpu": "x64" }, "sha512-DRNdQRpSGzRGfARVuVkxvM8Q12nh19l4BF/G7zGA1oe+9wcC6saFBHTISrpIcKzhiXtSrlSrluCfvMuledoCTQ=="], + + "@tailwindcss/oxide-linux-x64-musl": ["@tailwindcss/oxide-linux-x64-musl@4.3.0", "", { "os": "linux", "cpu": "x64" }, "sha512-Z0IADbDo8bh6I7h2IQMx601AdXBLfFpEdUotft86evd/8ZPflZe9COPO8Q1vw+pfLWIUo9zN/JGZvwuAJqduqg=="], + + "@tailwindcss/oxide-wasm32-wasi": ["@tailwindcss/oxide-wasm32-wasi@4.3.0", "", { "dependencies": { "@emnapi/core": "^1.10.0", "@emnapi/runtime": "^1.10.0", "@emnapi/wasi-threads": "^1.2.1", "@napi-rs/wasm-runtime": "^1.1.4", "@tybys/wasm-util": "^0.10.1", "tslib": "^2.8.1" }, "cpu": "none" }, "sha512-HNZGOUxEmElksYR7S6sC5jTeNGpobAsy9u7Gu0AskJ8/20FR9GqebUyB+HBcU/ax6BHuiuJi+Oda4B+YX6H1yA=="], + + "@tailwindcss/oxide-win32-arm64-msvc": ["@tailwindcss/oxide-win32-arm64-msvc@4.3.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-Pe+RPVTi1T+qymuuRpcdvwSVZjnll/f7n8gBxMMh3xLTctMDKqpdfGimbMyioqtLhUYZxdJ9wGNhV7MKHvgZsQ=="], + + "@tailwindcss/oxide-win32-x64-msvc": ["@tailwindcss/oxide-win32-x64-msvc@4.3.0", "", { "os": "win32", "cpu": "x64" }, "sha512-Mvrf2kXW/yeW/OTezZlCGOirXRcUuLIBx/5Y12BaPM7wJoryG6dfS/NJL8aBPqtTEx/Vm4T4vKzFUcKDT+TKUA=="], + + "@tailwindcss/vite": ["@tailwindcss/vite@4.3.0", "", { "dependencies": { "@tailwindcss/node": "4.3.0", "@tailwindcss/oxide": "4.3.0", "tailwindcss": "4.3.0" }, "peerDependencies": { "vite": "^5.2.0 || ^6 || ^7 || ^8" } }, "sha512-t6J3OrB5Fc0ExuhohouH0fWUGMYL6PTLhW+E7zIk/pdbnJARZDCwjBznFnkh5ynRnIRSI4YjtTH0t6USjJISrw=="], + + "@types/babel__core": ["@types/babel__core@7.20.5", "", { "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" } }, "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA=="], + + "@types/babel__generator": ["@types/babel__generator@7.27.0", "", { "dependencies": { "@babel/types": "^7.0.0" } }, "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg=="], + + "@types/babel__template": ["@types/babel__template@7.4.4", "", { "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" } }, "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A=="], + + "@types/babel__traverse": ["@types/babel__traverse@7.20.7", "", { "dependencies": { "@babel/types": "^7.20.7" } }, "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng=="], + + "@types/bun": ["@types/bun@1.3.14", "", { "dependencies": { "bun-types": "1.3.14" } }, "sha512-h1hFqFVcvAvD9j9K7ZW7vd82aSA+rTdznZa+5bwvCwqSB1jmmfLcbIWhOLx1/+boy/xmjgCs/OMUL8hRJSmnPw=="], + + "@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="], + + "@types/json-schema": ["@types/json-schema@7.0.15", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="], + + "@types/node": ["@types/node@22.19.2", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-LPM2G3Syo1GLzXLGJAKdqoU35XvrWzGJ21/7sgZTUpbkBaOasTj8tjwn6w+hCkqaa1TfJ/w67rJSwYItlJ2mYw=="], + + "@types/qrcode": ["@types/qrcode@1.5.6", "", { "dependencies": { "@types/node": "*" } }, "sha512-te7NQcV2BOvdj2b1hCAHzAoMNuj65kNBMz0KBaxM6c3VGBOhU0dURQKOtH8CFNI/dsKkwlv32p26qYQTWoB5bw=="], + + "@types/react": ["@types/react@19.2.7", "", { "dependencies": { "csstype": "^3.2.2" } }, "sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg=="], + + "@types/react-dom": ["@types/react-dom@19.2.3", "", { "peerDependencies": { "@types/react": "^19.2.0" } }, "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ=="], + + "@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.49.0", "", { "dependencies": { "@eslint-community/regexpp": "^4.10.0", "@typescript-eslint/scope-manager": "8.49.0", "@typescript-eslint/type-utils": "8.49.0", "@typescript-eslint/utils": "8.49.0", "@typescript-eslint/visitor-keys": "8.49.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "@typescript-eslint/parser": "^8.49.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-JXij0vzIaTtCwu6SxTh8qBc66kmf1xs7pI4UOiMDFVct6q86G0Zs7KRcEoJgY3Cav3x5Tq0MF5jwgpgLqgKG3A=="], + + "@typescript-eslint/parser": ["@typescript-eslint/parser@8.49.0", "", { "dependencies": { "@typescript-eslint/scope-manager": "8.49.0", "@typescript-eslint/types": "8.49.0", "@typescript-eslint/typescript-estree": "8.49.0", "@typescript-eslint/visitor-keys": "8.49.0", "debug": "^4.3.4" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-N9lBGA9o9aqb1hVMc9hzySbhKibHmB+N3IpoShyV6HyQYRGIhlrO5rQgttypi+yEeKsKI4idxC8Jw6gXKD4THA=="], + + "@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.49.0", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.49.0", "@typescript-eslint/types": "^8.49.0", "debug": "^4.3.4" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-/wJN0/DKkmRUMXjZUXYZpD1NEQzQAAn9QWfGwo+Ai8gnzqH7tvqS7oNVdTjKqOcPyVIdZdyCMoqN66Ia789e7g=="], + + "@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.49.0", "", { "dependencies": { "@typescript-eslint/types": "8.49.0", "@typescript-eslint/visitor-keys": "8.49.0" } }, "sha512-npgS3zi+/30KSOkXNs0LQXtsg9ekZ8OISAOLGWA/ZOEn0ZH74Ginfl7foziV8DT+D98WfQ5Kopwqb/PZOaIJGg=="], + + "@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.49.0", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-8prixNi1/6nawsRYxet4YOhnbW+W9FK/bQPxsGB1D3ZrDzbJ5FXw5XmzxZv82X3B+ZccuSxo/X8q9nQ+mFecWA=="], + + "@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.49.0", "", { "dependencies": { "@typescript-eslint/types": "8.49.0", "@typescript-eslint/typescript-estree": "8.49.0", "@typescript-eslint/utils": "8.49.0", "debug": "^4.3.4", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-KTExJfQ+svY8I10P4HdxKzWsvtVnsuCifU5MvXrRwoP2KOlNZ9ADNEWWsQTJgMxLzS5VLQKDjkCT/YzgsnqmZg=="], + + "@typescript-eslint/types": ["@typescript-eslint/types@8.49.0", "", {}, "sha512-e9k/fneezorUo6WShlQpMxXh8/8wfyc+biu6tnAqA81oWrEic0k21RHzP9uqqpyBBeBKu4T+Bsjy9/b8u7obXQ=="], + + "@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.49.0", "", { "dependencies": { "@typescript-eslint/project-service": "8.49.0", "@typescript-eslint/tsconfig-utils": "8.49.0", "@typescript-eslint/types": "8.49.0", "@typescript-eslint/visitor-keys": "8.49.0", "debug": "^4.3.4", "minimatch": "^9.0.4", "semver": "^7.6.0", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-jrLdRuAbPfPIdYNppHJ/D0wN+wwNfJ32YTAm10eJVsFmrVpXQnDWBn8niCSMlWjvml8jsce5E/O+86IQtTbJWA=="], + + "@typescript-eslint/utils": ["@typescript-eslint/utils@8.49.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", "@typescript-eslint/scope-manager": "8.49.0", "@typescript-eslint/types": "8.49.0", "@typescript-eslint/typescript-estree": "8.49.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-N3W7rJw7Rw+z1tRsHZbK395TWSYvufBXumYtEGzypgMUthlg0/hmCImeA8hgO2d2G4pd7ftpxxul2J8OdtdaFA=="], + + "@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.49.0", "", { "dependencies": { "@typescript-eslint/types": "8.49.0", "eslint-visitor-keys": "^4.2.1" } }, "sha512-LlKaciDe3GmZFphXIc79THF/YYBugZ7FS1pO581E/edlVVNbZKDy93evqmrfQ9/Y4uN0vVhX4iuchq26mK/iiA=="], + + "@vitejs/plugin-react": ["@vitejs/plugin-react@4.7.0", "", { "dependencies": { "@babel/core": "^7.28.0", "@babel/plugin-transform-react-jsx-self": "^7.27.1", "@babel/plugin-transform-react-jsx-source": "^7.27.1", "@rolldown/pluginutils": "1.0.0-beta.27", "@types/babel__core": "^7.20.5", "react-refresh": "^0.17.0" }, "peerDependencies": { "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" } }, "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA=="], + + "acorn": ["acorn@8.15.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg=="], + + "acorn-jsx": ["acorn-jsx@5.3.2", "", { "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="], + + "ajv": ["ajv@6.12.6", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="], + + "ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], + + "ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + + "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], + + "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], + + "brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], + + "browserslist": ["browserslist@4.25.1", "", { "dependencies": { "caniuse-lite": "^1.0.30001726", "electron-to-chromium": "^1.5.173", "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw=="], + + "bun-types": ["bun-types@1.3.4", "", { "dependencies": { "@types/node": "*" } }, "sha512-5ua817+BZPZOlNaRgGBpZJOSAQ9RQ17pkwPD0yR7CfJg+r8DgIILByFifDTa+IPDDxzf5VNhtNlcKqFzDgJvlQ=="], + + "callsites": ["callsites@3.1.0", "", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="], + + "camelcase": ["camelcase@5.3.1", "", {}, "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="], + + "caniuse-lite": ["caniuse-lite@1.0.30001727", "", {}, "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q=="], + + "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + + "class-variance-authority": ["class-variance-authority@0.7.1", "", { "dependencies": { "clsx": "^2.1.1" } }, "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg=="], + + "client": ["client@workspace:client"], + + "cliui": ["cliui@6.0.0", "", { "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^6.2.0" } }, "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ=="], + + "clsx": ["clsx@2.1.1", "", {}, "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="], + + "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], + + "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], + + "concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="], + + "convert-source-map": ["convert-source-map@2.0.0", "", {}, "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="], + + "cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="], + + "csstype": ["csstype@3.2.3", "", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="], + + "debug": ["debug@4.4.1", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ=="], + + "decamelize": ["decamelize@1.2.0", "", {}, "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA=="], + + "deep-is": ["deep-is@0.1.4", "", {}, "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="], + + "detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="], + + "dijkstrajs": ["dijkstrajs@1.0.3", "", {}, "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA=="], + + "electron-to-chromium": ["electron-to-chromium@1.5.189", "", {}, "sha512-y9D1ntS1ruO/pZ/V2FtLE+JXLQe28XoRpZ7QCCo0T8LdQladzdcOVQZH/IWLVJvCw12OGMb6hYOeOAjntCmJRQ=="], + + "emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], + + "enhanced-resolve": ["enhanced-resolve@5.21.6", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.3.3" } }, "sha512-aNnGCvbJ/RIyWo1IuhNdVjnNF+EjH9wpzpNHt+ci/m9He9LJvUN8wrCcXjp9cWsGNAuvSpVFTx/vraAFQ8qGjQ=="], + + "esbuild": ["esbuild@0.25.8", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.8", "@esbuild/android-arm": "0.25.8", "@esbuild/android-arm64": "0.25.8", "@esbuild/android-x64": "0.25.8", "@esbuild/darwin-arm64": "0.25.8", "@esbuild/darwin-x64": "0.25.8", "@esbuild/freebsd-arm64": "0.25.8", "@esbuild/freebsd-x64": "0.25.8", "@esbuild/linux-arm": "0.25.8", "@esbuild/linux-arm64": "0.25.8", "@esbuild/linux-ia32": "0.25.8", "@esbuild/linux-loong64": "0.25.8", "@esbuild/linux-mips64el": "0.25.8", "@esbuild/linux-ppc64": "0.25.8", "@esbuild/linux-riscv64": "0.25.8", "@esbuild/linux-s390x": "0.25.8", "@esbuild/linux-x64": "0.25.8", "@esbuild/netbsd-arm64": "0.25.8", "@esbuild/netbsd-x64": "0.25.8", "@esbuild/openbsd-arm64": "0.25.8", "@esbuild/openbsd-x64": "0.25.8", "@esbuild/openharmony-arm64": "0.25.8", "@esbuild/sunos-x64": "0.25.8", "@esbuild/win32-arm64": "0.25.8", "@esbuild/win32-ia32": "0.25.8", "@esbuild/win32-x64": "0.25.8" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q=="], + + "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], + + "escape-string-regexp": ["escape-string-regexp@4.0.0", "", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="], + + "eslint": ["eslint@9.39.2", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.21.1", "@eslint/config-helpers": "^0.4.2", "@eslint/core": "^0.17.0", "@eslint/eslintrc": "^3.3.1", "@eslint/js": "9.39.2", "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^8.4.0", "eslint-visitor-keys": "^4.2.1", "espree": "^10.4.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, "peerDependencies": { "jiti": "*" }, "optionalPeers": ["jiti"], "bin": { "eslint": "bin/eslint.js" } }, "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw=="], + + "eslint-plugin-react-hooks": ["eslint-plugin-react-hooks@5.2.0", "", { "peerDependencies": { "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" } }, "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg=="], + + "eslint-plugin-react-refresh": ["eslint-plugin-react-refresh@0.4.24", "", { "peerDependencies": { "eslint": ">=8.40" } }, "sha512-nLHIW7TEq3aLrEYWpVaJ1dRgFR+wLDPN8e8FpYAql/bMV2oBEfC37K0gLEGgv9fy66juNShSMV8OkTqzltcG/w=="], + + "eslint-scope": ["eslint-scope@8.4.0", "", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" } }, "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg=="], + + "eslint-visitor-keys": ["eslint-visitor-keys@4.2.1", "", {}, "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ=="], + + "espree": ["espree@10.4.0", "", { "dependencies": { "acorn": "^8.15.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^4.2.1" } }, "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ=="], + + "esquery": ["esquery@1.6.0", "", { "dependencies": { "estraverse": "^5.1.0" } }, "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg=="], + + "esrecurse": ["esrecurse@4.3.0", "", { "dependencies": { "estraverse": "^5.2.0" } }, "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag=="], + + "estraverse": ["estraverse@5.3.0", "", {}, "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="], + + "esutils": ["esutils@2.0.3", "", {}, "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="], + + "fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="], + + "fast-json-stable-stringify": ["fast-json-stable-stringify@2.1.0", "", {}, "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="], + + "fast-levenshtein": ["fast-levenshtein@2.0.6", "", {}, "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="], + + "fdir": ["fdir@6.4.6", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w=="], + + "file-entry-cache": ["file-entry-cache@8.0.0", "", { "dependencies": { "flat-cache": "^4.0.0" } }, "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ=="], + + "find-up": ["find-up@5.0.0", "", { "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="], + + "flat-cache": ["flat-cache@4.0.1", "", { "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.4" } }, "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw=="], + + "flatted": ["flatted@3.3.3", "", {}, "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg=="], + + "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], + + "gensync": ["gensync@1.0.0-beta.2", "", {}, "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="], + + "get-caller-file": ["get-caller-file@2.0.5", "", {}, "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="], + + "glob-parent": ["glob-parent@6.0.2", "", { "dependencies": { "is-glob": "^4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="], + + "globals": ["globals@16.5.0", "", {}, "sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ=="], + + "graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="], + + "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], + + "hono": ["hono@4.10.8", "", {}, "sha512-DDT0A0r6wzhe8zCGoYOmMeuGu3dyTAE40HHjwUsWFTEy5WxK1x2WDSsBPlEXgPbRIFY6miDualuUDbasPogIww=="], + + "ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="], + + "import-fresh": ["import-fresh@3.3.1", "", { "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" } }, "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ=="], + + "imurmurhash": ["imurmurhash@0.1.4", "", {}, "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="], + + "is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="], + + "is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="], + + "is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="], + + "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], + + "jiti": ["jiti@2.7.0", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ=="], + + "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], + + "js-yaml": ["js-yaml@4.1.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="], + + "jsesc": ["jsesc@3.1.0", "", { "bin": { "jsesc": "bin/jsesc" } }, "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA=="], + + "json-buffer": ["json-buffer@3.0.1", "", {}, "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="], + + "json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="], + + "json-stable-stringify-without-jsonify": ["json-stable-stringify-without-jsonify@1.0.1", "", {}, "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="], + + "json5": ["json5@2.2.3", "", { "bin": { "json5": "lib/cli.js" } }, "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="], + + "keyv": ["keyv@4.5.4", "", { "dependencies": { "json-buffer": "3.0.1" } }, "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw=="], + + "levn": ["levn@0.4.1", "", { "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="], + + "lightningcss": ["lightningcss@1.32.0", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.32.0", "lightningcss-darwin-arm64": "1.32.0", "lightningcss-darwin-x64": "1.32.0", "lightningcss-freebsd-x64": "1.32.0", "lightningcss-linux-arm-gnueabihf": "1.32.0", "lightningcss-linux-arm64-gnu": "1.32.0", "lightningcss-linux-arm64-musl": "1.32.0", "lightningcss-linux-x64-gnu": "1.32.0", "lightningcss-linux-x64-musl": "1.32.0", "lightningcss-win32-arm64-msvc": "1.32.0", "lightningcss-win32-x64-msvc": "1.32.0" } }, "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ=="], + + "lightningcss-android-arm64": ["lightningcss-android-arm64@1.32.0", "", { "os": "android", "cpu": "arm64" }, "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg=="], + + "lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.32.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ=="], + + "lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.32.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w=="], + + "lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.32.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig=="], + + "lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.32.0", "", { "os": "linux", "cpu": "arm" }, "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw=="], + + "lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.32.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ=="], + + "lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.32.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg=="], + + "lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.32.0", "", { "os": "linux", "cpu": "x64" }, "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA=="], + + "lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.32.0", "", { "os": "linux", "cpu": "x64" }, "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg=="], + + "lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.32.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw=="], + + "lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.32.0", "", { "os": "win32", "cpu": "x64" }, "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q=="], + + "locate-path": ["locate-path@6.0.0", "", { "dependencies": { "p-locate": "^5.0.0" } }, "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="], + + "lodash.merge": ["lodash.merge@4.6.2", "", {}, "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="], + + "lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], + + "lucide-react": ["lucide-react@0.454.0", "", { "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc" } }, "sha512-hw7zMDwykCLnEzgncEEjHeA6+45aeEzRYuKHuyRSOPkhko+J3ySGjGIzu+mmMfDFG1vazHepMaYFYHbTFAZAAQ=="], + + "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], + + "minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], + + "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + + "nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="], + + "natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="], + + "node-releases": ["node-releases@2.0.19", "", {}, "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw=="], + + "optionator": ["optionator@0.9.4", "", { "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.5" } }, "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g=="], + + "p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="], + + "p-locate": ["p-locate@5.0.0", "", { "dependencies": { "p-limit": "^3.0.2" } }, "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="], + + "p-try": ["p-try@2.2.0", "", {}, "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="], + + "parent-module": ["parent-module@1.0.1", "", { "dependencies": { "callsites": "^3.0.0" } }, "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="], + + "path-exists": ["path-exists@4.0.0", "", {}, "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="], + + "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], + + "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], + + "picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], + + "pngjs": ["pngjs@5.0.0", "", {}, "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw=="], + + "postcss": ["postcss@8.5.6", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg=="], + + "prelude-ls": ["prelude-ls@1.2.1", "", {}, "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="], + + "punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="], + + "qrcode": ["qrcode@1.5.4", "", { "dependencies": { "dijkstrajs": "^1.0.1", "pngjs": "^5.0.0", "yargs": "^15.3.1" }, "bin": { "qrcode": "bin/qrcode" } }, "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg=="], + + "react": ["react@19.2.3", "", {}, "sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA=="], + + "react-dom": ["react-dom@19.2.3", "", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.3" } }, "sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg=="], + + "react-refresh": ["react-refresh@0.17.0", "", {}, "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ=="], + + "require-directory": ["require-directory@2.1.1", "", {}, "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="], + + "require-main-filename": ["require-main-filename@2.0.0", "", {}, "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="], + + "resolve-from": ["resolve-from@4.0.0", "", {}, "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="], + + "rollup": ["rollup@4.45.1", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.45.1", "@rollup/rollup-android-arm64": "4.45.1", "@rollup/rollup-darwin-arm64": "4.45.1", "@rollup/rollup-darwin-x64": "4.45.1", "@rollup/rollup-freebsd-arm64": "4.45.1", "@rollup/rollup-freebsd-x64": "4.45.1", "@rollup/rollup-linux-arm-gnueabihf": "4.45.1", "@rollup/rollup-linux-arm-musleabihf": "4.45.1", "@rollup/rollup-linux-arm64-gnu": "4.45.1", "@rollup/rollup-linux-arm64-musl": "4.45.1", "@rollup/rollup-linux-loongarch64-gnu": "4.45.1", "@rollup/rollup-linux-powerpc64le-gnu": "4.45.1", "@rollup/rollup-linux-riscv64-gnu": "4.45.1", "@rollup/rollup-linux-riscv64-musl": "4.45.1", "@rollup/rollup-linux-s390x-gnu": "4.45.1", "@rollup/rollup-linux-x64-gnu": "4.45.1", "@rollup/rollup-linux-x64-musl": "4.45.1", "@rollup/rollup-win32-arm64-msvc": "4.45.1", "@rollup/rollup-win32-ia32-msvc": "4.45.1", "@rollup/rollup-win32-x64-msvc": "4.45.1", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-4iya7Jb76fVpQyLoiVpzUrsjQ12r3dM7fIVz+4NwoYvZOShknRmiv+iu9CClZml5ZLGb0XMcYLutK6w9tgxHDw=="], + + "scheduler": ["scheduler@0.27.0", "", {}, "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="], + + "semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + + "server": ["server@workspace:server"], + + "set-blocking": ["set-blocking@2.0.0", "", {}, "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="], + + "shared": ["shared@workspace:shared"], + + "shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="], + + "shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="], + + "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], + + "string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], + + "strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], + + "strip-json-comments": ["strip-json-comments@3.1.1", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="], + + "supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], + + "tailwind-merge": ["tailwind-merge@2.6.1", "", {}, "sha512-Oo6tHdpZsGpkKG88HJ8RR1rg/RdnEkQEfMoEk2x1XRI3F1AxeU+ijRXpiVUF4UbLfcxxRGw6TbUINKYdWVsQTQ=="], + + "tailwindcss": ["tailwindcss@4.3.0", "", {}, "sha512-y6nxMGB1nMW9R6k96e5gdIFzcfL/gTJRNaqGes1YvkLnPVXzWgbqFF2yLC0T8G774n24cx3Pe8XrKoniCOAH+Q=="], + + "tapable": ["tapable@2.3.3", "", {}, "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A=="], + + "tinyglobby": ["tinyglobby@0.2.14", "", { "dependencies": { "fdir": "^6.4.4", "picomatch": "^4.0.2" } }, "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ=="], + + "ts-api-utils": ["ts-api-utils@2.1.0", "", { "peerDependencies": { "typescript": ">=4.8.4" } }, "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ=="], + + "turbo": ["turbo@2.6.3", "", { "optionalDependencies": { "turbo-darwin-64": "2.6.3", "turbo-darwin-arm64": "2.6.3", "turbo-linux-64": "2.6.3", "turbo-linux-arm64": "2.6.3", "turbo-windows-64": "2.6.3", "turbo-windows-arm64": "2.6.3" }, "bin": { "turbo": "bin/turbo" } }, "sha512-bf6YKUv11l5Xfcmg76PyWoy/e2vbkkxFNBGJSnfdSXQC33ZiUfutYh6IXidc5MhsnrFkWfdNNLyaRk+kHMLlwA=="], + + "turbo-darwin-64": ["turbo-darwin-64@2.6.3", "", { "os": "darwin", "cpu": "x64" }, "sha512-BlJJDc1CQ7SK5Y5qnl7AzpkvKSnpkfPmnA+HeU/sgny3oHZckPV2776ebO2M33CYDSor7+8HQwaodY++IINhYg=="], + + "turbo-darwin-arm64": ["turbo-darwin-arm64@2.6.3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-MwVt7rBKiOK7zdYerenfCRTypefw4kZCue35IJga9CH1+S50+KTiCkT6LBqo0hHeoH2iKuI0ldTF2a0aB72z3w=="], + + "turbo-linux-64": ["turbo-linux-64@2.6.3", "", { "os": "linux", "cpu": "x64" }, "sha512-cqpcw+dXxbnPtNnzeeSyWprjmuFVpHJqKcs7Jym5oXlu/ZcovEASUIUZVN3OGEM6Y/OTyyw0z09tOHNt5yBAVg=="], + + "turbo-linux-arm64": ["turbo-linux-arm64@2.6.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-MterpZQmjXyr4uM7zOgFSFL3oRdNKeflY7nsjxJb2TklsYqiu3Z9pQ4zRVFFH8n0mLGna7MbQMZuKoWqqHb45w=="], + + "turbo-windows-64": ["turbo-windows-64@2.6.3", "", { "os": "win32", "cpu": "x64" }, "sha512-biDU70v9dLwnBdLf+daoDlNJVvqOOP8YEjqNipBHzgclbQlXbsi6Gqqelp5er81Qo3BiRgmTNx79oaZQTPb07Q=="], + + "turbo-windows-arm64": ["turbo-windows-arm64@2.6.3", "", { "os": "win32", "cpu": "arm64" }, "sha512-dDHVKpSeukah3VsI/xMEKeTnV9V9cjlpFSUs4bmsUiLu3Yv2ENlgVEZv65wxbeE0bh0jjpmElDT+P1KaCxArQQ=="], + + "tw-animate-css": ["tw-animate-css@1.4.0", "", {}, "sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ=="], + + "type-check": ["type-check@0.4.0", "", { "dependencies": { "prelude-ls": "^1.2.1" } }, "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="], + + "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], + + "typescript-eslint": ["typescript-eslint@8.49.0", "", { "dependencies": { "@typescript-eslint/eslint-plugin": "8.49.0", "@typescript-eslint/parser": "8.49.0", "@typescript-eslint/typescript-estree": "8.49.0", "@typescript-eslint/utils": "8.49.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-zRSVH1WXD0uXczCXw+nsdjGPUdx4dfrs5VQoHnUWmv1U3oNlAKv4FUNdLDhVUg+gYn+a5hUESqch//Rv5wVhrg=="], + + "undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="], + + "update-browserslist-db": ["update-browserslist-db@1.1.3", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw=="], + + "uri-js": ["uri-js@4.4.1", "", { "dependencies": { "punycode": "^2.1.0" } }, "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="], + + "vite": ["vite@6.4.1", "", { "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", "picomatch": "^4.0.2", "postcss": "^8.5.3", "rollup": "^4.34.9", "tinyglobby": "^0.2.13" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g=="], + + "which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], + + "which-module": ["which-module@2.0.1", "", {}, "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ=="], + + "word-wrap": ["word-wrap@1.2.5", "", {}, "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA=="], + + "wrap-ansi": ["wrap-ansi@6.2.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA=="], + + "y18n": ["y18n@4.0.3", "", {}, "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="], + + "yallist": ["yallist@3.1.1", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="], + + "yargs": ["yargs@15.4.1", "", { "dependencies": { "cliui": "^6.0.0", "decamelize": "^1.2.0", "find-up": "^4.1.0", "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", "string-width": "^4.2.0", "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^18.1.2" } }, "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A=="], + + "yargs-parser": ["yargs-parser@18.1.3", "", { "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" } }, "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ=="], + + "yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="], + + "@eslint-community/eslint-utils/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="], + + "@eslint/eslintrc/globals": ["globals@14.0.0", "", {}, "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ=="], + + "@humanfs/node/@humanwhocodes/retry": ["@humanwhocodes/retry@0.3.1", "", {}, "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA=="], + + "@jridgewell/gen-mapping/@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.4", "", {}, "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw=="], + + "@jridgewell/trace-mapping/@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.4", "", {}, "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw=="], + + "@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.10.0", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.1", "tslib": "^2.4.0" }, "bundled": true }, "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw=="], + + "@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.10.0", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA=="], + + "@tailwindcss/oxide-wasm32-wasi/@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.2.1", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w=="], + + "@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.4", "", { "dependencies": { "@tybys/wasm-util": "^0.10.1" }, "peerDependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1" }, "bundled": true }, "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow=="], + + "@tailwindcss/oxide-wasm32-wasi/@tybys/wasm-util": ["@tybys/wasm-util@0.10.2", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg=="], + + "@tailwindcss/oxide-wasm32-wasi/tslib": ["tslib@2.8.1", "", { "bundled": true }, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "@types/bun/bun-types": ["bun-types@1.3.14", "", { "dependencies": { "@types/node": "*" } }, "sha512-4N0ig0fEomHt5R0KCFWjovxow98rIoRwKolrYdCcknNwMekCXRnWEUvgu5soYV8QXtVsrUD8B95MBOZGPvr6KQ=="], + + "@typescript-eslint/eslint-plugin/ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="], + + "@typescript-eslint/typescript-estree/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], + + "@typescript-eslint/typescript-estree/semver": ["semver@7.7.2", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA=="], + + "@typescript-eslint/typescript-estree/tinyglobby": ["tinyglobby@0.2.15", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="], + + "bun-types/@types/node": ["@types/node@22.16.5", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-bJFoMATwIGaxxx8VJPeM8TonI8t579oRvgAuT8zFugJsJZgzqv0Fu8Mhp68iecjzG7cnN3mO2dJQ5uUM2EFrgQ=="], + + "client/typescript": ["typescript@5.7.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw=="], + + "yargs/find-up": ["find-up@4.1.0", "", { "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" } }, "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw=="], + + "@typescript-eslint/typescript-estree/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], + + "@typescript-eslint/typescript-estree/tinyglobby/fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], + + "yargs/find-up/locate-path": ["locate-path@5.0.0", "", { "dependencies": { "p-locate": "^4.1.0" } }, "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g=="], + + "yargs/find-up/locate-path/p-locate": ["p-locate@4.1.0", "", { "dependencies": { "p-limit": "^2.2.0" } }, "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A=="], + + "yargs/find-up/locate-path/p-locate/p-limit": ["p-limit@2.3.0", "", { "dependencies": { "p-try": "^2.0.0" } }, "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="], + } +} diff --git a/client/.gitignore b/client/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/client/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/client/README.md b/client/README.md new file mode 100644 index 0000000..da98444 --- /dev/null +++ b/client/README.md @@ -0,0 +1,54 @@ +# React + TypeScript + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh + +## Expanding the ESLint configuration + +If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules: + +```js +export default tseslint.config({ + extends: [ + // Remove ...tseslint.configs.recommended and replace with this + ...tseslint.configs.recommendedTypeChecked, + // Alternatively, use this for stricter rules + ...tseslint.configs.strictTypeChecked, + // Optionally, add this for stylistic rules + ...tseslint.configs.stylisticTypeChecked, + ], + languageOptions: { + // other options... + parserOptions: { + project: ['./tsconfig.node.json', './tsconfig.app.json'], + tsconfigRootDir: import.meta.dirname, + }, + }, +}) +``` + +You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules: + +```js +// eslint.config.js +import reactX from 'eslint-plugin-react-x' +import reactDom from 'eslint-plugin-react-dom' + +export default tseslint.config({ + plugins: { + // Add the react-x and react-dom plugins + 'react-x': reactX, + 'react-dom': reactDom, + }, + rules: { + // other rules... + // Enable its recommended typescript rules + ...reactX.configs['recommended-typescript'].rules, + ...reactDom.configs.recommended.rules, + }, +}) +``` diff --git a/client/eslint.config.js b/client/eslint.config.js new file mode 100644 index 0000000..092408a --- /dev/null +++ b/client/eslint.config.js @@ -0,0 +1,28 @@ +import js from '@eslint/js' +import globals from 'globals' +import reactHooks from 'eslint-plugin-react-hooks' +import reactRefresh from 'eslint-plugin-react-refresh' +import tseslint from 'typescript-eslint' + +export default tseslint.config( + { ignores: ['dist'] }, + { + extends: [js.configs.recommended, ...tseslint.configs.recommended], + files: ['**/*.{ts,tsx}'], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + }, + plugins: { + 'react-hooks': reactHooks, + 'react-refresh': reactRefresh, + }, + rules: { + ...reactHooks.configs.recommended.rules, + 'react-refresh/only-export-components': [ + 'warn', + { allowConstantExport: true }, + ], + }, + }, +) diff --git a/client/index.html b/client/index.html new file mode 100644 index 0000000..6247d9e --- /dev/null +++ b/client/index.html @@ -0,0 +1,28 @@ + + + + + + + + QRIS Dynamic — Payment Generator + + + +
+ + + diff --git a/client/package.json b/client/package.json new file mode 100644 index 0000000..d16d27a --- /dev/null +++ b/client/package.json @@ -0,0 +1,44 @@ +{ + "name": "client", + "private": true, + "version": "0.0.1", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc -b && vite build", + "lint": "eslint .", + "preview": "vite preview", + "type-check": "tsc -b --noEmit" + }, + "dependencies": { + "@radix-ui/react-label": "^2.1.7", + "@radix-ui/react-slot": "^1.2.2", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "lucide-react": "^0.454.0", + "qrcode": "^1.5.4", + "react": "^19.2.3", + "react-dom": "^19.2.3", + "server": "workspace:*", + "shared": "workspace:*", + "tailwind-merge": "^2.5.5" + }, + "devDependencies": { + "@eslint/js": "^9.39.2", + "@tailwindcss/vite": "^4.1.9", + "@types/node": "^22.19.2", + "@types/qrcode": "^1.5.5", + "@types/react": "^19.2.7", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^4.7.0", + "eslint": "^9.39.2", + "eslint-plugin-react-hooks": "^5.2.0", + "eslint-plugin-react-refresh": "^0.4.24", + "globals": "^16.5.0", + "tailwindcss": "^4.1.9", + "tw-animate-css": "^1.4.0", + "typescript": "~5.7.3", + "typescript-eslint": "^8.49.0", + "vite": "^6.4.1" + } +} diff --git a/public/yuki-host-logo.png b/client/public/yuki-host-logo.png similarity index 100% rename from public/yuki-host-logo.png rename to client/public/yuki-host-logo.png diff --git a/client/src/App.tsx b/client/src/App.tsx new file mode 100644 index 0000000..128007c --- /dev/null +++ b/client/src/App.tsx @@ -0,0 +1,78 @@ +import { QRISGenerator } from '@/components/qris-generator' +import { ThemeToggle } from '@/components/theme-toggle' +import { FloatingShapes } from '@/components/floating-shapes' + +function App() { + return ( +
+ + +
+
+
+
+
+ + + +
+
+

+ QRIS Dynamic +

+

Payment Generator

+
+
+ +
+
+ +
+
+
+
+ Instant • Secure • Easy +
+

+ Generate Dynamic{' '} + + QRIS + +

+

+ Transform your static QRIS into dynamic payment codes with custom amounts in seconds +

+
+ + +
+
+ +
+
+

QRIS Dynamic Generator • Secure Payment Processing

+

Built with BHVR — Bun + Hono + Vite + React

+

+ © 2025 Copyright By{' '} + + AmmarBN + +

+
+
+
+
+ ) +} + +export default App diff --git a/client/src/components/floating-shapes.tsx b/client/src/components/floating-shapes.tsx new file mode 100644 index 0000000..a127948 --- /dev/null +++ b/client/src/components/floating-shapes.tsx @@ -0,0 +1,24 @@ +export function FloatingShapes() { + return ( +
+
+
+
+
+ +
+
+ +
+ +
+
+ ) +} diff --git a/client/src/components/qr-code-display.tsx b/client/src/components/qr-code-display.tsx new file mode 100644 index 0000000..28ba072 --- /dev/null +++ b/client/src/components/qr-code-display.tsx @@ -0,0 +1,133 @@ +import { useEffect, useRef, useState } from 'react' +import { Card } from '@/components/ui/card' +import { Button } from '@/components/ui/button' +import { Download, Copy, Check } from 'lucide-react' +import QRCode from 'qrcode' + +interface QRCodeDisplayProps { + qrisData: string + amount: string +} + +export function QRCodeDisplay({ qrisData, amount }: QRCodeDisplayProps) { + const canvasRef = useRef(null) + const [copied, setCopied] = useState(false) + const [qrGenerated, setQrGenerated] = useState(false) + + useEffect(() => { + let cancelled = false + + async function render() { + if (!canvasRef.current) return + const canvas = canvasRef.current + const ctx = canvas.getContext('2d') + if (!ctx) return + + try { + await QRCode.toCanvas(canvas, qrisData, { + width: 400, + margin: 2, + color: { dark: '#000000', light: '#FFFFFF' }, + errorCorrectionLevel: 'H', + }) + + const logo = new Image() + logo.crossOrigin = 'anonymous' + logo.onload = () => { + if (cancelled) return + const logoSize = 100 + const x = (canvas.width - logoSize) / 2 + const y = (canvas.height - logoSize) / 2 + ctx.fillStyle = '#FFFFFF' + ctx.fillRect(x - 5, y - 5, logoSize + 10, logoSize + 10) + ctx.drawImage(logo, x, y, logoSize, logoSize) + setQrGenerated(true) + } + logo.onerror = () => { + if (!cancelled) setQrGenerated(true) + } + logo.src = '/yuki-host-logo.png' + } catch (error) { + console.error('Error generating QR code:', error) + } + } + + render() + return () => { + cancelled = true + } + }, [qrisData]) + + const handleDownload = () => { + if (!canvasRef.current) return + const url = canvasRef.current.toDataURL('image/png') + const link = document.createElement('a') + link.download = `qris_${amount}.png` + link.href = url + link.click() + } + + const handleCopy = async () => { + try { + await navigator.clipboard.writeText(qrisData) + setCopied(true) + setTimeout(() => setCopied(false), 2000) + } catch (error) { + console.error('Failed to copy:', error) + } + } + + return ( + +
+
+

Dynamic QRIS Generated

+

+ Amount:{' '} + + Rp {Number.parseInt(amount).toLocaleString('id-ID')} + +

+
+ +
+
+ +
+
+ +
+ + +
+ +
+ + View QRIS Code + +
+ {qrisData} +
+
+
+
+ ) +} diff --git a/client/src/components/qris-generator.tsx b/client/src/components/qris-generator.tsx new file mode 100644 index 0000000..aef97aa --- /dev/null +++ b/client/src/components/qris-generator.tsx @@ -0,0 +1,179 @@ +import { useRef, useState, type ChangeEvent } from 'react' +import { Button } from '@/components/ui/button' +import { Input } from '@/components/ui/input' +import { Label } from '@/components/ui/label' +import { Card } from '@/components/ui/card' +import { QRCodeDisplay } from '@/components/qr-code-display' +import { Upload, Loader2, Sparkles } from 'lucide-react' +import { generateDynamicQrisRequest } from '@/lib/api' + +const DEMO_QRIS = + '00020101021126670016COM.NOBUBANK.WWW01189360050300000879140214610189749241770303UMI51440014ID.CO.QRIS.WWW0215ID20243299634560303UMI5204541153033605802ID5925HOSHIYUKI STORE OK18972926008SEMARANG61055011162070703A016304F6C8' + +export function QRISGenerator() { + const [staticQRIS, setStaticQRIS] = useState('') + const [nominal, setNominal] = useState('') + const [dynamicQRIS, setDynamicQRIS] = useState('') + const [isProcessing, setIsProcessing] = useState(false) + const [error, setError] = useState(null) + const fileInputRef = useRef(null) + + const handleFileUpload = (e: ChangeEvent) => { + const file = e.target.files?.[0] + if (!file) return + setIsProcessing(true) + // Image-to-QRIS decoding is not implemented yet; fall back to the demo + // payload so the user can still try the generator. See README for details. + setTimeout(() => { + setStaticQRIS(DEMO_QRIS) + setIsProcessing(false) + }, 600) + } + + const handleGenerate = async () => { + if (!staticQRIS || !nominal) return + setError(null) + setIsProcessing(true) + try { + const dynamic = await generateDynamicQrisRequest(staticQRIS, Number(nominal)) + setDynamicQRIS(dynamic) + } catch (err) { + setError(err instanceof Error ? err.message : 'Failed to generate dynamic QRIS') + setDynamicQRIS('') + } finally { + setIsProcessing(false) + } + } + + const formatCurrency = (value: string) => { + const numbers = value.replace(/\D/g, '') + return numbers ? Number.parseInt(numbers).toLocaleString('id-ID') : '' + } + + const handleNominalChange = (e: ChangeEvent) => { + setNominal(e.target.value.replace(/\D/g, '')) + } + + return ( +
+ +
+
+
+
+ 1 +
+ +
+

+ Upload your static QRIS image or enter the QRIS code manually +

+ +
+
fileInputRef.current?.click()} + className="group relative border-2 border-dashed border-border rounded-2xl p-10 text-center cursor-pointer hover:border-primary/50 transition-all duration-300 bg-gradient-to-br from-primary/5 to-accent/5 hover:from-primary/10 hover:to-accent/10" + > +
+
+
+ +
+

Click to upload QRIS image

+

PNG, JPG up to 10MB

+
+ +
+ +
+
+ +
+
+ Or enter manually +
+
+ +
+ setStaticQRIS(e.target.value)} + className="font-mono text-sm h-12 focus:ring-2 focus:ring-primary/20 transition-all duration-300" + /> +
+
+
+ +
+
+
+ 2 +
+ +
+

+ Specify the payment amount in Indonesian Rupiah +

+ +
+
+
+ + Rp + + +
+
+
+ + {error && ( +
+ {error} +
+ )} + + +
+ + + {dynamicQRIS && } +
+ ) +} diff --git a/client/src/components/theme-toggle.tsx b/client/src/components/theme-toggle.tsx new file mode 100644 index 0000000..b5cc8d3 --- /dev/null +++ b/client/src/components/theme-toggle.tsx @@ -0,0 +1,30 @@ +import { useEffect, useState } from 'react' +import { Moon, Sun } from 'lucide-react' +import { Button } from '@/components/ui/button' + +export function ThemeToggle() { + const [theme, setTheme] = useState<'light' | 'dark'>('dark') + + useEffect(() => { + const savedTheme = localStorage.getItem('theme') as 'light' | 'dark' | null + const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches + const initialTheme = savedTheme ?? (prefersDark ? 'dark' : 'light') + + setTheme(initialTheme) + document.documentElement.classList.toggle('dark', initialTheme === 'dark') + }, []) + + const toggleTheme = () => { + const newTheme = theme === 'dark' ? 'light' : 'dark' + setTheme(newTheme) + localStorage.setItem('theme', newTheme) + document.documentElement.classList.toggle('dark', newTheme === 'dark') + } + + return ( + + ) +} diff --git a/client/src/components/ui/button.tsx b/client/src/components/ui/button.tsx new file mode 100644 index 0000000..3bc0b61 --- /dev/null +++ b/client/src/components/ui/button.tsx @@ -0,0 +1,58 @@ +import * as React from 'react' +import { Slot } from '@radix-ui/react-slot' +import { cva, type VariantProps } from 'class-variance-authority' + +import { cn } from '@/lib/utils' + +const buttonVariants = cva( + "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", + { + variants: { + variant: { + default: 'bg-primary text-primary-foreground hover:bg-primary/90', + destructive: + 'bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60', + outline: + 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50', + secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80', + ghost: 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50', + link: 'text-primary underline-offset-4 hover:underline', + }, + size: { + default: 'h-9 px-4 py-2 has-[>svg]:px-3', + sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5', + lg: 'h-10 rounded-md px-6 has-[>svg]:px-4', + icon: 'size-9', + 'icon-sm': 'size-8', + 'icon-lg': 'size-10', + }, + }, + defaultVariants: { + variant: 'default', + size: 'default', + }, + }, +) + +function Button({ + className, + variant, + size, + asChild = false, + ...props +}: React.ComponentProps<'button'> & + VariantProps & { + asChild?: boolean + }) { + const Comp = asChild ? Slot : 'button' + + return ( + + ) +} + +export { Button, buttonVariants } diff --git a/client/src/components/ui/card.tsx b/client/src/components/ui/card.tsx new file mode 100644 index 0000000..b2c7c18 --- /dev/null +++ b/client/src/components/ui/card.tsx @@ -0,0 +1,75 @@ +import * as React from 'react' + +import { cn } from '@/lib/utils' + +function Card({ className, ...props }: React.ComponentProps<'div'>) { + return ( +
+ ) +} + +function CardHeader({ className, ...props }: React.ComponentProps<'div'>) { + return ( +
+ ) +} + +function CardTitle({ className, ...props }: React.ComponentProps<'div'>) { + return ( +
+ ) +} + +function CardDescription({ className, ...props }: React.ComponentProps<'div'>) { + return ( +
+ ) +} + +function CardAction({ className, ...props }: React.ComponentProps<'div'>) { + return ( +
+ ) +} + +function CardContent({ className, ...props }: React.ComponentProps<'div'>) { + return
+} + +function CardFooter({ className, ...props }: React.ComponentProps<'div'>) { + return ( +
+ ) +} + +export { Card, CardHeader, CardFooter, CardTitle, CardAction, CardDescription, CardContent } diff --git a/components/ui/input.tsx b/client/src/components/ui/input.tsx similarity index 97% rename from components/ui/input.tsx rename to client/src/components/ui/input.tsx index c901ca4..f199a06 100644 --- a/components/ui/input.tsx +++ b/client/src/components/ui/input.tsx @@ -1,21 +1,21 @@ -import * as React from 'react' - -import { cn } from '@/lib/utils' - -function Input({ className, type, ...props }: React.ComponentProps<'input'>) { - return ( - - ) -} - -export { Input } +import * as React from 'react' + +import { cn } from '@/lib/utils' + +function Input({ className, type, ...props }: React.ComponentProps<'input'>) { + return ( + + ) +} + +export { Input } diff --git a/client/src/components/ui/label.tsx b/client/src/components/ui/label.tsx new file mode 100644 index 0000000..9f2a3b8 --- /dev/null +++ b/client/src/components/ui/label.tsx @@ -0,0 +1,22 @@ +import * as React from 'react' +import * as LabelPrimitive from '@radix-ui/react-label' + +import { cn } from '@/lib/utils' + +function Label({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +export { Label } diff --git a/client/src/index.css b/client/src/index.css new file mode 100644 index 0000000..0bd12bb --- /dev/null +++ b/client/src/index.css @@ -0,0 +1,186 @@ +@import 'tailwindcss'; +@import 'tw-animate-css'; + +@custom-variant dark (&:is(.dark *)); + +:root { + --background: oklch(0.99 0.005 264); + --foreground: oklch(0.15 0.02 264); + --card: oklch(1 0 0); + --card-foreground: oklch(0.15 0.02 264); + --popover: oklch(1 0 0); + --popover-foreground: oklch(0.15 0.02 264); + --primary: oklch(0.55 0.22 264); + --primary-foreground: oklch(0.99 0.005 264); + --secondary: oklch(0.96 0.01 264); + --secondary-foreground: oklch(0.15 0.02 264); + --muted: oklch(0.96 0.01 264); + --muted-foreground: oklch(0.5 0.02 264); + --accent: oklch(0.65 0.2 300); + --accent-foreground: oklch(0.99 0.005 264); + --destructive: oklch(0.577 0.245 27.325); + --destructive-foreground: oklch(0.99 0.005 264); + --border: oklch(0.92 0.01 264); + --input: oklch(0.92 0.01 264); + --ring: oklch(0.55 0.22 264); + --radius: 1rem; +} + +.dark { + --background: oklch(0.12 0.02 264); + --foreground: oklch(0.95 0.01 264); + --card: oklch(0.16 0.02 264); + --card-foreground: oklch(0.95 0.01 264); + --popover: oklch(0.16 0.02 264); + --popover-foreground: oklch(0.95 0.01 264); + --primary: oklch(0.65 0.22 264); + --primary-foreground: oklch(0.12 0.02 264); + --secondary: oklch(0.2 0.02 264); + --secondary-foreground: oklch(0.95 0.01 264); + --muted: oklch(0.2 0.02 264); + --muted-foreground: oklch(0.6 0.02 264); + --accent: oklch(0.7 0.2 300); + --accent-foreground: oklch(0.12 0.02 264); + --destructive: oklch(0.577 0.245 27.325); + --destructive-foreground: oklch(0.95 0.01 264); + --border: oklch(0.24 0.02 264); + --input: oklch(0.24 0.02 264); + --ring: oklch(0.65 0.22 264); +} + +@theme inline { + --color-background: var(--background); + --color-foreground: var(--foreground); + --color-card: var(--card); + --color-card-foreground: var(--card-foreground); + --color-popover: var(--popover); + --color-popover-foreground: var(--popover-foreground); + --color-primary: var(--primary); + --color-primary-foreground: var(--primary-foreground); + --color-secondary: var(--secondary); + --color-secondary-foreground: var(--secondary-foreground); + --color-muted: var(--muted); + --color-muted-foreground: var(--muted-foreground); + --color-accent: var(--accent); + --color-accent-foreground: var(--accent-foreground); + --color-destructive: var(--destructive); + --color-destructive-foreground: var(--destructive-foreground); + --color-border: var(--border); + --color-input: var(--input); + --color-ring: var(--ring); + --radius-sm: calc(var(--radius) - 4px); + --radius-md: calc(var(--radius) - 2px); + --radius-lg: var(--radius); + --radius-xl: calc(var(--radius) + 4px); +} + +@layer base { + * { + @apply border-border outline-ring/50; + } + body { + @apply bg-background text-foreground; + margin: 0; + min-height: 100vh; + font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, + 'Helvetica Neue', Arial, sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } +} + +@keyframes float { + 0%, + 100% { + transform: translateY(0px) translateX(0px) rotate(0deg); + opacity: 0.6; + } + 33% { + transform: translateY(-30px) translateX(15px) rotate(8deg); + opacity: 0.8; + } + 66% { + transform: translateY(15px) translateX(-15px) rotate(-8deg); + opacity: 0.7; + } +} + +@keyframes float-slow { + 0%, + 100% { + transform: translateY(0px) translateX(0px) rotate(0deg) scale(1); + opacity: 0.5; + } + 50% { + transform: translateY(-40px) translateX(25px) rotate(12deg) scale(1.1); + opacity: 0.8; + } +} + +@keyframes float-reverse { + 0%, + 100% { + transform: translateY(0px) translateX(0px) rotate(0deg); + opacity: 0.6; + } + 33% { + transform: translateY(25px) translateX(-20px) rotate(-8deg); + opacity: 0.8; + } + 66% { + transform: translateY(-20px) translateX(20px) rotate(8deg); + opacity: 0.7; + } +} + +@keyframes gradient-shift { + 0%, + 100% { + background-position: 0% 50%; + } + 50% { + background-position: 100% 50%; + } +} + +@keyframes shimmer { + 0% { + background-position: -1000px 0; + } + 100% { + background-position: 1000px 0; + } +} + +.animate-float { + animation: float 8s ease-in-out infinite; +} + +.animate-float-slow { + animation: float-slow 10s ease-in-out infinite; +} + +.animate-float-reverse { + animation: float-reverse 9s ease-in-out infinite; +} + +.animate-gradient { + animation: gradient-shift 8s ease infinite; + background-size: 200% 200%; +} + +.animate-shimmer { + animation: shimmer 3s infinite; +} + +.glass-effect { + background: rgba(255, 255, 255, 0.05); + backdrop-filter: blur(20px); + -webkit-backdrop-filter: blur(20px); + border: 1px solid rgba(255, 255, 255, 0.1); +} + +.dark .glass-effect { + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.05); +} diff --git a/client/src/lib/api.ts b/client/src/lib/api.ts new file mode 100644 index 0000000..552bdaf --- /dev/null +++ b/client/src/lib/api.ts @@ -0,0 +1,19 @@ +import type { ApiResponse, QrisDynamicResponse } from 'shared' + +// In dev, Vite proxies /api -> http://localhost:3000 (see vite.config.ts). +// In production, the Hono server serves the static client and the API from +// the same origin, so a relative path also works. +const API_BASE = import.meta.env.VITE_SERVER_URL ?? '' + +export async function generateDynamicQrisRequest(qris: string, amount: number): Promise { + const res = await fetch(`${API_BASE}/api/qris/dynamic`, { + method: 'POST', + headers: { 'content-type': 'application/json' }, + body: JSON.stringify({ qris, amount }), + }) + const json = (await res.json()) as ApiResponse + if (!res.ok || !json.success || !json.data) { + throw new Error(json.error ?? `Request failed with status ${res.status}`) + } + return json.data.qris +} diff --git a/lib/utils.ts b/client/src/lib/utils.ts similarity index 96% rename from lib/utils.ts rename to client/src/lib/utils.ts index 492e3d6..fed2fe9 100644 --- a/lib/utils.ts +++ b/client/src/lib/utils.ts @@ -1,6 +1,6 @@ -import { clsx, type ClassValue } from 'clsx' -import { twMerge } from 'tailwind-merge' - -export function cn(...inputs: ClassValue[]) { - return twMerge(clsx(inputs)) -} +import { clsx, type ClassValue } from 'clsx' +import { twMerge } from 'tailwind-merge' + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)) +} diff --git a/client/src/main.tsx b/client/src/main.tsx new file mode 100644 index 0000000..bef5202 --- /dev/null +++ b/client/src/main.tsx @@ -0,0 +1,10 @@ +import { StrictMode } from 'react' +import { createRoot } from 'react-dom/client' +import './index.css' +import App from './App.tsx' + +createRoot(document.getElementById('root')!).render( + + + , +) diff --git a/client/src/vite-env.d.ts b/client/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/client/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/client/tsconfig.app.json b/client/tsconfig.app.json new file mode 100644 index 0000000..10f71ea --- /dev/null +++ b/client/tsconfig.app.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + "jsx": "react-jsx", + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true, + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + } + }, + "include": ["src"] +} diff --git a/client/tsconfig.json b/client/tsconfig.json new file mode 100644 index 0000000..ff58696 --- /dev/null +++ b/client/tsconfig.json @@ -0,0 +1,5 @@ +{ + "extends": "../tsconfig.json", + "files": [], + "references": [{ "path": "./tsconfig.node.json" }, { "path": "./tsconfig.app.json"}] +} diff --git a/client/tsconfig.node.json b/client/tsconfig.node.json new file mode 100644 index 0000000..db0becc --- /dev/null +++ b/client/tsconfig.node.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "target": "ES2022", + "lib": ["ES2023"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/client/vite.config.ts b/client/vite.config.ts new file mode 100644 index 0000000..9a52972 --- /dev/null +++ b/client/vite.config.ts @@ -0,0 +1,22 @@ +import path from 'node:path' +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' +import tailwindcss from '@tailwindcss/vite' + +export default defineConfig({ + plugins: [react(), tailwindcss()], + resolve: { + alias: { + '@': path.resolve(__dirname, 'src'), + }, + }, + server: { + port: 5173, + proxy: { + '/api': { + target: process.env.VITE_SERVER_URL ?? 'http://localhost:3000', + changeOrigin: true, + }, + }, + }, +}) diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..e060fa2 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,20 @@ +services: + qris-dynamic: + build: + context: . + dockerfile: Dockerfile + image: qris-dynamic:latest + container_name: qris-dynamic + restart: unless-stopped + ports: + - "${PORT:-3000}:3000" + environment: + NODE_ENV: production + PORT: 3000 + CLIENT_DIST_DIR: /app/public + healthcheck: + test: ["CMD", "wget", "-q", "-O", "-", "http://127.0.0.1:3000/healthz"] + interval: 30s + timeout: 5s + retries: 3 + start_period: 10s diff --git a/legacy/LICENSE b/legacy/LICENSE new file mode 100644 index 0000000..f288702 --- /dev/null +++ b/legacy/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 +. diff --git a/Procfile b/legacy/Procfile similarity index 93% rename from Procfile rename to legacy/Procfile index a260661..063b78f 100644 --- a/Procfile +++ b/legacy/Procfile @@ -1 +1 @@ -web: npm start +web: npm start diff --git a/legacy/README.md b/legacy/README.md new file mode 100644 index 0000000..704e4a2 --- /dev/null +++ b/legacy/README.md @@ -0,0 +1,493 @@ +# QRIS Dynamic Generator 🚀 + +[![Next.js](https://img.shields.io/badge/Next.js-15.2.4-black?style=for-the-badge&logo=next.js)](https://nextjs.org/) +[![TypeScript](https://img.shields.io/badge/TypeScript-5.0.2-blue?style=for-the-badge&logo=typescript)](https://www.typescriptlang.org/) + +Aplikasi web modern untuk mengkonversi QRIS statis menjadi QRIS dinamis dengan nominal pembayaran yang dapat disesuaikan. Dilengkapi dengan dark/light mode, animasi smooth, dan logo branding otomatis pada QR code. + +

+ + QRIS Dynamic Generator Preview + +

+ +## 📋 Daftar Isi + +- [Apa itu QRIS Dynamic?](#-apa-itu-qris-dynamic) +- [Fitur Utama](#-fitur-utama) +- [Kegunaan](#-kegunaan) +- [Manfaat](#-manfaat) +- [Teknologi](#%EF%B8%8F-teknologi) +- [Penjelasan Code Utama](#-penjelasan-code-utama) +- [Instalasi Lokal](#-instalasi-lokal) +- [Deploy ke Vercel](#-deploy-ke-vercel) +- [Deploy ke Heroku](#-deploy-ke-heroku) +- [Cara Penggunaan](#-cara-penggunaan) +- [Kontribusi](#-kontribusi) +- [Lisensi](#-lisensi) + +## 🎯 Apa itu QRIS Dynamic? + +**QRIS (Quick Response Code Indonesian Standard)** adalah standar QR code untuk pembayaran digital di Indonesia yang menggabungkan berbagai metode pembayaran dalam satu QR code. + +**QRIS Statis** adalah QR code dengan nominal yang tidak ditentukan - pelanggan harus memasukkan nominal pembayaran secara manual. + +**QRIS Dinamis** adalah QR code yang sudah memiliki nominal pembayaran yang ditentukan - pelanggan tinggal scan dan konfirmasi pembayaran tanpa perlu input nominal. + +Aplikasi ini mengkonversi QRIS statis menjadi dinamis dengan cara: +1. Membaca data dari QRIS statis +2. Menambahkan informasi nominal pembayaran (tag 54) +3. Menghitung ulang CRC16 checksum +4. Generate QR code baru dengan logo branding + +## ✨ Fitur Utama + +- **Upload QRIS Image** - Upload gambar QR code statis atau paste kode QRIS secara manual +- **Input Nominal Dinamis** - Masukkan nominal pembayaran dalam format Rupiah dengan auto-formatting +- **QR Code dengan Logo** - Setiap QR code yang dihasilkan menyertakan logo Yuki Host di tengahnya +- **Dark/Light Mode** - Toggle tema gelap/terang dengan transisi smooth +- **Animated Background** - Floating shapes dengan animasi yang modern dan smooth +- **Download QR Code** - Download QR code sebagai file PNG +- **Copy QRIS String** - Copy kode QRIS untuk digunakan di platform lain +- **Responsive Design** - Tampilan optimal di semua ukuran layar +- **Modern UI/UX** - Glassmorphism effects, gradient animations, dan smooth transitions + +## 🎨 Kegunaan + +### Untuk Merchant/Bisnis +- Generate QR code pembayaran dengan nominal spesifik untuk setiap transaksi +- Buat invoice digital dengan QR code yang sudah include nominal +- Terima pembayaran dengan lebih cepat tanpa perlu pelanggan input nominal manual + +### Untuk Freelancer +- Buat QR code untuk invoice project dengan nominal yang sudah ditentukan +- Kirim QR code pembayaran langsung ke klien via WhatsApp/Email + +### Untuk Event Organizer +- Generate QR code untuk tiket dengan harga berbeda-beda +- Buat QR code untuk pembayaran booth atau sponsorship + +### Untuk Donasi/Fundraising +- Buat QR code dengan nominal donasi yang disarankan +- Generate multiple QR codes untuk berbagai tier donasi + +## 💡 Manfaat + +### Efisiensi Waktu +Tidak perlu login ke dashboard bank atau payment gateway untuk membuat QRIS dinamis. Cukup buka aplikasi, input nominal, dan QR code siap digunakan dalam hitungan detik. + +### Mengurangi Error +Dengan nominal yang sudah ditentukan, mengurangi risiko kesalahan input nominal oleh pelanggan. + +### Profesional +QR code dengan logo branding memberikan kesan profesional dan meningkatkan brand awareness. + +### User Experience +Interface modern dengan dark/light mode dan animasi smooth membuat pengalaman pengguna lebih menyenangkan. + +### Gratis & Open Source +Tidak ada biaya berlangganan atau batasan penggunaan. Source code tersedia untuk dipelajari dan dikembangkan. + +### Fleksibel +Dapat digunakan untuk berbagai skenario pembayaran dengan nominal yang berbeda-beda. + +## 🛠️ Teknologi + +Aplikasi ini dibangun menggunakan teknologi modern: + +- **Next.js 15.2.4** - React framework untuk production +- **React 19** - Library UI terbaru +- **TypeScript** - Type-safe JavaScript +- **Tailwind CSS v4** - Utility-first CSS framework +- **shadcn/ui** - High-quality React components +- **qrcode** - QR code generation library +- **Geist Font** - Modern font dari Vercel +- **Lucide React** - Beautiful icon library + +## 🔍 Penjelasan Code Utama + +### 1. CRC16 Calculation (`components/qris-generator.tsx`) + +```typescript +function crc16(data: string): string { + let crc = 0xFFFF; + for (let i = 0; i < data.length; i++) { + crc ^= data.charCodeAt(i) << 8; + for (let j = 0; j < 8; j++) { + if (crc & 0x8000) { + crc = (crc << 1) ^ 0x1021; + } else { + crc = crc << 1; + } + } + } + crc = crc & 0xFFFF; + return crc.toString(16).toUpperCase().padStart(4, '0'); +} +``` + +**Fungsi:** Menghitung checksum CRC16-CCITT untuk validasi data QRIS. + +**Cara Kerja:** +- Inisialisasi CRC dengan nilai 0xFFFF +- Untuk setiap karakter dalam data, XOR dengan CRC yang di-shift 8 bit +- Lakukan 8 iterasi bit manipulation dengan polynomial 0x1021 +- Return hasil dalam format hexadecimal 4 digit + +### 2. QRIS Dynamic Conversion (`components/qris-generator.tsx`) + +```typescript +const modifyQris = (staticQris: string, nominal: number): string => { + // Remove existing CRC (last 4 characters) + let qrisWithoutCrc = staticQris.slice(0, -4); + + // Format nominal as string with 2 decimal places + const nominalStr = nominal.toFixed(2); + + // Create tag 54 (Transaction Amount) + const tag54 = `54${nominalStr.length.toString().padStart(2, '0')}${nominalStr}`; + + // Insert or replace tag 54 in QRIS string + // ... (logic to find and replace tag 54) + + // Calculate new CRC16 + const newCrc = crc16(qrisWithoutCrc + '6304'); + + // Return complete QRIS with new CRC + return qrisWithoutCrc + '6304' + newCrc; +}; +``` + +**Fungsi:** Mengkonversi QRIS statis menjadi dinamis dengan menambahkan nominal. + +**Cara Kerja:** +1. Hapus CRC lama (4 karakter terakhir) +2. Format nominal menjadi string dengan 2 desimal +3. Buat tag 54 (Transaction Amount) dengan format: `54[length][nominal]` +4. Insert/replace tag 54 di string QRIS +5. Hitung CRC16 baru untuk data yang sudah dimodifikasi +6. Gabungkan semua komponen menjadi QRIS dinamis yang valid + +### 3. QR Code Generation with Logo (`components/qr-code-display.tsx`) + +```typescript +useEffect(() => { + const canvas = canvasRef.current; + if (!canvas || !qrisString) return; + + // Generate QR code to canvas + QRCode.toCanvas(canvas, qrisString, { + width: 300, + margin: 2, + errorCorrectionLevel: 'H' // High error correction for logo overlay + }); + + // Draw logo in center + const ctx = canvas.getContext('2d'); + const logo = new Image(); + logo.crossOrigin = 'anonymous'; + logo.src = '/yuki-host-logo.png'; + + logo.onload = () => { + const logoSize = 100; + const x = (canvas.width - logoSize) / 2; + const y = (canvas.height - logoSize) / 2; + + // Draw white background for logo + ctx.fillStyle = 'white'; + ctx.fillRect(x - 5, y - 5, logoSize + 10, logoSize + 10); + + // Draw logo + ctx.drawImage(logo, x, y, logoSize, logoSize); + }; +}, [qrisString]); +``` + +**Fungsi:** Generate QR code dengan logo di tengahnya. + +**Cara Kerja:** +1. Generate QR code ke canvas dengan error correction level 'H' (30% recovery) +2. Load logo image dengan CORS handling +3. Gambar background putih di tengah QR code +4. Overlay logo di atas background putih +5. Error correction level tinggi memastikan QR code tetap scannable meskipun ada logo + +### 4. Theme Toggle (`components/theme-toggle.tsx`) + +```typescript +const toggleTheme = () => { + const newTheme = theme === 'dark' ? 'light' : 'dark'; + setTheme(newTheme); + localStorage.setItem('theme', newTheme); + document.documentElement.classList.toggle('dark', newTheme === 'dark'); +}; +``` + +**Fungsi:** Toggle antara dark mode dan light mode. + +**Cara Kerja:** +1. Toggle state theme antara 'dark' dan 'light' +2. Simpan preferensi ke localStorage untuk persistence +3. Toggle class 'dark' pada element HTML untuk trigger CSS variables +4. CSS variables di `globals.css` otomatis berubah sesuai class + +## 📦 Instalasi Lokal + +### Prerequisites +- Node.js 18+ atau 20+ +- npm, yarn, atau pnpm + +### Langkah-langkah + +1. **Clone repository** +```bash +git clone https://github.com/AmmarrBN/Qris-Dynamic.git +cd Qris-Dynamic +``` + +2. **Install dependencies** +```bash +# Menggunakan npm +npm install + +# Atau menggunakan yarn +yarn install + +# Atau menggunakan pnpm +pnpm install +``` + +3. **Jalankan development server** +```bash +npm run dev +# atau +yarn dev +# atau +pnpm dev +``` + +4. **Buka browser** +``` +http://localhost:3000 +``` + +## 🚀 Deploy ke Vercel + +Vercel adalah platform deployment yang paling mudah untuk Next.js (dibuat oleh creator Next.js). + +### Method 1: Deploy via GitHub (Recommended) + +1. **Push code ke GitHub** +```bash +git add . +git commit -m "Initial commit" +git push origin main +``` + +2. **Import ke Vercel** + - Buka [vercel.com](https://vercel.com) + - Login dengan GitHub account + - Click "Add New Project" + - Import repository `Qris-Dynamic` + - Click "Deploy" + +3. **Konfigurasi (Optional)** + - Framework Preset: Next.js (auto-detected) + - Build Command: `npm run build` (auto-detected) + - Output Directory: `.next` (auto-detected) + - Install Command: `npm install` (auto-detected) + +4. **Deploy** + - Click "Deploy" + - Tunggu proses build selesai (2-3 menit) + - Aplikasi akan live di `https://your-project.vercel.app` + +### Method 2: Deploy via Vercel CLI + +1. **Install Vercel CLI** +```bash +npm install -g vercel +``` + +2. **Login ke Vercel** +```bash +vercel login +``` + +3. **Deploy** +```bash +vercel +``` + +4. **Deploy ke Production** +```bash +vercel --prod +``` + +### Auto-Deploy +Setiap push ke branch `main` akan otomatis trigger deployment baru di Vercel. + +## 🌐 Deploy ke Heroku + +Heroku adalah platform cloud yang mendukung berbagai bahasa pemrograman. + +### Prerequisites +- Heroku account (gratis di [heroku.com](https://heroku.com)) +- Heroku CLI installed + +### Langkah-langkah + +1. **Install Heroku CLI** +```bash +# macOS +brew tap heroku/brew && brew install heroku + +# Windows +# Download installer dari https://devcenter.heroku.com/articles/heroku-cli + +# Linux +curl https://cli-assets.heroku.com/install.sh | sh +``` + +2. **Login ke Heroku** +```bash +heroku login +``` + +3. **Create Heroku App** +```bash +heroku create your-app-name +# atau biarkan Heroku generate nama random +heroku create +``` + +4. **Set Buildpack** +```bash +heroku buildpacks:set heroku/nodejs +``` + +5. **Configure Environment** + +Pastikan `package.json` memiliki scripts yang benar: +```json +{ + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start -p $PORT", + "lint": "next lint" + } +} +``` + +Pastikan ada file `Procfile` di root directory: +``` +web: npm start +``` + +6. **Deploy ke Heroku** +```bash +git add . +git commit -m "Deploy to Heroku" +git push heroku main +``` + +7. **Open App** +```bash +heroku open +``` + +### Troubleshooting Heroku + +**Error: Cannot find module '@tailwindcss/postcss'** +- Pastikan `@tailwindcss/postcss` ada di `devDependencies` di `package.json` + +**Error: Application error** +- Check logs: `heroku logs --tail` +- Pastikan PORT environment variable digunakan: `next start -p $PORT` + +**Build timeout** +- Upgrade ke Heroku paid plan untuk build time lebih lama +- Atau optimize dependencies + +### Environment Variables (Optional) + +Jika aplikasi memerlukan environment variables: + +```bash +heroku config:set VARIABLE_NAME=value +``` + +## 📖 Cara Penggunaan + +1. **Upload QRIS Statis** + - Click area upload atau drag & drop gambar QR code statis + - Atau paste kode QRIS secara manual di text area + +2. **Input Nominal** + - Masukkan nominal pembayaran (contoh: 50000) + - Format otomatis menjadi Rupiah (Rp 50.000) + +3. **Generate QR Code** + - Click tombol "Generate QRIS Dinamis" + - QR code baru akan muncul dengan logo di tengahnya + +4. **Download atau Copy** + - Click "Download QR Code" untuk save sebagai PNG + - Click "Copy QRIS String" untuk copy kode QRIS + +5. **Toggle Theme (Optional)** + - Click icon sun/moon di pojok kanan atas untuk switch dark/light mode + +## 🤝 Kontribusi + +Kontribusi sangat diterima! Berikut cara berkontribusi: + +1. Fork repository ini +2. Create branch baru (`git checkout -b feature/AmazingFeature`) +3. Commit changes (`git commit -m 'Add some AmazingFeature'`) +4. Push ke branch (`git push origin feature/AmazingFeature`) +5. Open Pull Request + +### Ideas untuk Kontribusi +- Tambah support untuk multiple payment methods +- Implementasi history/saved QR codes +- Export QR code dalam berbagai format (SVG, PDF) +- Batch generation untuk multiple QR codes +- API endpoint untuk integration dengan sistem lain + +## 📝 Lisensi + +Distributed under the MIT License. See `LICENSE` for more information. + +## 👨‍💻 Author + +**AmmarBN** +- GitHub: [@AmmarrBN](https://github.com/AmmarrBN) + +## 🙏 Acknowledgments + +- [Next.js](https://nextjs.org/) - React framework +- [Heroku](https://heroku.com/) - Deployment platform +- [Vercel](https://vercel.com/) - Deployment platform +- [shadcn/ui](https://ui.shadcn.com/) - UI components +- [Tailwind CSS](https://tailwindcss.com/) - CSS framework + +## 📞 Support + +Jika ada pertanyaan atau issue, silakan: +- Open issue di GitHub +- Contact via email: [ammarburhanudinafis@gmail.com] + +--- + +**⭐ Jika project ini membantu, jangan lupa kasih star di GitHub!** + +Made with ❤️ by [AmmarBN](https://github.com/AmmarrBN) + + + + + diff --git a/app/globals.css b/legacy/app/globals.css similarity index 96% rename from app/globals.css rename to legacy/app/globals.css index 8691340..ecd35d2 100644 --- a/app/globals.css +++ b/legacy/app/globals.css @@ -1,206 +1,206 @@ -@import "tailwindcss"; -@import "tw-animate-css"; - -@custom-variant dark (&:is(.dark *)); - -:root { - --background: oklch(0.99 0.005 264); - --foreground: oklch(0.15 0.02 264); - --card: oklch(1 0 0); - --card-foreground: oklch(0.15 0.02 264); - --popover: oklch(1 0 0); - --popover-foreground: oklch(0.15 0.02 264); - --primary: oklch(0.55 0.22 264); - --primary-foreground: oklch(0.99 0.005 264); - --secondary: oklch(0.96 0.01 264); - --secondary-foreground: oklch(0.15 0.02 264); - --muted: oklch(0.96 0.01 264); - --muted-foreground: oklch(0.5 0.02 264); - --accent: oklch(0.65 0.2 300); - --accent-foreground: oklch(0.99 0.005 264); - --destructive: oklch(0.577 0.245 27.325); - --destructive-foreground: oklch(0.99 0.005 264); - --border: oklch(0.92 0.01 264); - --input: oklch(0.92 0.01 264); - --ring: oklch(0.55 0.22 264); - --chart-1: oklch(0.646 0.222 41.116); - --chart-2: oklch(0.6 0.118 184.704); - --chart-3: oklch(0.398 0.07 227.392); - --chart-4: oklch(0.828 0.189 84.429); - --chart-5: oklch(0.769 0.188 70.08); - --radius: 1rem; - --sidebar: oklch(0.985 0 0); - --sidebar-foreground: oklch(0.145 0 0); - --sidebar-primary: oklch(0.205 0 0); - --sidebar-primary-foreground: oklch(0.985 0 0); - --sidebar-accent: oklch(0.97 0 0); - --sidebar-accent-foreground: oklch(0.205 0 0); - --sidebar-border: oklch(0.922 0 0); - --sidebar-ring: oklch(0.708 0 0); -} - -.dark { - --background: oklch(0.12 0.02 264); - --foreground: oklch(0.95 0.01 264); - --card: oklch(0.16 0.02 264); - --card-foreground: oklch(0.95 0.01 264); - --popover: oklch(0.16 0.02 264); - --popover-foreground: oklch(0.95 0.01 264); - --primary: oklch(0.65 0.22 264); - --primary-foreground: oklch(0.12 0.02 264); - --secondary: oklch(0.2 0.02 264); - --secondary-foreground: oklch(0.95 0.01 264); - --muted: oklch(0.2 0.02 264); - --muted-foreground: oklch(0.6 0.02 264); - --accent: oklch(0.7 0.2 300); - --accent-foreground: oklch(0.12 0.02 264); - --destructive: oklch(0.577 0.245 27.325); - --destructive-foreground: oklch(0.95 0.01 264); - --border: oklch(0.24 0.02 264); - --input: oklch(0.24 0.02 264); - --ring: oklch(0.65 0.22 264); -} - -@theme inline { - --color-background: var(--background); - --color-foreground: var(--foreground); - --color-card: var(--card); - --color-card-foreground: var(--card-foreground); - --color-popover: var(--popover); - --color-popover-foreground: var(--popover-foreground); - --color-primary: var(--primary); - --color-primary-foreground: var(--primary-foreground); - --color-secondary: var(--secondary); - --color-secondary-foreground: var(--secondary-foreground); - --color-muted: var(--muted); - --color-muted-foreground: var(--muted-foreground); - --color-accent: var(--accent); - --color-accent-foreground: var(--accent-foreground); - --color-destructive: var(--destructive); - --color-destructive-foreground: var(--destructive-foreground); - --color-border: var(--border); - --color-input: var(--input); - --color-ring: var(--ring); - --color-chart-1: var(--chart-1); - --color-chart-2: var(--chart-2); - --color-chart-3: var(--chart-3); - --color-chart-4: var(--chart-4); - --color-chart-5: var(--chart-5); - --radius-sm: calc(var(--radius) - 4px); - --radius-md: calc(var(--radius) - 2px); - --radius-lg: var(--radius); - --radius-xl: calc(var(--radius) + 4px); - --color-sidebar: var(--sidebar); - --color-sidebar-foreground: var(--sidebar-foreground); - --color-sidebar-primary: var(--sidebar-primary); - --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); - --color-sidebar-accent: var(--sidebar-accent); - --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); - --color-sidebar-border: var(--sidebar-border); - --color-sidebar-ring: var(--sidebar-ring); -} - -@layer base { - * { - @apply border-border outline-ring/50; - } - body { - @apply bg-background text-foreground; - } -} - -@keyframes float { - 0%, - 100% { - transform: translateY(0px) translateX(0px) rotate(0deg); - opacity: 0.6; - } - 33% { - transform: translateY(-30px) translateX(15px) rotate(8deg); - opacity: 0.8; - } - 66% { - transform: translateY(15px) translateX(-15px) rotate(-8deg); - opacity: 0.7; - } -} - -@keyframes float-slow { - 0%, - 100% { - transform: translateY(0px) translateX(0px) rotate(0deg) scale(1); - opacity: 0.5; - } - 50% { - transform: translateY(-40px) translateX(25px) rotate(12deg) scale(1.1); - opacity: 0.8; - } -} - -@keyframes float-reverse { - 0%, - 100% { - transform: translateY(0px) translateX(0px) rotate(0deg); - opacity: 0.6; - } - 33% { - transform: translateY(25px) translateX(-20px) rotate(-8deg); - opacity: 0.8; - } - 66% { - transform: translateY(-20px) translateX(20px) rotate(8deg); - opacity: 0.7; - } -} - -@keyframes gradient-shift { - 0%, - 100% { - background-position: 0% 50%; - } - 50% { - background-position: 100% 50%; - } -} - -@keyframes shimmer { - 0% { - background-position: -1000px 0; - } - 100% { - background-position: 1000px 0; - } -} - -.animate-float { - animation: float 8s ease-in-out infinite; -} - -.animate-float-slow { - animation: float-slow 10s ease-in-out infinite; -} - -.animate-float-reverse { - animation: float-reverse 9s ease-in-out infinite; -} - -.animate-gradient { - animation: gradient-shift 8s ease infinite; - background-size: 200% 200%; -} - -.animate-shimmer { - animation: shimmer 3s infinite; -} - -.glass-effect { - background: rgba(255, 255, 255, 0.05); - backdrop-filter: blur(20px); - -webkit-backdrop-filter: blur(20px); - border: 1px solid rgba(255, 255, 255, 0.1); -} - -.dark .glass-effect { - background: rgba(255, 255, 255, 0.03); - border: 1px solid rgba(255, 255, 255, 0.05); -} +@import "tailwindcss"; +@import "tw-animate-css"; + +@custom-variant dark (&:is(.dark *)); + +:root { + --background: oklch(0.99 0.005 264); + --foreground: oklch(0.15 0.02 264); + --card: oklch(1 0 0); + --card-foreground: oklch(0.15 0.02 264); + --popover: oklch(1 0 0); + --popover-foreground: oklch(0.15 0.02 264); + --primary: oklch(0.55 0.22 264); + --primary-foreground: oklch(0.99 0.005 264); + --secondary: oklch(0.96 0.01 264); + --secondary-foreground: oklch(0.15 0.02 264); + --muted: oklch(0.96 0.01 264); + --muted-foreground: oklch(0.5 0.02 264); + --accent: oklch(0.65 0.2 300); + --accent-foreground: oklch(0.99 0.005 264); + --destructive: oklch(0.577 0.245 27.325); + --destructive-foreground: oklch(0.99 0.005 264); + --border: oklch(0.92 0.01 264); + --input: oklch(0.92 0.01 264); + --ring: oklch(0.55 0.22 264); + --chart-1: oklch(0.646 0.222 41.116); + --chart-2: oklch(0.6 0.118 184.704); + --chart-3: oklch(0.398 0.07 227.392); + --chart-4: oklch(0.828 0.189 84.429); + --chart-5: oklch(0.769 0.188 70.08); + --radius: 1rem; + --sidebar: oklch(0.985 0 0); + --sidebar-foreground: oklch(0.145 0 0); + --sidebar-primary: oklch(0.205 0 0); + --sidebar-primary-foreground: oklch(0.985 0 0); + --sidebar-accent: oklch(0.97 0 0); + --sidebar-accent-foreground: oklch(0.205 0 0); + --sidebar-border: oklch(0.922 0 0); + --sidebar-ring: oklch(0.708 0 0); +} + +.dark { + --background: oklch(0.12 0.02 264); + --foreground: oklch(0.95 0.01 264); + --card: oklch(0.16 0.02 264); + --card-foreground: oklch(0.95 0.01 264); + --popover: oklch(0.16 0.02 264); + --popover-foreground: oklch(0.95 0.01 264); + --primary: oklch(0.65 0.22 264); + --primary-foreground: oklch(0.12 0.02 264); + --secondary: oklch(0.2 0.02 264); + --secondary-foreground: oklch(0.95 0.01 264); + --muted: oklch(0.2 0.02 264); + --muted-foreground: oklch(0.6 0.02 264); + --accent: oklch(0.7 0.2 300); + --accent-foreground: oklch(0.12 0.02 264); + --destructive: oklch(0.577 0.245 27.325); + --destructive-foreground: oklch(0.95 0.01 264); + --border: oklch(0.24 0.02 264); + --input: oklch(0.24 0.02 264); + --ring: oklch(0.65 0.22 264); +} + +@theme inline { + --color-background: var(--background); + --color-foreground: var(--foreground); + --color-card: var(--card); + --color-card-foreground: var(--card-foreground); + --color-popover: var(--popover); + --color-popover-foreground: var(--popover-foreground); + --color-primary: var(--primary); + --color-primary-foreground: var(--primary-foreground); + --color-secondary: var(--secondary); + --color-secondary-foreground: var(--secondary-foreground); + --color-muted: var(--muted); + --color-muted-foreground: var(--muted-foreground); + --color-accent: var(--accent); + --color-accent-foreground: var(--accent-foreground); + --color-destructive: var(--destructive); + --color-destructive-foreground: var(--destructive-foreground); + --color-border: var(--border); + --color-input: var(--input); + --color-ring: var(--ring); + --color-chart-1: var(--chart-1); + --color-chart-2: var(--chart-2); + --color-chart-3: var(--chart-3); + --color-chart-4: var(--chart-4); + --color-chart-5: var(--chart-5); + --radius-sm: calc(var(--radius) - 4px); + --radius-md: calc(var(--radius) - 2px); + --radius-lg: var(--radius); + --radius-xl: calc(var(--radius) + 4px); + --color-sidebar: var(--sidebar); + --color-sidebar-foreground: var(--sidebar-foreground); + --color-sidebar-primary: var(--sidebar-primary); + --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); + --color-sidebar-accent: var(--sidebar-accent); + --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); + --color-sidebar-border: var(--sidebar-border); + --color-sidebar-ring: var(--sidebar-ring); +} + +@layer base { + * { + @apply border-border outline-ring/50; + } + body { + @apply bg-background text-foreground; + } +} + +@keyframes float { + 0%, + 100% { + transform: translateY(0px) translateX(0px) rotate(0deg); + opacity: 0.6; + } + 33% { + transform: translateY(-30px) translateX(15px) rotate(8deg); + opacity: 0.8; + } + 66% { + transform: translateY(15px) translateX(-15px) rotate(-8deg); + opacity: 0.7; + } +} + +@keyframes float-slow { + 0%, + 100% { + transform: translateY(0px) translateX(0px) rotate(0deg) scale(1); + opacity: 0.5; + } + 50% { + transform: translateY(-40px) translateX(25px) rotate(12deg) scale(1.1); + opacity: 0.8; + } +} + +@keyframes float-reverse { + 0%, + 100% { + transform: translateY(0px) translateX(0px) rotate(0deg); + opacity: 0.6; + } + 33% { + transform: translateY(25px) translateX(-20px) rotate(-8deg); + opacity: 0.8; + } + 66% { + transform: translateY(-20px) translateX(20px) rotate(8deg); + opacity: 0.7; + } +} + +@keyframes gradient-shift { + 0%, + 100% { + background-position: 0% 50%; + } + 50% { + background-position: 100% 50%; + } +} + +@keyframes shimmer { + 0% { + background-position: -1000px 0; + } + 100% { + background-position: 1000px 0; + } +} + +.animate-float { + animation: float 8s ease-in-out infinite; +} + +.animate-float-slow { + animation: float-slow 10s ease-in-out infinite; +} + +.animate-float-reverse { + animation: float-reverse 9s ease-in-out infinite; +} + +.animate-gradient { + animation: gradient-shift 8s ease infinite; + background-size: 200% 200%; +} + +.animate-shimmer { + animation: shimmer 3s infinite; +} + +.glass-effect { + background: rgba(255, 255, 255, 0.05); + backdrop-filter: blur(20px); + -webkit-backdrop-filter: blur(20px); + border: 1px solid rgba(255, 255, 255, 0.1); +} + +.dark .glass-effect { + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(255, 255, 255, 0.05); +} diff --git a/app/layout.tsx b/legacy/app/layout.tsx similarity index 96% rename from app/layout.tsx rename to legacy/app/layout.tsx index 7100559..c8d3b44 100644 --- a/app/layout.tsx +++ b/legacy/app/layout.tsx @@ -1,30 +1,30 @@ -import type React from "react" -import type { Metadata } from "next" -import { GeistSans } from "geist/font/sans" -import { GeistMono } from "geist/font/mono" -import { Analytics } from "@vercel/analytics/next" -import "./globals.css" -import { Suspense } from "react" - -export const metadata: Metadata = { - title: "Qris Dynamic", - description: "Transform your static QRIS into dynamic payment codes with custom amounts in seconds", - generator: "HerokuApp", -} - -export default function RootLayout({ - children, -}: Readonly<{ - children: React.ReactNode -}>) { - return ( - - - - {children} - - - - - ) -} +import type React from "react" +import type { Metadata } from "next" +import { GeistSans } from "geist/font/sans" +import { GeistMono } from "geist/font/mono" +import { Analytics } from "@vercel/analytics/next" +import "./globals.css" +import { Suspense } from "react" + +export const metadata: Metadata = { + title: "Qris Dynamic", + description: "Transform your static QRIS into dynamic payment codes with custom amounts in seconds", + generator: "HerokuApp", +} + +export default function RootLayout({ + children, +}: Readonly<{ + children: React.ReactNode +}>) { + return ( + + + + {children} + + + + + ) +} diff --git a/app/miaw b/legacy/app/miaw similarity index 100% rename from app/miaw rename to legacy/app/miaw diff --git a/app/page.tsx b/legacy/app/page.tsx similarity index 97% rename from app/page.tsx rename to legacy/app/page.tsx index 0ad05cb..fa5bd5d 100644 --- a/app/page.tsx +++ b/legacy/app/page.tsx @@ -1,77 +1,77 @@ -"use client" -import { QRISGenerator } from "@/components/qris-generator" -import { ThemeToggle } from "@/components/theme-toggle" -import { FloatingShapes } from "@/components/floating-shapes" - -export default function Home() { - return ( -
- - -
-
-
-
-
- - - -
-
-

- QRIS Dynamic -

-

Payment Generator

-
-
- -
-
- -
-
-
-
- Instant • Secure • Easy -
-

- Generate Dynamic{" "} - - QRIS - -

-

- Transform your static QRIS into dynamic payment codes with custom amounts in seconds -

-
- - -
-
- -
-
-

QRIS Dynamic Generator • Secure Payment Processing

-

Built with modern web technologies

-

- © 2025 Copyright By{" "} - - AmmarBN - -

-
-
-
-
- ) -} +"use client" +import { QRISGenerator } from "@/components/qris-generator" +import { ThemeToggle } from "@/components/theme-toggle" +import { FloatingShapes } from "@/components/floating-shapes" + +export default function Home() { + return ( +
+ + +
+
+
+
+
+ + + +
+
+

+ QRIS Dynamic +

+

Payment Generator

+
+
+ +
+
+ +
+
+
+
+ Instant • Secure • Easy +
+

+ Generate Dynamic{" "} + + QRIS + +

+

+ Transform your static QRIS into dynamic payment codes with custom amounts in seconds +

+
+ + +
+
+ +
+
+

QRIS Dynamic Generator • Secure Payment Processing

+

Built with modern web technologies

+

+ © 2025 Copyright By{" "} + + AmmarBN + +

+
+
+
+
+ ) +} diff --git a/components.json b/legacy/components.json similarity index 95% rename from components.json rename to legacy/components.json index 0cc3979..4ee62ee 100644 --- a/components.json +++ b/legacy/components.json @@ -1,21 +1,21 @@ -{ - "$schema": "https://ui.shadcn.com/schema.json", - "style": "new-york", - "rsc": true, - "tsx": true, - "tailwind": { - "config": "", - "css": "app/globals.css", - "baseColor": "neutral", - "cssVariables": true, - "prefix": "" - }, - "aliases": { - "components": "@/components", - "utils": "@/lib/utils", - "ui": "@/components/ui", - "lib": "@/lib", - "hooks": "@/hooks" - }, - "iconLibrary": "lucide" -} +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "new-york", + "rsc": true, + "tsx": true, + "tailwind": { + "config": "", + "css": "app/globals.css", + "baseColor": "neutral", + "cssVariables": true, + "prefix": "" + }, + "aliases": { + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" + }, + "iconLibrary": "lucide" +} diff --git a/components/floating-shapes.tsx b/legacy/components/floating-shapes.tsx similarity index 98% rename from components/floating-shapes.tsx rename to legacy/components/floating-shapes.tsx index d66f1cf..0b5ee20 100644 --- a/components/floating-shapes.tsx +++ b/legacy/components/floating-shapes.tsx @@ -1,26 +1,26 @@ -"use client" - -export function FloatingShapes() { - return ( -
-
-
-
-
- -
-
- -
- -
-
- ) -} +"use client" + +export function FloatingShapes() { + return ( +
+
+
+
+
+ +
+
+ +
+ +
+
+ ) +} diff --git a/components/qr-code-display.tsx b/legacy/components/qr-code-display.tsx similarity index 96% rename from components/qr-code-display.tsx rename to legacy/components/qr-code-display.tsx index 0227e77..fe96611 100644 --- a/components/qr-code-display.tsx +++ b/legacy/components/qr-code-display.tsx @@ -1,139 +1,139 @@ -"use client" - -import { useEffect, useRef, useState } from "react" -import { Card } from "@/components/ui/card" -import { Button } from "@/components/ui/button" -import { Download, Copy, Check } from "lucide-react" -import QRCode from "qrcode" - -interface QRCodeDisplayProps { - qrisData: string - amount: string -} - -export function QRCodeDisplay({ qrisData, amount }: QRCodeDisplayProps) { - const canvasRef = useRef(null) - const [copied, setCopied] = useState(false) - const [qrGenerated, setQrGenerated] = useState(false) - - useEffect(() => { - generateQRWithLogo() - }, [qrisData]) - - const generateQRWithLogo = async () => { - if (!canvasRef.current) return - - const canvas = canvasRef.current - const ctx = canvas.getContext("2d") - if (!ctx) return - - try { - // Generate QR code - await QRCode.toCanvas(canvas, qrisData, { - width: 400, - margin: 2, - color: { - dark: "#000000", - light: "#FFFFFF", - }, - errorCorrectionLevel: "H", // High error correction for logo overlay - }) - - // Load and draw logo - const logo = new Image() - logo.crossOrigin = "anonymous" - logo.onload = () => { - const logoSize = 100 // Increased logo size to 100px for better visibility - const x = (canvas.width - logoSize) / 2 - const y = (canvas.height - logoSize) / 2 - - // Draw white background for logo - ctx.fillStyle = "#FFFFFF" - ctx.fillRect(x - 5, y - 5, logoSize + 10, logoSize + 10) - - // Draw logo - ctx.drawImage(logo, x, y, logoSize, logoSize) - setQrGenerated(true) - } - logo.onerror = () => { - // If logo fails to load, just show QR without logo - setQrGenerated(true) - } - logo.src = "/yuki-host-logo.png" // Updated logo to Yuki Host cloud logo - } catch (error) { - console.error("Error generating QR code:", error) - } - } - - const handleDownload = () => { - if (!canvasRef.current) return - - const url = canvasRef.current.toDataURL("image/png") - const link = document.createElement("a") - link.download = `qris_${amount}.png` - link.href = url - link.click() - } - - const handleCopy = async () => { - try { - await navigator.clipboard.writeText(qrisData) - setCopied(true) - setTimeout(() => setCopied(false), 2000) - } catch (error) { - console.error("Failed to copy:", error) - } - } - - return ( - -
-
-

Dynamic QRIS Generated

-

- Amount:{" "} - Rp {Number.parseInt(amount).toLocaleString("id-ID")} -

-
- -
-
- -
-
- -
- - -
- -
- - View QRIS Code - -
- {qrisData} -
-
-
-
- ) -} +"use client" + +import { useEffect, useRef, useState } from "react" +import { Card } from "@/components/ui/card" +import { Button } from "@/components/ui/button" +import { Download, Copy, Check } from "lucide-react" +import QRCode from "qrcode" + +interface QRCodeDisplayProps { + qrisData: string + amount: string +} + +export function QRCodeDisplay({ qrisData, amount }: QRCodeDisplayProps) { + const canvasRef = useRef(null) + const [copied, setCopied] = useState(false) + const [qrGenerated, setQrGenerated] = useState(false) + + useEffect(() => { + generateQRWithLogo() + }, [qrisData]) + + const generateQRWithLogo = async () => { + if (!canvasRef.current) return + + const canvas = canvasRef.current + const ctx = canvas.getContext("2d") + if (!ctx) return + + try { + // Generate QR code + await QRCode.toCanvas(canvas, qrisData, { + width: 400, + margin: 2, + color: { + dark: "#000000", + light: "#FFFFFF", + }, + errorCorrectionLevel: "H", // High error correction for logo overlay + }) + + // Load and draw logo + const logo = new Image() + logo.crossOrigin = "anonymous" + logo.onload = () => { + const logoSize = 100 // Increased logo size to 100px for better visibility + const x = (canvas.width - logoSize) / 2 + const y = (canvas.height - logoSize) / 2 + + // Draw white background for logo + ctx.fillStyle = "#FFFFFF" + ctx.fillRect(x - 5, y - 5, logoSize + 10, logoSize + 10) + + // Draw logo + ctx.drawImage(logo, x, y, logoSize, logoSize) + setQrGenerated(true) + } + logo.onerror = () => { + // If logo fails to load, just show QR without logo + setQrGenerated(true) + } + logo.src = "/yuki-host-logo.png" // Updated logo to Yuki Host cloud logo + } catch (error) { + console.error("Error generating QR code:", error) + } + } + + const handleDownload = () => { + if (!canvasRef.current) return + + const url = canvasRef.current.toDataURL("image/png") + const link = document.createElement("a") + link.download = `qris_${amount}.png` + link.href = url + link.click() + } + + const handleCopy = async () => { + try { + await navigator.clipboard.writeText(qrisData) + setCopied(true) + setTimeout(() => setCopied(false), 2000) + } catch (error) { + console.error("Failed to copy:", error) + } + } + + return ( + +
+
+

Dynamic QRIS Generated

+

+ Amount:{" "} + Rp {Number.parseInt(amount).toLocaleString("id-ID")} +

+
+ +
+
+ +
+
+ +
+ + +
+ +
+ + View QRIS Code + +
+ {qrisData} +
+
+
+
+ ) +} diff --git a/components/qris-generator.tsx b/legacy/components/qris-generator.tsx similarity index 97% rename from components/qris-generator.tsx rename to legacy/components/qris-generator.tsx index ea45553..f393d0a 100644 --- a/components/qris-generator.tsx +++ b/legacy/components/qris-generator.tsx @@ -1,208 +1,208 @@ -"use client" - -import type React from "react" - -import { useState, useRef } from "react" -import { Button } from "@/components/ui/button" -import { Input } from "@/components/ui/input" -import { Label } from "@/components/ui/label" -import { Card } from "@/components/ui/card" -import { QRCodeDisplay } from "@/components/qr-code-display" -import { Upload, Loader2, Sparkles } from "lucide-react" - -export function QRISGenerator() { - const [staticQRIS, setStaticQRIS] = useState("") - const [nominal, setNominal] = useState("") - const [dynamicQRIS, setDynamicQRIS] = useState("") - const [isProcessing, setIsProcessing] = useState(false) - const fileInputRef = useRef(null) - - const convertCRC16 = (data: string): string => { - let crc = 0xffff - for (let i = 0; i < data.length; i++) { - crc ^= data.charCodeAt(i) << 8 - for (let j = 0; j < 8; j++) { - if (crc & 0x8000) { - crc = (crc << 1) ^ 0x1021 - } else { - crc <<= 1 - } - crc &= 0xffff - } - } - return crc.toString(16).toUpperCase().padStart(4, "0") - } - - const generateDynamicQRIS = (staticCode: string, amount: string): string => { - // Remove last 4 characters (CRC) - let qris = staticCode.slice(0, -4) - - // Change from static (010211) to dynamic (010212) - qris = qris.replace("010211", "010212") - - // Split by 5802ID to insert amount - const parts = qris.split("5802ID") - - // Format: 54 + length + amount + 5802ID - const amountTag = "54" + amount.length.toString().padStart(2, "0") + amount + "5802ID" - - // Combine parts - const finalQRIS = parts[0] + amountTag + parts[1] - - // Add CRC16 - return finalQRIS + convertCRC16(finalQRIS) - } - - const handleFileUpload = async (e: React.ChangeEvent) => { - const file = e.target.files?.[0] - if (!file) return - - setIsProcessing(true) - - // Simulate processing - in real app, you'd use OCR or QR decoder - setTimeout(() => { - // For demo, use the hardcoded QRIS from the Python script - const demoQRIS = - "00020101021126670016COM.NOBUBANK.WWW01189360050300000879140214610189749241770303UMI51440014ID.CO.QRIS.WWW0215ID20243299634560303UMI5204541153033605802ID5925HOSHIYUKI STORE OK18972926008SEMARANG61055011162070703A016304F6C8" - setStaticQRIS(demoQRIS) - setIsProcessing(false) - }, 1500) - } - - const handleGenerate = () => { - if (!staticQRIS || !nominal) return - - setIsProcessing(true) - setTimeout(() => { - const dynamic = generateDynamicQRIS(staticQRIS, nominal) - setDynamicQRIS(dynamic) - setIsProcessing(false) - }, 500) - } - - const formatCurrency = (value: string) => { - const numbers = value.replace(/\D/g, "") - return numbers ? Number.parseInt(numbers).toLocaleString("id-ID") : "" - } - - const handleNominalChange = (e: React.ChangeEvent) => { - const value = e.target.value.replace(/\D/g, "") - setNominal(value) - } - - return ( -
- -
-
-
-
- 1 -
- -
-

- Upload your static QRIS image or enter the QRIS code manually -

- -
-
fileInputRef.current?.click()} - className="group relative border-2 border-dashed border-border rounded-2xl p-10 text-center cursor-pointer hover:border-primary/50 transition-all duration-300 bg-gradient-to-br from-primary/5 to-accent/5 hover:from-primary/10 hover:to-accent/10" - > -
-
-
- -
-

Click to upload QRIS image

-

PNG, JPG up to 10MB

-
- -
- -
-
- -
-
- Or enter manually -
-
- -
- setStaticQRIS(e.target.value)} - className="font-mono text-sm h-12 focus:ring-2 focus:ring-primary/20 transition-all duration-300" - /> -
-
-
- -
-
-
- 2 -
- -
-

- Specify the payment amount in Indonesian Rupiah -

- -
-
-
- - Rp - - -
-
-
- - -
- - - {dynamicQRIS && } -
- ) -} +"use client" + +import type React from "react" + +import { useState, useRef } from "react" +import { Button } from "@/components/ui/button" +import { Input } from "@/components/ui/input" +import { Label } from "@/components/ui/label" +import { Card } from "@/components/ui/card" +import { QRCodeDisplay } from "@/components/qr-code-display" +import { Upload, Loader2, Sparkles } from "lucide-react" + +export function QRISGenerator() { + const [staticQRIS, setStaticQRIS] = useState("") + const [nominal, setNominal] = useState("") + const [dynamicQRIS, setDynamicQRIS] = useState("") + const [isProcessing, setIsProcessing] = useState(false) + const fileInputRef = useRef(null) + + const convertCRC16 = (data: string): string => { + let crc = 0xffff + for (let i = 0; i < data.length; i++) { + crc ^= data.charCodeAt(i) << 8 + for (let j = 0; j < 8; j++) { + if (crc & 0x8000) { + crc = (crc << 1) ^ 0x1021 + } else { + crc <<= 1 + } + crc &= 0xffff + } + } + return crc.toString(16).toUpperCase().padStart(4, "0") + } + + const generateDynamicQRIS = (staticCode: string, amount: string): string => { + // Remove last 4 characters (CRC) + let qris = staticCode.slice(0, -4) + + // Change from static (010211) to dynamic (010212) + qris = qris.replace("010211", "010212") + + // Split by 5802ID to insert amount + const parts = qris.split("5802ID") + + // Format: 54 + length + amount + 5802ID + const amountTag = "54" + amount.length.toString().padStart(2, "0") + amount + "5802ID" + + // Combine parts + const finalQRIS = parts[0] + amountTag + parts[1] + + // Add CRC16 + return finalQRIS + convertCRC16(finalQRIS) + } + + const handleFileUpload = async (e: React.ChangeEvent) => { + const file = e.target.files?.[0] + if (!file) return + + setIsProcessing(true) + + // Simulate processing - in real app, you'd use OCR or QR decoder + setTimeout(() => { + // For demo, use the hardcoded QRIS from the Python script + const demoQRIS = + "00020101021126670016COM.NOBUBANK.WWW01189360050300000879140214610189749241770303UMI51440014ID.CO.QRIS.WWW0215ID20243299634560303UMI5204541153033605802ID5925HOSHIYUKI STORE OK18972926008SEMARANG61055011162070703A016304F6C8" + setStaticQRIS(demoQRIS) + setIsProcessing(false) + }, 1500) + } + + const handleGenerate = () => { + if (!staticQRIS || !nominal) return + + setIsProcessing(true) + setTimeout(() => { + const dynamic = generateDynamicQRIS(staticQRIS, nominal) + setDynamicQRIS(dynamic) + setIsProcessing(false) + }, 500) + } + + const formatCurrency = (value: string) => { + const numbers = value.replace(/\D/g, "") + return numbers ? Number.parseInt(numbers).toLocaleString("id-ID") : "" + } + + const handleNominalChange = (e: React.ChangeEvent) => { + const value = e.target.value.replace(/\D/g, "") + setNominal(value) + } + + return ( +
+ +
+
+
+
+ 1 +
+ +
+

+ Upload your static QRIS image or enter the QRIS code manually +

+ +
+
fileInputRef.current?.click()} + className="group relative border-2 border-dashed border-border rounded-2xl p-10 text-center cursor-pointer hover:border-primary/50 transition-all duration-300 bg-gradient-to-br from-primary/5 to-accent/5 hover:from-primary/10 hover:to-accent/10" + > +
+
+
+ +
+

Click to upload QRIS image

+

PNG, JPG up to 10MB

+
+ +
+ +
+
+ +
+
+ Or enter manually +
+
+ +
+ setStaticQRIS(e.target.value)} + className="font-mono text-sm h-12 focus:ring-2 focus:ring-primary/20 transition-all duration-300" + /> +
+
+
+ +
+
+
+ 2 +
+ +
+

+ Specify the payment amount in Indonesian Rupiah +

+ +
+
+
+ + Rp + + +
+
+
+ + +
+ + + {dynamicQRIS && } +
+ ) +} diff --git a/components/theme-provider.tsx b/legacy/components/theme-provider.tsx similarity index 96% rename from components/theme-provider.tsx rename to legacy/components/theme-provider.tsx index 7e42555..55c2f6e 100644 --- a/components/theme-provider.tsx +++ b/legacy/components/theme-provider.tsx @@ -1,11 +1,11 @@ -'use client' - -import * as React from 'react' -import { - ThemeProvider as NextThemesProvider, - type ThemeProviderProps, -} from 'next-themes' - -export function ThemeProvider({ children, ...props }: ThemeProviderProps) { - return {children} -} +'use client' + +import * as React from 'react' +import { + ThemeProvider as NextThemesProvider, + type ThemeProviderProps, +} from 'next-themes' + +export function ThemeProvider({ children, ...props }: ThemeProviderProps) { + return {children} +} diff --git a/components/theme-toggle.tsx b/legacy/components/theme-toggle.tsx similarity index 97% rename from components/theme-toggle.tsx rename to legacy/components/theme-toggle.tsx index d26bd48..c4e6a3e 100644 --- a/components/theme-toggle.tsx +++ b/legacy/components/theme-toggle.tsx @@ -1,32 +1,32 @@ -"use client" - -import { useEffect, useState } from "react" -import { Moon, Sun } from "lucide-react" -import { Button } from "@/components/ui/button" - -export function ThemeToggle() { - const [theme, setTheme] = useState<"light" | "dark">("dark") - - useEffect(() => { - const savedTheme = localStorage.getItem("theme") as "light" | "dark" | null - const prefersDark = window.matchMedia("(prefers-color-scheme: dark)").matches - const initialTheme = savedTheme || (prefersDark ? "dark" : "light") - - setTheme(initialTheme) - document.documentElement.classList.toggle("dark", initialTheme === "dark") - }, []) - - const toggleTheme = () => { - const newTheme = theme === "dark" ? "light" : "dark" - setTheme(newTheme) - localStorage.setItem("theme", newTheme) - document.documentElement.classList.toggle("dark", newTheme === "dark") - } - - return ( - - ) -} +"use client" + +import { useEffect, useState } from "react" +import { Moon, Sun } from "lucide-react" +import { Button } from "@/components/ui/button" + +export function ThemeToggle() { + const [theme, setTheme] = useState<"light" | "dark">("dark") + + useEffect(() => { + const savedTheme = localStorage.getItem("theme") as "light" | "dark" | null + const prefersDark = window.matchMedia("(prefers-color-scheme: dark)").matches + const initialTheme = savedTheme || (prefersDark ? "dark" : "light") + + setTheme(initialTheme) + document.documentElement.classList.toggle("dark", initialTheme === "dark") + }, []) + + const toggleTheme = () => { + const newTheme = theme === "dark" ? "light" : "dark" + setTheme(newTheme) + localStorage.setItem("theme", newTheme) + document.documentElement.classList.toggle("dark", newTheme === "dark") + } + + return ( + + ) +} diff --git a/components/ui/button.tsx b/legacy/components/ui/button.tsx similarity index 97% rename from components/ui/button.tsx rename to legacy/components/ui/button.tsx index 82301f1..f64632d 100644 --- a/components/ui/button.tsx +++ b/legacy/components/ui/button.tsx @@ -1,60 +1,60 @@ -import * as React from 'react' -import { Slot } from '@radix-ui/react-slot' -import { cva, type VariantProps } from 'class-variance-authority' - -import { cn } from '@/lib/utils' - -const buttonVariants = cva( - "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", - { - variants: { - variant: { - default: 'bg-primary text-primary-foreground hover:bg-primary/90', - destructive: - 'bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60', - outline: - 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50', - secondary: - 'bg-secondary text-secondary-foreground hover:bg-secondary/80', - ghost: - 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50', - link: 'text-primary underline-offset-4 hover:underline', - }, - size: { - default: 'h-9 px-4 py-2 has-[>svg]:px-3', - sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5', - lg: 'h-10 rounded-md px-6 has-[>svg]:px-4', - icon: 'size-9', - 'icon-sm': 'size-8', - 'icon-lg': 'size-10', - }, - }, - defaultVariants: { - variant: 'default', - size: 'default', - }, - }, -) - -function Button({ - className, - variant, - size, - asChild = false, - ...props -}: React.ComponentProps<'button'> & - VariantProps & { - asChild?: boolean - }) { - const Comp = asChild ? Slot : 'button' - - return ( - - ) -} - -export { Button, buttonVariants } +import * as React from 'react' +import { Slot } from '@radix-ui/react-slot' +import { cva, type VariantProps } from 'class-variance-authority' + +import { cn } from '@/lib/utils' + +const buttonVariants = cva( + "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", + { + variants: { + variant: { + default: 'bg-primary text-primary-foreground hover:bg-primary/90', + destructive: + 'bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60', + outline: + 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50', + secondary: + 'bg-secondary text-secondary-foreground hover:bg-secondary/80', + ghost: + 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50', + link: 'text-primary underline-offset-4 hover:underline', + }, + size: { + default: 'h-9 px-4 py-2 has-[>svg]:px-3', + sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5', + lg: 'h-10 rounded-md px-6 has-[>svg]:px-4', + icon: 'size-9', + 'icon-sm': 'size-8', + 'icon-lg': 'size-10', + }, + }, + defaultVariants: { + variant: 'default', + size: 'default', + }, + }, +) + +function Button({ + className, + variant, + size, + asChild = false, + ...props +}: React.ComponentProps<'button'> & + VariantProps & { + asChild?: boolean + }) { + const Comp = asChild ? Slot : 'button' + + return ( + + ) +} + +export { Button, buttonVariants } diff --git a/components/ui/card.tsx b/legacy/components/ui/card.tsx similarity index 95% rename from components/ui/card.tsx rename to legacy/components/ui/card.tsx index befad1e..db7dd3c 100644 --- a/components/ui/card.tsx +++ b/legacy/components/ui/card.tsx @@ -1,92 +1,92 @@ -import * as React from 'react' - -import { cn } from '@/lib/utils' - -function Card({ className, ...props }: React.ComponentProps<'div'>) { - return ( -
- ) -} - -function CardHeader({ className, ...props }: React.ComponentProps<'div'>) { - return ( -
- ) -} - -function CardTitle({ className, ...props }: React.ComponentProps<'div'>) { - return ( -
- ) -} - -function CardDescription({ className, ...props }: React.ComponentProps<'div'>) { - return ( -
- ) -} - -function CardAction({ className, ...props }: React.ComponentProps<'div'>) { - return ( -
- ) -} - -function CardContent({ className, ...props }: React.ComponentProps<'div'>) { - return ( -
- ) -} - -function CardFooter({ className, ...props }: React.ComponentProps<'div'>) { - return ( -
- ) -} - -export { - Card, - CardHeader, - CardFooter, - CardTitle, - CardAction, - CardDescription, - CardContent, -} +import * as React from 'react' + +import { cn } from '@/lib/utils' + +function Card({ className, ...props }: React.ComponentProps<'div'>) { + return ( +
+ ) +} + +function CardHeader({ className, ...props }: React.ComponentProps<'div'>) { + return ( +
+ ) +} + +function CardTitle({ className, ...props }: React.ComponentProps<'div'>) { + return ( +
+ ) +} + +function CardDescription({ className, ...props }: React.ComponentProps<'div'>) { + return ( +
+ ) +} + +function CardAction({ className, ...props }: React.ComponentProps<'div'>) { + return ( +
+ ) +} + +function CardContent({ className, ...props }: React.ComponentProps<'div'>) { + return ( +
+ ) +} + +function CardFooter({ className, ...props }: React.ComponentProps<'div'>) { + return ( +
+ ) +} + +export { + Card, + CardHeader, + CardFooter, + CardTitle, + CardAction, + CardDescription, + CardContent, +} diff --git a/legacy/components/ui/input.tsx b/legacy/components/ui/input.tsx new file mode 100644 index 0000000..f199a06 --- /dev/null +++ b/legacy/components/ui/input.tsx @@ -0,0 +1,21 @@ +import * as React from 'react' + +import { cn } from '@/lib/utils' + +function Input({ className, type, ...props }: React.ComponentProps<'input'>) { + return ( + + ) +} + +export { Input } diff --git a/components/ui/label.tsx b/legacy/components/ui/label.tsx similarity index 96% rename from components/ui/label.tsx rename to legacy/components/ui/label.tsx index e614bbf..5d66da2 100644 --- a/components/ui/label.tsx +++ b/legacy/components/ui/label.tsx @@ -1,24 +1,24 @@ -'use client' - -import * as React from 'react' -import * as LabelPrimitive from '@radix-ui/react-label' - -import { cn } from '@/lib/utils' - -function Label({ - className, - ...props -}: React.ComponentProps) { - return ( - - ) -} - -export { Label } +'use client' + +import * as React from 'react' +import * as LabelPrimitive from '@radix-ui/react-label' + +import { cn } from '@/lib/utils' + +function Label({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +export { Label } diff --git a/components/ui/miaw b/legacy/components/ui/miaw similarity index 100% rename from components/ui/miaw rename to legacy/components/ui/miaw diff --git a/global.d.ts b/legacy/global.d.ts similarity index 96% rename from global.d.ts rename to legacy/global.d.ts index 81e2522..cbe652d 100644 --- a/global.d.ts +++ b/legacy/global.d.ts @@ -1 +1 @@ -declare module "*.css"; +declare module "*.css"; diff --git a/lib/miaw b/legacy/lib/miaw similarity index 100% rename from lib/miaw rename to legacy/lib/miaw diff --git a/legacy/lib/utils.ts b/legacy/lib/utils.ts new file mode 100644 index 0000000..fed2fe9 --- /dev/null +++ b/legacy/lib/utils.ts @@ -0,0 +1,6 @@ +import { clsx, type ClassValue } from 'clsx' +import { twMerge } from 'tailwind-merge' + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)) +} diff --git a/next-env.d.ts b/legacy/next-env.d.ts similarity index 97% rename from next-env.d.ts rename to legacy/next-env.d.ts index 76faf1f..1b3be08 100644 --- a/next-env.d.ts +++ b/legacy/next-env.d.ts @@ -1,5 +1,5 @@ -/// -/// - -// NOTE: This file should not be edited -// see https://nextjs.org/docs/app/api-reference/config/typescript for more information. +/// +/// + +// NOTE: This file should not be edited +// see https://nextjs.org/docs/app/api-reference/config/typescript for more information. diff --git a/next.config.mjs b/legacy/next.config.mjs similarity index 94% rename from next.config.mjs rename to legacy/next.config.mjs index 3cb44e4..f5cbc38 100644 --- a/next.config.mjs +++ b/legacy/next.config.mjs @@ -1,14 +1,14 @@ -/** @type {import('next').NextConfig} */ -const nextConfig = { - eslint: { - ignoreDuringBuilds: true, - }, - typescript: { - ignoreBuildErrors: true, - }, - images: { - unoptimized: true, - }, -} - -export default nextConfig +/** @type {import('next').NextConfig} */ +const nextConfig = { + eslint: { + ignoreDuringBuilds: true, + }, + typescript: { + ignoreBuildErrors: true, + }, + images: { + unoptimized: true, + }, +} + +export default nextConfig diff --git a/package-lock.json b/legacy/package-lock.json similarity index 97% rename from package-lock.json rename to legacy/package-lock.json index f5107b7..b63f3ef 100644 --- a/package-lock.json +++ b/legacy/package-lock.json @@ -1,2185 +1,2185 @@ -{ - "name": "dynamic-qris-generator", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "dependencies": { - "@radix-ui/react-label": "latest", - "@radix-ui/react-slot": "latest", - "@vercel/analytics": "latest", - "class-variance-authority": "^0.7.1", - "clsx": "^2.1.1", - "geist": "latest", - "lucide-react": "^0.454.0", - "next": "15.2.4", - "next-themes": "latest", - "qrcode": "latest", - "react": "^19", - "react-dom": "^19", - "tailwind-merge": "^2.5.5", - "tailwindcss-animate": "^1.0.7", - "tw-animate-css": "latest" - }, - "devDependencies": { - "@tailwindcss/postcss": "^4.1.9", - "@types/node": "^22", - "@types/qrcode": "^1.5.5", - "@types/react": "^19", - "@types/react-dom": "^19", - "postcss": "^8.5", - "tailwindcss": "^4.1.9", - "typescript": "^5" - } - }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@emnapi/runtime": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.5.0.tgz", - "integrity": "sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==", - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@img/sharp-darwin-arm64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", - "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-arm64": "1.0.4" - } - }, - "node_modules/@img/sharp-darwin-x64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", - "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.0.4" - } - }, - "node_modules/@img/sharp-libvips-darwin-arm64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", - "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "darwin" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-darwin-x64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", - "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "darwin" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-arm": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", - "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", - "cpu": [ - "arm" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-arm64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", - "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-s390x": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", - "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", - "cpu": [ - "s390x" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-x64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", - "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linuxmusl-arm64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", - "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linuxmusl-x64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", - "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-linux-arm": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", - "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", - "cpu": [ - "arm" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm": "1.0.5" - } - }, - "node_modules/@img/sharp-linux-arm64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", - "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm64": "1.0.4" - } - }, - "node_modules/@img/sharp-linux-s390x": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", - "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", - "cpu": [ - "s390x" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-s390x": "1.0.4" - } - }, - "node_modules/@img/sharp-linux-x64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", - "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-x64": "1.0.4" - } - }, - "node_modules/@img/sharp-linuxmusl-arm64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", - "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" - } - }, - "node_modules/@img/sharp-linuxmusl-x64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", - "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-x64": "1.0.4" - } - }, - "node_modules/@img/sharp-wasm32": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", - "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", - "cpu": [ - "wasm32" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", - "optional": true, - "dependencies": { - "@emnapi/runtime": "^1.2.0" - }, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-win32-ia32": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", - "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", - "cpu": [ - "ia32" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-win32-x64": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", - "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@isaacs/fs-minipass": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", - "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.4" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", - "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/remapping": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", - "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.31", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", - "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@next/env": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@next/env/-/env-15.2.4.tgz", - "integrity": "sha512-+SFtMgoiYP3WoSswuNmxJOCwi06TdWE733D+WPjpXIe4LXGULwEaofiiAy6kbS0+XjM5xF5n3lKuBwN2SnqD9g==", - "license": "MIT" - }, - "node_modules/@next/swc-darwin-arm64": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.2.4.tgz", - "integrity": "sha512-1AnMfs655ipJEDC/FHkSr0r3lXBgpqKo4K1kiwfUf3iE68rDFXZ1TtHdMvf7D0hMItgDZ7Vuq3JgNMbt/+3bYw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-darwin-x64": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.2.4.tgz", - "integrity": "sha512-3qK2zb5EwCwxnO2HeO+TRqCubeI/NgCe+kL5dTJlPldV/uwCnUgC7VbEzgmxbfrkbjehL4H9BPztWOEtsoMwew==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-gnu": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.2.4.tgz", - "integrity": "sha512-HFN6GKUcrTWvem8AZN7tT95zPb0GUGv9v0d0iyuTb303vbXkkbHDp/DxufB04jNVD+IN9yHy7y/6Mqq0h0YVaQ==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-musl": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.2.4.tgz", - "integrity": "sha512-Oioa0SORWLwi35/kVB8aCk5Uq+5/ZIumMK1kJV+jSdazFm2NzPDztsefzdmzzpx5oGCJ6FkUC7vkaUseNTStNA==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-gnu": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.2.4.tgz", - "integrity": "sha512-yb5WTRaHdkgOqFOZiu6rHV1fAEK0flVpaIN2HB6kxHVSy/dIajWbThS7qON3W9/SNOH2JWkVCyulgGYekMePuw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-musl": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.2.4.tgz", - "integrity": "sha512-Dcdv/ix6srhkM25fgXiyOieFUkz+fOYkHlydWCtB0xMST6X9XYI3yPDKBZt1xuhOytONsIFJFB08xXYsxUwJLw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-arm64-msvc": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.2.4.tgz", - "integrity": "sha512-dW0i7eukvDxtIhCYkMrZNQfNicPDExt2jPb9AZPpL7cfyUo7QSNl1DjsHjmmKp6qNAqUESyT8YFl/Aw91cNJJg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-x64-msvc": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.2.4.tgz", - "integrity": "sha512-SbnWkJmkS7Xl3kre8SdMF6F/XDh1DTFEhp0jRTj/uB8iPKoU2bb2NDfcu+iifv1+mxQEd1g2vvSxcZbXSKyWiQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-label": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.7.tgz", - "integrity": "sha512-YT1GqPSL8kJn20djelMX7/cTRp/Y9w5IZHvfxQTVHrOqa2yMl7i/UfMqKRU5V7mEyKTrUVgJXhNQPVCG8PBLoQ==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-primitive": "2.1.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-primitive": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", - "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-slot": "1.2.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-slot": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", - "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@swc/counter": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", - "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", - "license": "Apache-2.0" - }, - "node_modules/@swc/helpers": { - "version": "0.5.15", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", - "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.8.0" - } - }, - "node_modules/@tailwindcss/node": { - "version": "4.1.14", - "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.14.tgz", - "integrity": "sha512-hpz+8vFk3Ic2xssIA3e01R6jkmsAhvkQdXlEbRTk6S10xDAtiQiM3FyvZVGsucefq764euO/b8WUW9ysLdThHw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/remapping": "^2.3.4", - "enhanced-resolve": "^5.18.3", - "jiti": "^2.6.0", - "lightningcss": "1.30.1", - "magic-string": "^0.30.19", - "source-map-js": "^1.2.1", - "tailwindcss": "4.1.14" - } - }, - "node_modules/@tailwindcss/oxide": { - "version": "4.1.14", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.14.tgz", - "integrity": "sha512-23yx+VUbBwCg2x5XWdB8+1lkPajzLmALEfMb51zZUBYaYVPDQvBSD/WYDqiVyBIo2BZFa3yw1Rpy3G2Jp+K0dw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "detect-libc": "^2.0.4", - "tar": "^7.5.1" - }, - "engines": { - "node": ">= 10" - }, - "optionalDependencies": { - "@tailwindcss/oxide-android-arm64": "4.1.14", - "@tailwindcss/oxide-darwin-arm64": "4.1.14", - "@tailwindcss/oxide-darwin-x64": "4.1.14", - "@tailwindcss/oxide-freebsd-x64": "4.1.14", - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.14", - "@tailwindcss/oxide-linux-arm64-gnu": "4.1.14", - "@tailwindcss/oxide-linux-arm64-musl": "4.1.14", - "@tailwindcss/oxide-linux-x64-gnu": "4.1.14", - "@tailwindcss/oxide-linux-x64-musl": "4.1.14", - "@tailwindcss/oxide-wasm32-wasi": "4.1.14", - "@tailwindcss/oxide-win32-arm64-msvc": "4.1.14", - "@tailwindcss/oxide-win32-x64-msvc": "4.1.14" - } - }, - "node_modules/@tailwindcss/oxide-android-arm64": { - "version": "4.1.14", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.14.tgz", - "integrity": "sha512-a94ifZrGwMvbdeAxWoSuGcIl6/DOP5cdxagid7xJv6bwFp3oebp7y2ImYsnZBMTwjn5Ev5xESvS3FFYUGgPODQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-darwin-arm64": { - "version": "4.1.14", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.14.tgz", - "integrity": "sha512-HkFP/CqfSh09xCnrPJA7jud7hij5ahKyWomrC3oiO2U9i0UjP17o9pJbxUN0IJ471GTQQmzwhp0DEcpbp4MZTA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-darwin-x64": { - "version": "4.1.14", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.14.tgz", - "integrity": "sha512-eVNaWmCgdLf5iv6Qd3s7JI5SEFBFRtfm6W0mphJYXgvnDEAZ5sZzqmI06bK6xo0IErDHdTA5/t7d4eTfWbWOFw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-freebsd-x64": { - "version": "4.1.14", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.14.tgz", - "integrity": "sha512-QWLoRXNikEuqtNb0dhQN6wsSVVjX6dmUFzuuiL09ZeXju25dsei2uIPl71y2Ic6QbNBsB4scwBoFnlBfabHkEw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { - "version": "4.1.14", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.14.tgz", - "integrity": "sha512-VB4gjQni9+F0VCASU+L8zSIyjrLLsy03sjcR3bM0V2g4SNamo0FakZFKyUQ96ZVwGK4CaJsc9zd/obQy74o0Fw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { - "version": "4.1.14", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.14.tgz", - "integrity": "sha512-qaEy0dIZ6d9vyLnmeg24yzA8XuEAD9WjpM5nIM1sUgQ/Zv7cVkharPDQcmm/t/TvXoKo/0knI3me3AGfdx6w1w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-linux-arm64-musl": { - "version": "4.1.14", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.14.tgz", - "integrity": "sha512-ISZjT44s59O8xKsPEIesiIydMG/sCXoMBCqsphDm/WcbnuWLxxb+GcvSIIA5NjUw6F8Tex7s5/LM2yDy8RqYBQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-linux-x64-gnu": { - "version": "4.1.14", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.14.tgz", - "integrity": "sha512-02c6JhLPJj10L2caH4U0zF8Hji4dOeahmuMl23stk0MU1wfd1OraE7rOloidSF8W5JTHkFdVo/O7uRUJJnUAJg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-linux-x64-musl": { - "version": "4.1.14", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.14.tgz", - "integrity": "sha512-TNGeLiN1XS66kQhxHG/7wMeQDOoL0S33x9BgmydbrWAb9Qw0KYdd8o1ifx4HOGDWhVmJ+Ul+JQ7lyknQFilO3Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-wasm32-wasi": { - "version": "4.1.14", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.14.tgz", - "integrity": "sha512-uZYAsaW/jS/IYkd6EWPJKW/NlPNSkWkBlaeVBi/WsFQNP05/bzkebUL8FH1pdsqx4f2fH/bWFcUABOM9nfiJkQ==", - "bundleDependencies": [ - "@napi-rs/wasm-runtime", - "@emnapi/core", - "@emnapi/runtime", - "@tybys/wasm-util", - "@emnapi/wasi-threads", - "tslib" - ], - "cpu": [ - "wasm32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/core": "^1.5.0", - "@emnapi/runtime": "^1.5.0", - "@emnapi/wasi-threads": "^1.1.0", - "@napi-rs/wasm-runtime": "^1.0.5", - "@tybys/wasm-util": "^0.10.1", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { - "version": "4.1.14", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.14.tgz", - "integrity": "sha512-Az0RnnkcvRqsuoLH2Z4n3JfAef0wElgzHD5Aky/e+0tBUxUhIeIqFBTMNQvmMRSP15fWwmvjBxZ3Q8RhsDnxAA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-win32-x64-msvc": { - "version": "4.1.14", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.14.tgz", - "integrity": "sha512-ttblVGHgf68kEE4om1n/n44I0yGPkCPbLsqzjvybhpwa6mKKtgFfAzy6btc3HRmuW7nHe0OOrSeNP9sQmmH9XA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/postcss": { - "version": "4.1.14", - "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.1.14.tgz", - "integrity": "sha512-BdMjIxy7HUNThK87C7BC8I1rE8BVUsfNQSI5siQ4JK3iIa3w0XyVvVL9SXLWO//CtYTcp1v7zci0fYwJOjB+Zg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "@tailwindcss/node": "4.1.14", - "@tailwindcss/oxide": "4.1.14", - "postcss": "^8.4.41", - "tailwindcss": "4.1.14" - } - }, - "node_modules/@types/node": { - "version": "22.18.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.18.8.tgz", - "integrity": "sha512-pAZSHMiagDR7cARo/cch1f3rXy0AEXwsVsVH09FcyeJVAzCnGgmYis7P3JidtTUjyadhTeSo8TgRPswstghDaw==", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~6.21.0" - } - }, - "node_modules/@types/qrcode": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@types/qrcode/-/qrcode-1.5.5.tgz", - "integrity": "sha512-CdfBi/e3Qk+3Z/fXYShipBT13OJ2fDO2Q2w5CIP5anLTLIndQG9z6P1cnm+8zCWSpm5dnxMFd/uREtb0EXuQzg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/react": { - "version": "19.2.0", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.0.tgz", - "integrity": "sha512-1LOH8xovvsKsCBq1wnT4ntDUdCJKmnEakhsuoUSy6ExlHCkGP2hqnatagYTgFk6oeL0VU31u7SNjunPN+GchtA==", - "devOptional": true, - "license": "MIT", - "dependencies": { - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-dom": { - "version": "19.2.0", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.0.tgz", - "integrity": "sha512-brtBs0MnE9SMx7px208g39lRmC5uHZs96caOJfTjFcYSLHNamvaSMfJNagChVNkup2SdtOxKX1FDBkRSJe1ZAg==", - "devOptional": true, - "license": "MIT", - "peerDependencies": { - "@types/react": "^19.2.0" - } - }, - "node_modules/@vercel/analytics": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@vercel/analytics/-/analytics-1.5.0.tgz", - "integrity": "sha512-MYsBzfPki4gthY5HnYN7jgInhAZ7Ac1cYDoRWFomwGHWEX7odTEzbtg9kf/QSo7XEsEAqlQugA6gJ2WS2DEa3g==", - "license": "MPL-2.0", - "peerDependencies": { - "@remix-run/react": "^2", - "@sveltejs/kit": "^1 || ^2", - "next": ">= 13", - "react": "^18 || ^19 || ^19.0.0-rc", - "svelte": ">= 4", - "vue": "^3", - "vue-router": "^4" - }, - "peerDependenciesMeta": { - "@remix-run/react": { - "optional": true - }, - "@sveltejs/kit": { - "optional": true - }, - "next": { - "optional": true - }, - "react": { - "optional": true - }, - "svelte": { - "optional": true - }, - "vue": { - "optional": true - }, - "vue-router": { - "optional": true - } - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", - "dependencies": { - "streamsearch": "^1.1.0" - }, - "engines": { - "node": ">=10.16.0" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001747", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001747.tgz", - "integrity": "sha512-mzFa2DGIhuc5490Nd/G31xN1pnBnYMadtkyTjefPI7wzypqgCEpeWu9bJr0OnDsyKrW75zA9ZAt7pbQFmwLsQg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/chownr": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", - "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=18" - } - }, - "node_modules/class-variance-authority": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", - "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", - "license": "Apache-2.0", - "dependencies": { - "clsx": "^2.1.1" - }, - "funding": { - "url": "https://polar.sh/cva" - } - }, - "node_modules/client-only": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", - "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", - "license": "MIT" - }, - "node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/color": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", - "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", - "license": "MIT", - "optional": true, - "dependencies": { - "color-convert": "^2.0.1", - "color-string": "^1.9.0" - }, - "engines": { - "node": ">=12.5.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, - "node_modules/color-string": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", - "license": "MIT", - "optional": true, - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "devOptional": true, - "license": "MIT" - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/detect-libc": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.1.tgz", - "integrity": "sha512-ecqj/sy1jcK1uWrwpR67UhYrIFQ+5WlGxth34WquCbamhFA6hkkwiu37o6J5xCHdo1oixJRfVRw+ywV+Hq/0Aw==", - "devOptional": true, - "license": "Apache-2.0", - "engines": { - "node": ">=8" - } - }, - "node_modules/dijkstrajs": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz", - "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==", - "license": "MIT" - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/enhanced-resolve": { - "version": "5.18.3", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", - "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/geist": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/geist/-/geist-1.5.1.tgz", - "integrity": "sha512-mAHZxIsL2o3ZITFaBVFBnwyDOw+zNLYum6A6nIjpzCGIO8QtC3V76XF2RnZTyLx1wlDTmMDy8jg3Ib52MIjGvQ==", - "license": "SIL OPEN FONT LICENSE", - "peerDependencies": { - "next": ">=13.2.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/is-arrayish": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.4.tgz", - "integrity": "sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==", - "license": "MIT", - "optional": true - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jiti": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", - "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", - "dev": true, - "license": "MIT", - "bin": { - "jiti": "lib/jiti-cli.mjs" - } - }, - "node_modules/lightningcss": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.1.tgz", - "integrity": "sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==", - "dev": true, - "license": "MPL-2.0", - "dependencies": { - "detect-libc": "^2.0.3" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "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" - } - }, - "node_modules/lightningcss-darwin-arm64": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.1.tgz", - "integrity": "sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-darwin-x64": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.1.tgz", - "integrity": "sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-freebsd-x64": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.1.tgz", - "integrity": "sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.1.tgz", - "integrity": "sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.1.tgz", - "integrity": "sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.1.tgz", - "integrity": "sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.1.tgz", - "integrity": "sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-musl": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.1.tgz", - "integrity": "sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.1.tgz", - "integrity": "sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.30.1", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.1.tgz", - "integrity": "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lucide-react": { - "version": "0.454.0", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.454.0.tgz", - "integrity": "sha512-hw7zMDwykCLnEzgncEEjHeA6+45aeEzRYuKHuyRSOPkhko+J3ySGjGIzu+mmMfDFG1vazHepMaYFYHbTFAZAAQ==", - "license": "ISC", - "peerDependencies": { - "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc" - } - }, - "node_modules/magic-string": { - "version": "0.30.19", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.19.tgz", - "integrity": "sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5" - } - }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/minizlib": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", - "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.1.2" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/next": { - "version": "15.2.4", - "resolved": "https://registry.npmjs.org/next/-/next-15.2.4.tgz", - "integrity": "sha512-VwL+LAaPSxEkd3lU2xWbgEOtrM8oedmyhBqaVNmgKB+GvZlCy9rgaEc+y2on0wv+l0oSFqLtYD6dcC1eAedUaQ==", - "license": "MIT", - "dependencies": { - "@next/env": "15.2.4", - "@swc/counter": "0.1.3", - "@swc/helpers": "0.5.15", - "busboy": "1.6.0", - "caniuse-lite": "^1.0.30001579", - "postcss": "8.4.31", - "styled-jsx": "5.1.6" - }, - "bin": { - "next": "dist/bin/next" - }, - "engines": { - "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" - }, - "optionalDependencies": { - "@next/swc-darwin-arm64": "15.2.4", - "@next/swc-darwin-x64": "15.2.4", - "@next/swc-linux-arm64-gnu": "15.2.4", - "@next/swc-linux-arm64-musl": "15.2.4", - "@next/swc-linux-x64-gnu": "15.2.4", - "@next/swc-linux-x64-musl": "15.2.4", - "@next/swc-win32-arm64-msvc": "15.2.4", - "@next/swc-win32-x64-msvc": "15.2.4", - "sharp": "^0.33.5" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.1.0", - "@playwright/test": "^1.41.2", - "babel-plugin-react-compiler": "*", - "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", - "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", - "sass": "^1.3.0" - }, - "peerDependenciesMeta": { - "@opentelemetry/api": { - "optional": true - }, - "@playwright/test": { - "optional": true - }, - "babel-plugin-react-compiler": { - "optional": true - }, - "sass": { - "optional": true - } - } - }, - "node_modules/next-themes": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.4.6.tgz", - "integrity": "sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==", - "license": "MIT", - "peerDependencies": { - "react": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc" - } - }, - "node_modules/next/node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "license": "ISC" - }, - "node_modules/pngjs": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", - "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", - "license": "MIT", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.11", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/qrcode": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.4.tgz", - "integrity": "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==", - "license": "MIT", - "dependencies": { - "dijkstrajs": "^1.0.1", - "pngjs": "^5.0.0", - "yargs": "^15.3.1" - }, - "bin": { - "qrcode": "bin/qrcode" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/react": { - "version": "19.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-19.2.0.tgz", - "integrity": "sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "19.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.0.tgz", - "integrity": "sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ==", - "license": "MIT", - "dependencies": { - "scheduler": "^0.27.0" - }, - "peerDependencies": { - "react": "^19.2.0" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "license": "ISC" - }, - "node_modules/scheduler": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", - "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", - "license": "MIT" - }, - "node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", - "license": "ISC", - "optional": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "license": "ISC" - }, - "node_modules/sharp": { - "version": "0.33.5", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", - "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", - "hasInstallScript": true, - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "color": "^4.2.3", - "detect-libc": "^2.0.3", - "semver": "^7.6.3" - }, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-darwin-arm64": "0.33.5", - "@img/sharp-darwin-x64": "0.33.5", - "@img/sharp-libvips-darwin-arm64": "1.0.4", - "@img/sharp-libvips-darwin-x64": "1.0.4", - "@img/sharp-libvips-linux-arm": "1.0.5", - "@img/sharp-libvips-linux-arm64": "1.0.4", - "@img/sharp-libvips-linux-s390x": "1.0.4", - "@img/sharp-libvips-linux-x64": "1.0.4", - "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", - "@img/sharp-libvips-linuxmusl-x64": "1.0.4", - "@img/sharp-linux-arm": "0.33.5", - "@img/sharp-linux-arm64": "0.33.5", - "@img/sharp-linux-s390x": "0.33.5", - "@img/sharp-linux-x64": "0.33.5", - "@img/sharp-linuxmusl-arm64": "0.33.5", - "@img/sharp-linuxmusl-x64": "0.33.5", - "@img/sharp-wasm32": "0.33.5", - "@img/sharp-win32-ia32": "0.33.5", - "@img/sharp-win32-x64": "0.33.5" - } - }, - "node_modules/simple-swizzle": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.4.tgz", - "integrity": "sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==", - "license": "MIT", - "optional": true, - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/streamsearch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/styled-jsx": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", - "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", - "license": "MIT", - "dependencies": { - "client-only": "0.0.1" - }, - "engines": { - "node": ">= 12.0.0" - }, - "peerDependencies": { - "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "babel-plugin-macros": { - "optional": true - } - } - }, - "node_modules/tailwind-merge": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.6.0.tgz", - "integrity": "sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/dcastil" - } - }, - "node_modules/tailwindcss": { - "version": "4.1.14", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.14.tgz", - "integrity": "sha512-b7pCxjGO98LnxVkKjaZSDeNuljC4ueKUddjENJOADtubtdo8llTaJy7HwBMeLNSSo2N5QIAgklslK1+Ir8r6CA==", - "license": "MIT" - }, - "node_modules/tailwindcss-animate": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", - "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", - "license": "MIT", - "peerDependencies": { - "tailwindcss": ">=3.0.0 || insiders" - } - }, - "node_modules/tapable": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", - "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/tar": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.1.tgz", - "integrity": "sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g==", - "dev": true, - "license": "ISC", - "dependencies": { - "@isaacs/fs-minipass": "^4.0.0", - "chownr": "^3.0.0", - "minipass": "^7.1.2", - "minizlib": "^3.1.0", - "yallist": "^5.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/tw-animate-css": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/tw-animate-css/-/tw-animate-css-1.4.0.tgz", - "integrity": "sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/Wombosvideo" - } - }, - "node_modules/typescript": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", - "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/which-module": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", - "license": "ISC" - }, - "node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "license": "ISC" - }, - "node_modules/yallist": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", - "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": ">=18" - } - }, - "node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "license": "MIT", - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "license": "ISC", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - } - } -} +{ + "name": "dynamic-qris-generator", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "@radix-ui/react-label": "latest", + "@radix-ui/react-slot": "latest", + "@vercel/analytics": "latest", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "geist": "latest", + "lucide-react": "^0.454.0", + "next": "15.2.4", + "next-themes": "latest", + "qrcode": "latest", + "react": "^19", + "react-dom": "^19", + "tailwind-merge": "^2.5.5", + "tailwindcss-animate": "^1.0.7", + "tw-animate-css": "latest" + }, + "devDependencies": { + "@tailwindcss/postcss": "^4.1.9", + "@types/node": "^22", + "@types/qrcode": "^1.5.5", + "@types/react": "^19", + "@types/react-dom": "^19", + "postcss": "^8.5", + "tailwindcss": "^4.1.9", + "typescript": "^5" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.5.0.tgz", + "integrity": "sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", + "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", + "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", + "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", + "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", + "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", + "cpu": [ + "arm" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", + "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", + "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", + "cpu": [ + "s390x" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", + "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", + "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", + "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", + "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.0.5" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", + "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", + "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", + "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", + "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", + "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", + "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.2.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", + "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", + "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@next/env": { + "version": "15.2.4", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.2.4.tgz", + "integrity": "sha512-+SFtMgoiYP3WoSswuNmxJOCwi06TdWE733D+WPjpXIe4LXGULwEaofiiAy6kbS0+XjM5xF5n3lKuBwN2SnqD9g==", + "license": "MIT" + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "15.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.2.4.tgz", + "integrity": "sha512-1AnMfs655ipJEDC/FHkSr0r3lXBgpqKo4K1kiwfUf3iE68rDFXZ1TtHdMvf7D0hMItgDZ7Vuq3JgNMbt/+3bYw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "15.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.2.4.tgz", + "integrity": "sha512-3qK2zb5EwCwxnO2HeO+TRqCubeI/NgCe+kL5dTJlPldV/uwCnUgC7VbEzgmxbfrkbjehL4H9BPztWOEtsoMwew==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "15.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.2.4.tgz", + "integrity": "sha512-HFN6GKUcrTWvem8AZN7tT95zPb0GUGv9v0d0iyuTb303vbXkkbHDp/DxufB04jNVD+IN9yHy7y/6Mqq0h0YVaQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "15.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.2.4.tgz", + "integrity": "sha512-Oioa0SORWLwi35/kVB8aCk5Uq+5/ZIumMK1kJV+jSdazFm2NzPDztsefzdmzzpx5oGCJ6FkUC7vkaUseNTStNA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "15.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.2.4.tgz", + "integrity": "sha512-yb5WTRaHdkgOqFOZiu6rHV1fAEK0flVpaIN2HB6kxHVSy/dIajWbThS7qON3W9/SNOH2JWkVCyulgGYekMePuw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "15.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.2.4.tgz", + "integrity": "sha512-Dcdv/ix6srhkM25fgXiyOieFUkz+fOYkHlydWCtB0xMST6X9XYI3yPDKBZt1xuhOytONsIFJFB08xXYsxUwJLw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "15.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.2.4.tgz", + "integrity": "sha512-dW0i7eukvDxtIhCYkMrZNQfNicPDExt2jPb9AZPpL7cfyUo7QSNl1DjsHjmmKp6qNAqUESyT8YFl/Aw91cNJJg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "15.2.4", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.2.4.tgz", + "integrity": "sha512-SbnWkJmkS7Xl3kre8SdMF6F/XDh1DTFEhp0jRTj/uB8iPKoU2bb2NDfcu+iifv1+mxQEd1g2vvSxcZbXSKyWiQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-label": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.7.tgz", + "integrity": "sha512-YT1GqPSL8kJn20djelMX7/cTRp/Y9w5IZHvfxQTVHrOqa2yMl7i/UfMqKRU5V7mEyKTrUVgJXhNQPVCG8PBLoQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", + "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", + "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "license": "Apache-2.0" + }, + "node_modules/@swc/helpers": { + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", + "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@tailwindcss/node": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.14.tgz", + "integrity": "sha512-hpz+8vFk3Ic2xssIA3e01R6jkmsAhvkQdXlEbRTk6S10xDAtiQiM3FyvZVGsucefq764euO/b8WUW9ysLdThHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.4", + "enhanced-resolve": "^5.18.3", + "jiti": "^2.6.0", + "lightningcss": "1.30.1", + "magic-string": "^0.30.19", + "source-map-js": "^1.2.1", + "tailwindcss": "4.1.14" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.14.tgz", + "integrity": "sha512-23yx+VUbBwCg2x5XWdB8+1lkPajzLmALEfMb51zZUBYaYVPDQvBSD/WYDqiVyBIo2BZFa3yw1Rpy3G2Jp+K0dw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "detect-libc": "^2.0.4", + "tar": "^7.5.1" + }, + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.1.14", + "@tailwindcss/oxide-darwin-arm64": "4.1.14", + "@tailwindcss/oxide-darwin-x64": "4.1.14", + "@tailwindcss/oxide-freebsd-x64": "4.1.14", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.14", + "@tailwindcss/oxide-linux-arm64-gnu": "4.1.14", + "@tailwindcss/oxide-linux-arm64-musl": "4.1.14", + "@tailwindcss/oxide-linux-x64-gnu": "4.1.14", + "@tailwindcss/oxide-linux-x64-musl": "4.1.14", + "@tailwindcss/oxide-wasm32-wasi": "4.1.14", + "@tailwindcss/oxide-win32-arm64-msvc": "4.1.14", + "@tailwindcss/oxide-win32-x64-msvc": "4.1.14" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.14.tgz", + "integrity": "sha512-a94ifZrGwMvbdeAxWoSuGcIl6/DOP5cdxagid7xJv6bwFp3oebp7y2ImYsnZBMTwjn5Ev5xESvS3FFYUGgPODQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.14.tgz", + "integrity": "sha512-HkFP/CqfSh09xCnrPJA7jud7hij5ahKyWomrC3oiO2U9i0UjP17o9pJbxUN0IJ471GTQQmzwhp0DEcpbp4MZTA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.14.tgz", + "integrity": "sha512-eVNaWmCgdLf5iv6Qd3s7JI5SEFBFRtfm6W0mphJYXgvnDEAZ5sZzqmI06bK6xo0IErDHdTA5/t7d4eTfWbWOFw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.14.tgz", + "integrity": "sha512-QWLoRXNikEuqtNb0dhQN6wsSVVjX6dmUFzuuiL09ZeXju25dsei2uIPl71y2Ic6QbNBsB4scwBoFnlBfabHkEw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.14.tgz", + "integrity": "sha512-VB4gjQni9+F0VCASU+L8zSIyjrLLsy03sjcR3bM0V2g4SNamo0FakZFKyUQ96ZVwGK4CaJsc9zd/obQy74o0Fw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.14.tgz", + "integrity": "sha512-qaEy0dIZ6d9vyLnmeg24yzA8XuEAD9WjpM5nIM1sUgQ/Zv7cVkharPDQcmm/t/TvXoKo/0knI3me3AGfdx6w1w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.14.tgz", + "integrity": "sha512-ISZjT44s59O8xKsPEIesiIydMG/sCXoMBCqsphDm/WcbnuWLxxb+GcvSIIA5NjUw6F8Tex7s5/LM2yDy8RqYBQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.14.tgz", + "integrity": "sha512-02c6JhLPJj10L2caH4U0zF8Hji4dOeahmuMl23stk0MU1wfd1OraE7rOloidSF8W5JTHkFdVo/O7uRUJJnUAJg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.14.tgz", + "integrity": "sha512-TNGeLiN1XS66kQhxHG/7wMeQDOoL0S33x9BgmydbrWAb9Qw0KYdd8o1ifx4HOGDWhVmJ+Ul+JQ7lyknQFilO3Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.14.tgz", + "integrity": "sha512-uZYAsaW/jS/IYkd6EWPJKW/NlPNSkWkBlaeVBi/WsFQNP05/bzkebUL8FH1pdsqx4f2fH/bWFcUABOM9nfiJkQ==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.5.0", + "@emnapi/runtime": "^1.5.0", + "@emnapi/wasi-threads": "^1.1.0", + "@napi-rs/wasm-runtime": "^1.0.5", + "@tybys/wasm-util": "^0.10.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.14.tgz", + "integrity": "sha512-Az0RnnkcvRqsuoLH2Z4n3JfAef0wElgzHD5Aky/e+0tBUxUhIeIqFBTMNQvmMRSP15fWwmvjBxZ3Q8RhsDnxAA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.14.tgz", + "integrity": "sha512-ttblVGHgf68kEE4om1n/n44I0yGPkCPbLsqzjvybhpwa6mKKtgFfAzy6btc3HRmuW7nHe0OOrSeNP9sQmmH9XA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/postcss": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.1.14.tgz", + "integrity": "sha512-BdMjIxy7HUNThK87C7BC8I1rE8BVUsfNQSI5siQ4JK3iIa3w0XyVvVL9SXLWO//CtYTcp1v7zci0fYwJOjB+Zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "@tailwindcss/node": "4.1.14", + "@tailwindcss/oxide": "4.1.14", + "postcss": "^8.4.41", + "tailwindcss": "4.1.14" + } + }, + "node_modules/@types/node": { + "version": "22.18.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.18.8.tgz", + "integrity": "sha512-pAZSHMiagDR7cARo/cch1f3rXy0AEXwsVsVH09FcyeJVAzCnGgmYis7P3JidtTUjyadhTeSo8TgRPswstghDaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@types/qrcode": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@types/qrcode/-/qrcode-1.5.5.tgz", + "integrity": "sha512-CdfBi/e3Qk+3Z/fXYShipBT13OJ2fDO2Q2w5CIP5anLTLIndQG9z6P1cnm+8zCWSpm5dnxMFd/uREtb0EXuQzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/react": { + "version": "19.2.0", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.0.tgz", + "integrity": "sha512-1LOH8xovvsKsCBq1wnT4ntDUdCJKmnEakhsuoUSy6ExlHCkGP2hqnatagYTgFk6oeL0VU31u7SNjunPN+GchtA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.2.0", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.0.tgz", + "integrity": "sha512-brtBs0MnE9SMx7px208g39lRmC5uHZs96caOJfTjFcYSLHNamvaSMfJNagChVNkup2SdtOxKX1FDBkRSJe1ZAg==", + "devOptional": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.2.0" + } + }, + "node_modules/@vercel/analytics": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@vercel/analytics/-/analytics-1.5.0.tgz", + "integrity": "sha512-MYsBzfPki4gthY5HnYN7jgInhAZ7Ac1cYDoRWFomwGHWEX7odTEzbtg9kf/QSo7XEsEAqlQugA6gJ2WS2DEa3g==", + "license": "MPL-2.0", + "peerDependencies": { + "@remix-run/react": "^2", + "@sveltejs/kit": "^1 || ^2", + "next": ">= 13", + "react": "^18 || ^19 || ^19.0.0-rc", + "svelte": ">= 4", + "vue": "^3", + "vue-router": "^4" + }, + "peerDependenciesMeta": { + "@remix-run/react": { + "optional": true + }, + "@sveltejs/kit": { + "optional": true + }, + "next": { + "optional": true + }, + "react": { + "optional": true + }, + "svelte": { + "optional": true + }, + "vue": { + "optional": true + }, + "vue-router": { + "optional": true + } + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001747", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001747.tgz", + "integrity": "sha512-mzFa2DGIhuc5490Nd/G31xN1pnBnYMadtkyTjefPI7wzypqgCEpeWu9bJr0OnDsyKrW75zA9ZAt7pbQFmwLsQg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/class-variance-authority": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", + "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", + "license": "Apache-2.0", + "dependencies": { + "clsx": "^2.1.1" + }, + "funding": { + "url": "https://polar.sh/cva" + } + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", + "license": "MIT" + }, + "node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "license": "MIT", + "optional": true, + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "license": "MIT", + "optional": true, + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-libc": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.1.tgz", + "integrity": "sha512-ecqj/sy1jcK1uWrwpR67UhYrIFQ+5WlGxth34WquCbamhFA6hkkwiu37o6J5xCHdo1oixJRfVRw+ywV+Hq/0Aw==", + "devOptional": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/dijkstrajs": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz", + "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==", + "license": "MIT" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/enhanced-resolve": { + "version": "5.18.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", + "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/geist": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/geist/-/geist-1.5.1.tgz", + "integrity": "sha512-mAHZxIsL2o3ZITFaBVFBnwyDOw+zNLYum6A6nIjpzCGIO8QtC3V76XF2RnZTyLx1wlDTmMDy8jg3Ib52MIjGvQ==", + "license": "SIL OPEN FONT LICENSE", + "peerDependencies": { + "next": ">=13.2.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/is-arrayish": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.4.tgz", + "integrity": "sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==", + "license": "MIT", + "optional": true + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jiti": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/lightningcss": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.1.tgz", + "integrity": "sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "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" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.1.tgz", + "integrity": "sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.1.tgz", + "integrity": "sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.1.tgz", + "integrity": "sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.1.tgz", + "integrity": "sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.1.tgz", + "integrity": "sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.1.tgz", + "integrity": "sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.1.tgz", + "integrity": "sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.1.tgz", + "integrity": "sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.1.tgz", + "integrity": "sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.1.tgz", + "integrity": "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lucide-react": { + "version": "0.454.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.454.0.tgz", + "integrity": "sha512-hw7zMDwykCLnEzgncEEjHeA6+45aeEzRYuKHuyRSOPkhko+J3ySGjGIzu+mmMfDFG1vazHepMaYFYHbTFAZAAQ==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc" + } + }, + "node_modules/magic-string": { + "version": "0.30.19", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.19.tgz", + "integrity": "sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minizlib": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", + "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/next": { + "version": "15.2.4", + "resolved": "https://registry.npmjs.org/next/-/next-15.2.4.tgz", + "integrity": "sha512-VwL+LAaPSxEkd3lU2xWbgEOtrM8oedmyhBqaVNmgKB+GvZlCy9rgaEc+y2on0wv+l0oSFqLtYD6dcC1eAedUaQ==", + "license": "MIT", + "dependencies": { + "@next/env": "15.2.4", + "@swc/counter": "0.1.3", + "@swc/helpers": "0.5.15", + "busboy": "1.6.0", + "caniuse-lite": "^1.0.30001579", + "postcss": "8.4.31", + "styled-jsx": "5.1.6" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "15.2.4", + "@next/swc-darwin-x64": "15.2.4", + "@next/swc-linux-arm64-gnu": "15.2.4", + "@next/swc-linux-arm64-musl": "15.2.4", + "@next/swc-linux-x64-gnu": "15.2.4", + "@next/swc-linux-x64-musl": "15.2.4", + "@next/swc-win32-arm64-msvc": "15.2.4", + "@next/swc-win32-x64-msvc": "15.2.4", + "sharp": "^0.33.5" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "@playwright/test": "^1.41.2", + "babel-plugin-react-compiler": "*", + "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "@playwright/test": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/next-themes": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.4.6.tgz", + "integrity": "sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc" + } + }, + "node_modules/next/node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/pngjs": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", + "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/qrcode": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.4.tgz", + "integrity": "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==", + "license": "MIT", + "dependencies": { + "dijkstrajs": "^1.0.1", + "pngjs": "^5.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "qrcode": "bin/qrcode" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/react": { + "version": "19.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.0.tgz", + "integrity": "sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.0.tgz", + "integrity": "sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "license": "ISC" + }, + "node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "license": "ISC" + }, + "node_modules/sharp": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", + "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", + "hasInstallScript": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.3", + "semver": "^7.6.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.33.5", + "@img/sharp-darwin-x64": "0.33.5", + "@img/sharp-libvips-darwin-arm64": "1.0.4", + "@img/sharp-libvips-darwin-x64": "1.0.4", + "@img/sharp-libvips-linux-arm": "1.0.5", + "@img/sharp-libvips-linux-arm64": "1.0.4", + "@img/sharp-libvips-linux-s390x": "1.0.4", + "@img/sharp-libvips-linux-x64": "1.0.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", + "@img/sharp-libvips-linuxmusl-x64": "1.0.4", + "@img/sharp-linux-arm": "0.33.5", + "@img/sharp-linux-arm64": "0.33.5", + "@img/sharp-linux-s390x": "0.33.5", + "@img/sharp-linux-x64": "0.33.5", + "@img/sharp-linuxmusl-arm64": "0.33.5", + "@img/sharp-linuxmusl-x64": "0.33.5", + "@img/sharp-wasm32": "0.33.5", + "@img/sharp-win32-ia32": "0.33.5", + "@img/sharp-win32-x64": "0.33.5" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.4.tgz", + "integrity": "sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==", + "license": "MIT", + "optional": true, + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/styled-jsx": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", + "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", + "license": "MIT", + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/tailwind-merge": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.6.0.tgz", + "integrity": "sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwindcss": { + "version": "4.1.14", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.14.tgz", + "integrity": "sha512-b7pCxjGO98LnxVkKjaZSDeNuljC4ueKUddjENJOADtubtdo8llTaJy7HwBMeLNSSo2N5QIAgklslK1+Ir8r6CA==", + "license": "MIT" + }, + "node_modules/tailwindcss-animate": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", + "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", + "license": "MIT", + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, + "node_modules/tapable": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/tar": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.1.tgz", + "integrity": "sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g==", + "dev": true, + "license": "ISC", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.1.0", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tw-animate-css": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/tw-animate-css/-/tw-animate-css-1.4.0.tgz", + "integrity": "sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Wombosvideo" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "license": "ISC" + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "license": "ISC" + }, + "node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "license": "MIT", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + } + } +} diff --git a/legacy/package.json b/legacy/package.json new file mode 100644 index 0000000..37a6a22 --- /dev/null +++ b/legacy/package.json @@ -0,0 +1,35 @@ +{ + "scripts": { + "build": "next build", + "dev": "next dev", + "lint": "next lint", + "start": "next start" + }, + "dependencies": { + "@radix-ui/react-label": "latest", + "@radix-ui/react-slot": "latest", + "@vercel/analytics": "latest", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "geist": "latest", + "lucide-react": "^0.454.0", + "next": "15.2.4", + "next-themes": "latest", + "qrcode": "latest", + "react": "^19", + "react-dom": "^19", + "tailwind-merge": "^2.5.5", + "tailwindcss-animate": "^1.0.7", + "tw-animate-css": "latest" + }, + "devDependencies": { + "@tailwindcss/postcss": "^4.1.9", + "@types/node": "^22", + "@types/qrcode": "^1.5.5", + "@types/react": "^19", + "@types/react-dom": "^19", + "postcss": "^8.5", + "tailwindcss": "^4.1.9", + "typescript": "^5" + } +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/legacy/pnpm-lock.yaml similarity index 97% rename from pnpm-lock.yaml rename to legacy/pnpm-lock.yaml index 2e7431a..61e2aa0 100644 --- a/pnpm-lock.yaml +++ b/legacy/pnpm-lock.yaml @@ -1,1411 +1,1411 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - dependencies: - '@radix-ui/react-label': - specifier: latest - version: 2.1.7(@types/react-dom@19.0.0)(@types/react@19.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@radix-ui/react-slot': - specifier: latest - version: 1.2.3(@types/react@19.0.0)(react@19.0.0) - '@vercel/analytics': - specifier: latest - version: 1.5.0(next@15.2.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0) - class-variance-authority: - specifier: ^0.7.1 - version: 0.7.1 - clsx: - specifier: ^2.1.1 - version: 2.1.1 - geist: - specifier: latest - version: 1.5.1(next@15.2.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) - lucide-react: - specifier: ^0.454.0 - version: 0.454.0(react@19.0.0) - next: - specifier: 15.2.4 - version: 15.2.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - next-themes: - specifier: latest - version: 0.4.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - qrcode: - specifier: latest - version: 1.5.4 - react: - specifier: ^19 - version: 19.0.0 - react-dom: - specifier: ^19 - version: 19.0.0(react@19.0.0) - tailwind-merge: - specifier: ^2.5.5 - version: 2.5.5 - tailwindcss-animate: - specifier: ^1.0.7 - version: 1.0.7(tailwindcss@4.1.9) - tw-animate-css: - specifier: latest - version: 1.4.0 - devDependencies: - '@tailwindcss/postcss': - specifier: ^4.1.9 - version: 4.1.9 - '@types/node': - specifier: ^22 - version: 22.0.0 - '@types/qrcode': - specifier: ^1.5.5 - version: 1.5.5 - '@types/react': - specifier: ^19 - version: 19.0.0 - '@types/react-dom': - specifier: ^19 - version: 19.0.0 - postcss: - specifier: ^8.5 - version: 8.5.0 - tailwindcss: - specifier: ^4.1.9 - version: 4.1.9 - typescript: - specifier: ^5 - version: 5.0.2 - -packages: - - '@alloc/quick-lru@5.2.0': - resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} - engines: {node: '>=10'} - - '@ampproject/remapping@2.3.0': - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} - - '@emnapi/runtime@1.5.0': - resolution: {integrity: sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==} - - '@img/sharp-darwin-arm64@0.33.5': - resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [darwin] - - '@img/sharp-darwin-x64@0.33.5': - resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [darwin] - - '@img/sharp-libvips-darwin-arm64@1.0.4': - resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} - cpu: [arm64] - os: [darwin] - - '@img/sharp-libvips-darwin-x64@1.0.4': - resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} - cpu: [x64] - os: [darwin] - - '@img/sharp-libvips-linux-arm64@1.0.4': - resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} - cpu: [arm64] - os: [linux] - - '@img/sharp-libvips-linux-arm@1.0.5': - resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} - cpu: [arm] - os: [linux] - - '@img/sharp-libvips-linux-s390x@1.0.4': - resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} - cpu: [s390x] - os: [linux] - - '@img/sharp-libvips-linux-x64@1.0.4': - resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} - cpu: [x64] - os: [linux] - - '@img/sharp-libvips-linuxmusl-arm64@1.0.4': - resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} - cpu: [arm64] - os: [linux] - - '@img/sharp-libvips-linuxmusl-x64@1.0.4': - resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} - cpu: [x64] - os: [linux] - - '@img/sharp-linux-arm64@0.33.5': - resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [linux] - - '@img/sharp-linux-arm@0.33.5': - resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm] - os: [linux] - - '@img/sharp-linux-s390x@0.33.5': - resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [s390x] - os: [linux] - - '@img/sharp-linux-x64@0.33.5': - resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [linux] - - '@img/sharp-linuxmusl-arm64@0.33.5': - resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [linux] - - '@img/sharp-linuxmusl-x64@0.33.5': - resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [linux] - - '@img/sharp-wasm32@0.33.5': - resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [wasm32] - - '@img/sharp-win32-ia32@0.33.5': - resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [ia32] - os: [win32] - - '@img/sharp-win32-x64@0.33.5': - resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [win32] - - '@isaacs/fs-minipass@4.0.1': - resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} - engines: {node: '>=18.0.0'} - - '@jridgewell/gen-mapping@0.3.13': - resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} - - '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - - '@jridgewell/sourcemap-codec@1.5.5': - resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} - - '@jridgewell/trace-mapping@0.3.31': - resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} - - '@next/env@15.2.4': - resolution: {integrity: sha512-+SFtMgoiYP3WoSswuNmxJOCwi06TdWE733D+WPjpXIe4LXGULwEaofiiAy6kbS0+XjM5xF5n3lKuBwN2SnqD9g==} - - '@next/swc-darwin-arm64@15.2.4': - resolution: {integrity: sha512-1AnMfs655ipJEDC/FHkSr0r3lXBgpqKo4K1kiwfUf3iE68rDFXZ1TtHdMvf7D0hMItgDZ7Vuq3JgNMbt/+3bYw==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - - '@next/swc-darwin-x64@15.2.4': - resolution: {integrity: sha512-3qK2zb5EwCwxnO2HeO+TRqCubeI/NgCe+kL5dTJlPldV/uwCnUgC7VbEzgmxbfrkbjehL4H9BPztWOEtsoMwew==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - - '@next/swc-linux-arm64-gnu@15.2.4': - resolution: {integrity: sha512-HFN6GKUcrTWvem8AZN7tT95zPb0GUGv9v0d0iyuTb303vbXkkbHDp/DxufB04jNVD+IN9yHy7y/6Mqq0h0YVaQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@next/swc-linux-arm64-musl@15.2.4': - resolution: {integrity: sha512-Oioa0SORWLwi35/kVB8aCk5Uq+5/ZIumMK1kJV+jSdazFm2NzPDztsefzdmzzpx5oGCJ6FkUC7vkaUseNTStNA==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@next/swc-linux-x64-gnu@15.2.4': - resolution: {integrity: sha512-yb5WTRaHdkgOqFOZiu6rHV1fAEK0flVpaIN2HB6kxHVSy/dIajWbThS7qON3W9/SNOH2JWkVCyulgGYekMePuw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@next/swc-linux-x64-musl@15.2.4': - resolution: {integrity: sha512-Dcdv/ix6srhkM25fgXiyOieFUkz+fOYkHlydWCtB0xMST6X9XYI3yPDKBZt1xuhOytONsIFJFB08xXYsxUwJLw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@next/swc-win32-arm64-msvc@15.2.4': - resolution: {integrity: sha512-dW0i7eukvDxtIhCYkMrZNQfNicPDExt2jPb9AZPpL7cfyUo7QSNl1DjsHjmmKp6qNAqUESyT8YFl/Aw91cNJJg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - - '@next/swc-win32-x64-msvc@15.2.4': - resolution: {integrity: sha512-SbnWkJmkS7Xl3kre8SdMF6F/XDh1DTFEhp0jRTj/uB8iPKoU2bb2NDfcu+iifv1+mxQEd1g2vvSxcZbXSKyWiQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - - '@radix-ui/react-compose-refs@1.1.2': - resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-label@2.1.7': - resolution: {integrity: sha512-YT1GqPSL8kJn20djelMX7/cTRp/Y9w5IZHvfxQTVHrOqa2yMl7i/UfMqKRU5V7mEyKTrUVgJXhNQPVCG8PBLoQ==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-primitive@2.1.3': - resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-slot@1.2.3': - resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@swc/counter@0.1.3': - resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} - - '@swc/helpers@0.5.15': - resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} - - '@tailwindcss/node@4.1.9': - resolution: {integrity: sha512-ZFsgw6lbtcZKYPWvf6zAuCVSuer7UQ2Z5P8BETHcpA4x/3NwOjAIXmRnYfG77F14f9bPeuR4GaNz3ji1JkQMeQ==} - - '@tailwindcss/oxide-android-arm64@4.1.9': - resolution: {integrity: sha512-X4mBUUJ3DPqODhtdT5Ju55feJwBN+hP855Z7c0t11Jzece9KRtdM41ljMrCcureKMh96mcOh2gxahkp1yE+BOQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [android] - - '@tailwindcss/oxide-darwin-arm64@4.1.9': - resolution: {integrity: sha512-jnWnqz71ZLXUbJLW53m9dSQakLBfaWxAd9TAibimrNdQfZKyie+xGppdDCZExtYwUdflt3kOT9y1JUgYXVEQmw==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - - '@tailwindcss/oxide-darwin-x64@4.1.9': - resolution: {integrity: sha512-+Ui6LlvZ6aCPvSwv3l16nYb6gu1N6RamFz7hSu5aqaiPrDQqD1LPT/e8r2/laSVwFjRyOZxQQ/gvGxP3ihA2rw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - - '@tailwindcss/oxide-freebsd-x64@4.1.9': - resolution: {integrity: sha512-BWqCh0uoXMprwWfG7+oyPW53VCh6G08pxY0IIN/i5DQTpPnCJ4zm2W8neH9kW1v1f6RXP3b2qQjAzrAcnQ5e9w==} - engines: {node: '>= 10'} - cpu: [x64] - os: [freebsd] - - '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.9': - resolution: {integrity: sha512-U8itjQb5TVc80aV5Yo+JtKo+qS95CV4XLrKEtSLQFoTD/c9j3jk4WZipYT+9Jxqem29qCMRPxjEZ3s+wTT4XCw==} - engines: {node: '>= 10'} - cpu: [arm] - os: [linux] - - '@tailwindcss/oxide-linux-arm64-gnu@4.1.9': - resolution: {integrity: sha512-dKlGraoNvyTrR7ovLw3Id9yTwc+l0NYg8bwOkYqk+zltvGns8bPvVr6PH5jATdc75kCGd6kDRmP4p1LwqCnPJQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@tailwindcss/oxide-linux-arm64-musl@4.1.9': - resolution: {integrity: sha512-qCZ4QTrZaBEgNM13pGjvakdmid1Kw3CUCEQzgVAn64Iud7zSxOGwK1usg+hrwrOfFH7vXZZr8OhzC8fJTRq5NA==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@tailwindcss/oxide-linux-x64-gnu@4.1.9': - resolution: {integrity: sha512-bmzkAWQjRlY9udmg/a1bOtZpV14ZCdrB74PZrd7Oz/wK62Rk+m9+UV3BsgGfOghyO5Qu5ZDciADzDMZbi9n1+g==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@tailwindcss/oxide-linux-x64-musl@4.1.9': - resolution: {integrity: sha512-NpvPQsXj1raDHhd+g2SUvZQoTPWfYAsyYo9h4ZqV7EOmR+aj7LCAE5hnXNnrJ5Egy/NiO3Hs7BNpSbsPEOpORg==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@tailwindcss/oxide-wasm32-wasi@4.1.9': - resolution: {integrity: sha512-G93Yuf3xrpTxDUCSh685d1dvOkqOB0Gy+Bchv9Zy3k+lNw/9SEgsHit50xdvp1/p9yRH2TeDHJeDLUiV4mlTkA==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] - bundledDependencies: - - '@napi-rs/wasm-runtime' - - '@emnapi/core' - - '@emnapi/runtime' - - '@tybys/wasm-util' - - '@emnapi/wasi-threads' - - tslib - - '@tailwindcss/oxide-win32-arm64-msvc@4.1.9': - resolution: {integrity: sha512-Eq9FZzZe/NPkUiSMY+eY7r5l7msuFlm6wC6lnV11m8885z0vs9zx48AKTfw0UbVecTRV5wMxKb3Kmzx2LoUIWg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - - '@tailwindcss/oxide-win32-x64-msvc@4.1.9': - resolution: {integrity: sha512-oZ4zkthMXMJN2w/vu3jEfuqWTW7n8giGYDV/SfhBGRNehNMOBqh3YUAEv+8fv2YDJEzL4JpXTNTiSXW3UiUwBw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - - '@tailwindcss/oxide@4.1.9': - resolution: {integrity: sha512-oqjNxOBt1iNRAywjiH+VFsfovx/hVt4mxe0kOkRMAbbcCwbJg5e2AweFqyGN7gtmE1TJXnvnyX7RWTR1l72ciQ==} - engines: {node: '>= 10'} - - '@tailwindcss/postcss@4.1.9': - resolution: {integrity: sha512-v3DKzHibZO8ioVDmuVHCW1PR0XSM7nS40EjZFJEA1xPuvTuQPaR5flE1LyikU3hu2u1KNWBtEaSe8qsQjX3tyg==} - - '@types/node@22.0.0': - resolution: {integrity: sha512-VT7KSYudcPOzP5Q0wfbowyNLaVR8QWUdw+088uFWwfvpY6uCWaXpqV6ieLAu9WBcnTa7H4Z5RLK8I5t2FuOcqw==} - - '@types/qrcode@1.5.5': - resolution: {integrity: sha512-CdfBi/e3Qk+3Z/fXYShipBT13OJ2fDO2Q2w5CIP5anLTLIndQG9z6P1cnm+8zCWSpm5dnxMFd/uREtb0EXuQzg==} - - '@types/react-dom@19.0.0': - resolution: {integrity: sha512-1KfiQKsH1o00p9m5ag12axHQSb3FOU9H20UTrujVSkNhuCrRHiQWFqgEnTNK5ZNfnzZv8UWrnXVqCmCF9fgY3w==} - - '@types/react@19.0.0': - resolution: {integrity: sha512-MY3oPudxvMYyesqs/kW1Bh8y9VqSmf+tzqw3ae8a9DZW68pUe3zAdHeI1jc6iAysuRdACnVknHP8AhwD4/dxtg==} - - '@vercel/analytics@1.5.0': - resolution: {integrity: sha512-MYsBzfPki4gthY5HnYN7jgInhAZ7Ac1cYDoRWFomwGHWEX7odTEzbtg9kf/QSo7XEsEAqlQugA6gJ2WS2DEa3g==} - peerDependencies: - '@remix-run/react': ^2 - '@sveltejs/kit': ^1 || ^2 - next: '>= 13' - react: ^18 || ^19 || ^19.0.0-rc - svelte: '>= 4' - vue: ^3 - vue-router: ^4 - peerDependenciesMeta: - '@remix-run/react': - optional: true - '@sveltejs/kit': - optional: true - next: - optional: true - react: - optional: true - svelte: - optional: true - vue: - optional: true - vue-router: - optional: true - - ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - - busboy@1.6.0: - resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} - engines: {node: '>=10.16.0'} - - camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - - caniuse-lite@1.0.30001747: - resolution: {integrity: sha512-mzFa2DGIhuc5490Nd/G31xN1pnBnYMadtkyTjefPI7wzypqgCEpeWu9bJr0OnDsyKrW75zA9ZAt7pbQFmwLsQg==} - - chownr@3.0.0: - resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} - engines: {node: '>=18'} - - class-variance-authority@0.7.1: - resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} - - client-only@0.0.1: - resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} - - cliui@6.0.0: - resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} - - clsx@2.1.1: - resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} - engines: {node: '>=6'} - - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - color-string@1.9.1: - resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} - - color@4.2.3: - resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} - engines: {node: '>=12.5.0'} - - csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - - decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} - - detect-libc@2.1.1: - resolution: {integrity: sha512-ecqj/sy1jcK1uWrwpR67UhYrIFQ+5WlGxth34WquCbamhFA6hkkwiu37o6J5xCHdo1oixJRfVRw+ywV+Hq/0Aw==} - engines: {node: '>=8'} - - dijkstrajs@1.0.3: - resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==} - - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - - enhanced-resolve@5.18.3: - resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} - engines: {node: '>=10.13.0'} - - find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - - geist@1.5.1: - resolution: {integrity: sha512-mAHZxIsL2o3ZITFaBVFBnwyDOw+zNLYum6A6nIjpzCGIO8QtC3V76XF2RnZTyLx1wlDTmMDy8jg3Ib52MIjGvQ==} - peerDependencies: - next: '>=13.2.0' - - get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - - is-arrayish@0.3.4: - resolution: {integrity: sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==} - - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - - jiti@2.6.1: - resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} - hasBin: true - - 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'} - - locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - - lucide-react@0.454.0: - resolution: {integrity: sha512-hw7zMDwykCLnEzgncEEjHeA6+45aeEzRYuKHuyRSOPkhko+J3ySGjGIzu+mmMfDFG1vazHepMaYFYHbTFAZAAQ==} - peerDependencies: - react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc - - magic-string@0.30.19: - resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==} - - minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} - engines: {node: '>=16 || 14 >=14.17'} - - minizlib@3.1.0: - resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} - engines: {node: '>= 18'} - - nanoid@3.3.11: - resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - next-themes@0.4.6: - resolution: {integrity: sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==} - peerDependencies: - react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc - react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc - - next@15.2.4: - resolution: {integrity: sha512-VwL+LAaPSxEkd3lU2xWbgEOtrM8oedmyhBqaVNmgKB+GvZlCy9rgaEc+y2on0wv+l0oSFqLtYD6dcC1eAedUaQ==} - engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} - hasBin: true - peerDependencies: - '@opentelemetry/api': ^1.1.0 - '@playwright/test': ^1.41.2 - babel-plugin-react-compiler: '*' - react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 - react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 - sass: ^1.3.0 - peerDependenciesMeta: - '@opentelemetry/api': - optional: true - '@playwright/test': - optional: true - babel-plugin-react-compiler: - optional: true - sass: - optional: true - - p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - - p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - - p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - - pngjs@5.0.0: - resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} - engines: {node: '>=10.13.0'} - - postcss@8.4.31: - resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} - engines: {node: ^10 || ^12 || >=14} - - postcss@8.5.0: - resolution: {integrity: sha512-27VKOqrYfPncKA2NrFOVhP5MGAfHKLYn/Q0mz9cNQyRAKYi3VNHwYU2qKKqPCqgBmeeJ0uAFB56NumXZ5ZReXg==} - engines: {node: ^10 || ^12 || >=14} - - qrcode@1.5.4: - resolution: {integrity: sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==} - engines: {node: '>=10.13.0'} - hasBin: true - - react-dom@19.0.0: - resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==} - peerDependencies: - react: ^19.0.0 - - react@19.0.0: - resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==} - engines: {node: '>=0.10.0'} - - require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - - require-main-filename@2.0.0: - resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} - - scheduler@0.25.0: - resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} - - semver@7.7.2: - resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} - engines: {node: '>=10'} - hasBin: true - - set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - - sharp@0.33.5: - resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - - simple-swizzle@0.2.4: - resolution: {integrity: sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==} - - source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} - engines: {node: '>=0.10.0'} - - streamsearch@1.1.0: - resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} - engines: {node: '>=10.0.0'} - - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - - strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - - styled-jsx@5.1.6: - resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} - engines: {node: '>= 12.0.0'} - peerDependencies: - '@babel/core': '*' - babel-plugin-macros: '*' - react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0' - peerDependenciesMeta: - '@babel/core': - optional: true - babel-plugin-macros: - optional: true - - tailwind-merge@2.5.5: - resolution: {integrity: sha512-0LXunzzAZzo0tEPxV3I297ffKZPlKDrjj7NXphC8V5ak9yHC5zRmxnOe2m/Rd/7ivsOMJe3JZ2JVocoDdQTRBA==} - - tailwindcss-animate@1.0.7: - resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} - peerDependencies: - tailwindcss: '>=3.0.0 || insiders' - - tailwindcss@4.1.9: - resolution: {integrity: sha512-anBZRcvfNMsQdHB9XSGzAtIQWlhs49uK75jfkwrqjRUbjt4d7q9RE1wR1xWyfYZhLFnFX4ahWp88Au2lcEw5IQ==} - - tapable@2.3.0: - resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} - engines: {node: '>=6'} - - tar@7.5.1: - resolution: {integrity: sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g==} - engines: {node: '>=18'} - - tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - - tw-animate-css@1.4.0: - resolution: {integrity: sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ==} - - typescript@5.0.2: - resolution: {integrity: sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw==} - engines: {node: '>=12.20'} - hasBin: true - - undici-types@6.11.1: - resolution: {integrity: sha512-mIDEX2ek50x0OlRgxryxsenE5XaQD4on5U2inY7RApK3SOJpofyw7uW2AyfMKkhAxXIceo2DeWGVGwyvng1GNQ==} - - which-module@2.0.1: - resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} - - wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} - - y18n@4.0.3: - resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} - - yallist@5.0.0: - resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} - engines: {node: '>=18'} - - 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'} - -snapshots: - - '@alloc/quick-lru@5.2.0': {} - - '@ampproject/remapping@2.3.0': - dependencies: - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - - '@emnapi/runtime@1.5.0': - dependencies: - tslib: 2.8.1 - optional: true - - '@img/sharp-darwin-arm64@0.33.5': - optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.0.4 - optional: true - - '@img/sharp-darwin-x64@0.33.5': - optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.0.4 - optional: true - - '@img/sharp-libvips-darwin-arm64@1.0.4': - optional: true - - '@img/sharp-libvips-darwin-x64@1.0.4': - optional: true - - '@img/sharp-libvips-linux-arm64@1.0.4': - optional: true - - '@img/sharp-libvips-linux-arm@1.0.5': - optional: true - - '@img/sharp-libvips-linux-s390x@1.0.4': - optional: true - - '@img/sharp-libvips-linux-x64@1.0.4': - optional: true - - '@img/sharp-libvips-linuxmusl-arm64@1.0.4': - optional: true - - '@img/sharp-libvips-linuxmusl-x64@1.0.4': - optional: true - - '@img/sharp-linux-arm64@0.33.5': - optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.0.4 - optional: true - - '@img/sharp-linux-arm@0.33.5': - optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.0.5 - optional: true - - '@img/sharp-linux-s390x@0.33.5': - optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.0.4 - optional: true - - '@img/sharp-linux-x64@0.33.5': - optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.0.4 - optional: true - - '@img/sharp-linuxmusl-arm64@0.33.5': - optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 - optional: true - - '@img/sharp-linuxmusl-x64@0.33.5': - optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.0.4 - optional: true - - '@img/sharp-wasm32@0.33.5': - dependencies: - '@emnapi/runtime': 1.5.0 - optional: true - - '@img/sharp-win32-ia32@0.33.5': - optional: true - - '@img/sharp-win32-x64@0.33.5': - optional: true - - '@isaacs/fs-minipass@4.0.1': - dependencies: - minipass: 7.1.2 - - '@jridgewell/gen-mapping@0.3.13': - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - '@jridgewell/trace-mapping': 0.3.31 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/sourcemap-codec@1.5.5': {} - - '@jridgewell/trace-mapping@0.3.31': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 - - '@next/env@15.2.4': {} - - '@next/swc-darwin-arm64@15.2.4': - optional: true - - '@next/swc-darwin-x64@15.2.4': - optional: true - - '@next/swc-linux-arm64-gnu@15.2.4': - optional: true - - '@next/swc-linux-arm64-musl@15.2.4': - optional: true - - '@next/swc-linux-x64-gnu@15.2.4': - optional: true - - '@next/swc-linux-x64-musl@15.2.4': - optional: true - - '@next/swc-win32-arm64-msvc@15.2.4': - optional: true - - '@next/swc-win32-x64-msvc@15.2.4': - optional: true - - '@radix-ui/react-compose-refs@1.1.2(@types/react@19.0.0)(react@19.0.0)': - dependencies: - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.0 - - '@radix-ui/react-label@2.1.7(@types/react-dom@19.0.0)(@types/react@19.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.0)(@types/react@19.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.0 - '@types/react-dom': 19.0.0 - - '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.0.0)(@types/react@19.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@radix-ui/react-slot': 1.2.3(@types/react@19.0.0)(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - optionalDependencies: - '@types/react': 19.0.0 - '@types/react-dom': 19.0.0 - - '@radix-ui/react-slot@1.2.3(@types/react@19.0.0)(react@19.0.0)': - dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.0)(react@19.0.0) - react: 19.0.0 - optionalDependencies: - '@types/react': 19.0.0 - - '@swc/counter@0.1.3': {} - - '@swc/helpers@0.5.15': - dependencies: - tslib: 2.8.1 - - '@tailwindcss/node@4.1.9': - dependencies: - '@ampproject/remapping': 2.3.0 - enhanced-resolve: 5.18.3 - jiti: 2.6.1 - lightningcss: 1.30.1 - magic-string: 0.30.19 - source-map-js: 1.2.1 - tailwindcss: 4.1.9 - - '@tailwindcss/oxide-android-arm64@4.1.9': - optional: true - - '@tailwindcss/oxide-darwin-arm64@4.1.9': - optional: true - - '@tailwindcss/oxide-darwin-x64@4.1.9': - optional: true - - '@tailwindcss/oxide-freebsd-x64@4.1.9': - optional: true - - '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.9': - optional: true - - '@tailwindcss/oxide-linux-arm64-gnu@4.1.9': - optional: true - - '@tailwindcss/oxide-linux-arm64-musl@4.1.9': - optional: true - - '@tailwindcss/oxide-linux-x64-gnu@4.1.9': - optional: true - - '@tailwindcss/oxide-linux-x64-musl@4.1.9': - optional: true - - '@tailwindcss/oxide-wasm32-wasi@4.1.9': - optional: true - - '@tailwindcss/oxide-win32-arm64-msvc@4.1.9': - optional: true - - '@tailwindcss/oxide-win32-x64-msvc@4.1.9': - optional: true - - '@tailwindcss/oxide@4.1.9': - dependencies: - detect-libc: 2.1.1 - tar: 7.5.1 - optionalDependencies: - '@tailwindcss/oxide-android-arm64': 4.1.9 - '@tailwindcss/oxide-darwin-arm64': 4.1.9 - '@tailwindcss/oxide-darwin-x64': 4.1.9 - '@tailwindcss/oxide-freebsd-x64': 4.1.9 - '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.9 - '@tailwindcss/oxide-linux-arm64-gnu': 4.1.9 - '@tailwindcss/oxide-linux-arm64-musl': 4.1.9 - '@tailwindcss/oxide-linux-x64-gnu': 4.1.9 - '@tailwindcss/oxide-linux-x64-musl': 4.1.9 - '@tailwindcss/oxide-wasm32-wasi': 4.1.9 - '@tailwindcss/oxide-win32-arm64-msvc': 4.1.9 - '@tailwindcss/oxide-win32-x64-msvc': 4.1.9 - - '@tailwindcss/postcss@4.1.9': - dependencies: - '@alloc/quick-lru': 5.2.0 - '@tailwindcss/node': 4.1.9 - '@tailwindcss/oxide': 4.1.9 - postcss: 8.5.0 - tailwindcss: 4.1.9 - - '@types/node@22.0.0': - dependencies: - undici-types: 6.11.1 - - '@types/qrcode@1.5.5': - dependencies: - '@types/node': 22.0.0 - - '@types/react-dom@19.0.0': - dependencies: - '@types/react': 19.0.0 - - '@types/react@19.0.0': - dependencies: - csstype: 3.1.3 - - '@vercel/analytics@1.5.0(next@15.2.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)': - optionalDependencies: - next: 15.2.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - react: 19.0.0 - - ansi-regex@5.0.1: {} - - ansi-styles@4.3.0: - dependencies: - color-convert: 2.0.1 - - busboy@1.6.0: - dependencies: - streamsearch: 1.1.0 - - camelcase@5.3.1: {} - - caniuse-lite@1.0.30001747: {} - - chownr@3.0.0: {} - - class-variance-authority@0.7.1: - dependencies: - clsx: 2.1.1 - - client-only@0.0.1: {} - - cliui@6.0.0: - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 6.2.0 - - clsx@2.1.1: {} - - color-convert@2.0.1: - dependencies: - color-name: 1.1.4 - - color-name@1.1.4: {} - - color-string@1.9.1: - dependencies: - color-name: 1.1.4 - simple-swizzle: 0.2.4 - optional: true - - color@4.2.3: - dependencies: - color-convert: 2.0.1 - color-string: 1.9.1 - optional: true - - csstype@3.1.3: {} - - decamelize@1.2.0: {} - - detect-libc@2.1.1: {} - - dijkstrajs@1.0.3: {} - - emoji-regex@8.0.0: {} - - enhanced-resolve@5.18.3: - dependencies: - graceful-fs: 4.2.11 - tapable: 2.3.0 - - find-up@4.1.0: - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 - - geist@1.5.1(next@15.2.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0)): - dependencies: - next: 15.2.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - - get-caller-file@2.0.5: {} - - graceful-fs@4.2.11: {} - - is-arrayish@0.3.4: - optional: true - - is-fullwidth-code-point@3.0.0: {} - - jiti@2.6.1: {} - - 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.1.1 - 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 - - locate-path@5.0.0: - dependencies: - p-locate: 4.1.0 - - lucide-react@0.454.0(react@19.0.0): - dependencies: - react: 19.0.0 - - magic-string@0.30.19: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - - minipass@7.1.2: {} - - minizlib@3.1.0: - dependencies: - minipass: 7.1.2 - - nanoid@3.3.11: {} - - next-themes@0.4.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0): - dependencies: - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - - next@15.2.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0): - dependencies: - '@next/env': 15.2.4 - '@swc/counter': 0.1.3 - '@swc/helpers': 0.5.15 - busboy: 1.6.0 - caniuse-lite: 1.0.30001747 - postcss: 8.4.31 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - styled-jsx: 5.1.6(react@19.0.0) - optionalDependencies: - '@next/swc-darwin-arm64': 15.2.4 - '@next/swc-darwin-x64': 15.2.4 - '@next/swc-linux-arm64-gnu': 15.2.4 - '@next/swc-linux-arm64-musl': 15.2.4 - '@next/swc-linux-x64-gnu': 15.2.4 - '@next/swc-linux-x64-musl': 15.2.4 - '@next/swc-win32-arm64-msvc': 15.2.4 - '@next/swc-win32-x64-msvc': 15.2.4 - sharp: 0.33.5 - transitivePeerDependencies: - - '@babel/core' - - babel-plugin-macros - - p-limit@2.3.0: - dependencies: - p-try: 2.2.0 - - p-locate@4.1.0: - dependencies: - p-limit: 2.3.0 - - p-try@2.2.0: {} - - path-exists@4.0.0: {} - - picocolors@1.1.1: {} - - pngjs@5.0.0: {} - - postcss@8.4.31: - dependencies: - nanoid: 3.3.11 - picocolors: 1.1.1 - source-map-js: 1.2.1 - - postcss@8.5.0: - dependencies: - nanoid: 3.3.11 - picocolors: 1.1.1 - source-map-js: 1.2.1 - - qrcode@1.5.4: - dependencies: - dijkstrajs: 1.0.3 - pngjs: 5.0.0 - yargs: 15.4.1 - - react-dom@19.0.0(react@19.0.0): - dependencies: - react: 19.0.0 - scheduler: 0.25.0 - - react@19.0.0: {} - - require-directory@2.1.1: {} - - require-main-filename@2.0.0: {} - - scheduler@0.25.0: {} - - semver@7.7.2: - optional: true - - set-blocking@2.0.0: {} - - sharp@0.33.5: - dependencies: - color: 4.2.3 - detect-libc: 2.1.1 - semver: 7.7.2 - optionalDependencies: - '@img/sharp-darwin-arm64': 0.33.5 - '@img/sharp-darwin-x64': 0.33.5 - '@img/sharp-libvips-darwin-arm64': 1.0.4 - '@img/sharp-libvips-darwin-x64': 1.0.4 - '@img/sharp-libvips-linux-arm': 1.0.5 - '@img/sharp-libvips-linux-arm64': 1.0.4 - '@img/sharp-libvips-linux-s390x': 1.0.4 - '@img/sharp-libvips-linux-x64': 1.0.4 - '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 - '@img/sharp-libvips-linuxmusl-x64': 1.0.4 - '@img/sharp-linux-arm': 0.33.5 - '@img/sharp-linux-arm64': 0.33.5 - '@img/sharp-linux-s390x': 0.33.5 - '@img/sharp-linux-x64': 0.33.5 - '@img/sharp-linuxmusl-arm64': 0.33.5 - '@img/sharp-linuxmusl-x64': 0.33.5 - '@img/sharp-wasm32': 0.33.5 - '@img/sharp-win32-ia32': 0.33.5 - '@img/sharp-win32-x64': 0.33.5 - optional: true - - simple-swizzle@0.2.4: - dependencies: - is-arrayish: 0.3.4 - optional: true - - source-map-js@1.2.1: {} - - streamsearch@1.1.0: {} - - string-width@4.2.3: - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - - strip-ansi@6.0.1: - dependencies: - ansi-regex: 5.0.1 - - styled-jsx@5.1.6(react@19.0.0): - dependencies: - client-only: 0.0.1 - react: 19.0.0 - - tailwind-merge@2.5.5: {} - - tailwindcss-animate@1.0.7(tailwindcss@4.1.9): - dependencies: - tailwindcss: 4.1.9 - - tailwindcss@4.1.9: {} - - tapable@2.3.0: {} - - tar@7.5.1: - dependencies: - '@isaacs/fs-minipass': 4.0.1 - chownr: 3.0.0 - minipass: 7.1.2 - minizlib: 3.1.0 - yallist: 5.0.0 - - tslib@2.8.1: {} - - tw-animate-css@1.4.0: {} - - typescript@5.0.2: {} - - undici-types@6.11.1: {} - - which-module@2.0.1: {} - - wrap-ansi@6.2.0: - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - - y18n@4.0.3: {} - - yallist@5.0.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 +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@radix-ui/react-label': + specifier: latest + version: 2.1.7(@types/react-dom@19.0.0)(@types/react@19.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': + specifier: latest + version: 1.2.3(@types/react@19.0.0)(react@19.0.0) + '@vercel/analytics': + specifier: latest + version: 1.5.0(next@15.2.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0) + class-variance-authority: + specifier: ^0.7.1 + version: 0.7.1 + clsx: + specifier: ^2.1.1 + version: 2.1.1 + geist: + specifier: latest + version: 1.5.1(next@15.2.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) + lucide-react: + specifier: ^0.454.0 + version: 0.454.0(react@19.0.0) + next: + specifier: 15.2.4 + version: 15.2.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + next-themes: + specifier: latest + version: 0.4.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + qrcode: + specifier: latest + version: 1.5.4 + react: + specifier: ^19 + version: 19.0.0 + react-dom: + specifier: ^19 + version: 19.0.0(react@19.0.0) + tailwind-merge: + specifier: ^2.5.5 + version: 2.5.5 + tailwindcss-animate: + specifier: ^1.0.7 + version: 1.0.7(tailwindcss@4.1.9) + tw-animate-css: + specifier: latest + version: 1.4.0 + devDependencies: + '@tailwindcss/postcss': + specifier: ^4.1.9 + version: 4.1.9 + '@types/node': + specifier: ^22 + version: 22.0.0 + '@types/qrcode': + specifier: ^1.5.5 + version: 1.5.5 + '@types/react': + specifier: ^19 + version: 19.0.0 + '@types/react-dom': + specifier: ^19 + version: 19.0.0 + postcss: + specifier: ^8.5 + version: 8.5.0 + tailwindcss: + specifier: ^4.1.9 + version: 4.1.9 + typescript: + specifier: ^5 + version: 5.0.2 + +packages: + + '@alloc/quick-lru@5.2.0': + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + + '@emnapi/runtime@1.5.0': + resolution: {integrity: sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==} + + '@img/sharp-darwin-arm64@0.33.5': + resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [darwin] + + '@img/sharp-darwin-x64@0.33.5': + resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-darwin-arm64@1.0.4': + resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} + cpu: [arm64] + os: [darwin] + + '@img/sharp-libvips-darwin-x64@1.0.4': + resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-linux-arm64@1.0.4': + resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linux-arm@1.0.5': + resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} + cpu: [arm] + os: [linux] + + '@img/sharp-libvips-linux-s390x@1.0.4': + resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} + cpu: [s390x] + os: [linux] + + '@img/sharp-libvips-linux-x64@1.0.4': + resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} + cpu: [x64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} + cpu: [x64] + os: [linux] + + '@img/sharp-linux-arm64@0.33.5': + resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linux-arm@0.33.5': + resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm] + os: [linux] + + '@img/sharp-linux-s390x@0.33.5': + resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [s390x] + os: [linux] + + '@img/sharp-linux-x64@0.33.5': + resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-linuxmusl-arm64@0.33.5': + resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linuxmusl-x64@0.33.5': + resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-wasm32@0.33.5': + resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [wasm32] + + '@img/sharp-win32-ia32@0.33.5': + resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ia32] + os: [win32] + + '@img/sharp-win32-x64@0.33.5': + resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [win32] + + '@isaacs/fs-minipass@4.0.1': + resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} + engines: {node: '>=18.0.0'} + + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + + '@next/env@15.2.4': + resolution: {integrity: sha512-+SFtMgoiYP3WoSswuNmxJOCwi06TdWE733D+WPjpXIe4LXGULwEaofiiAy6kbS0+XjM5xF5n3lKuBwN2SnqD9g==} + + '@next/swc-darwin-arm64@15.2.4': + resolution: {integrity: sha512-1AnMfs655ipJEDC/FHkSr0r3lXBgpqKo4K1kiwfUf3iE68rDFXZ1TtHdMvf7D0hMItgDZ7Vuq3JgNMbt/+3bYw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@next/swc-darwin-x64@15.2.4': + resolution: {integrity: sha512-3qK2zb5EwCwxnO2HeO+TRqCubeI/NgCe+kL5dTJlPldV/uwCnUgC7VbEzgmxbfrkbjehL4H9BPztWOEtsoMwew==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@next/swc-linux-arm64-gnu@15.2.4': + resolution: {integrity: sha512-HFN6GKUcrTWvem8AZN7tT95zPb0GUGv9v0d0iyuTb303vbXkkbHDp/DxufB04jNVD+IN9yHy7y/6Mqq0h0YVaQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-arm64-musl@15.2.4': + resolution: {integrity: sha512-Oioa0SORWLwi35/kVB8aCk5Uq+5/ZIumMK1kJV+jSdazFm2NzPDztsefzdmzzpx5oGCJ6FkUC7vkaUseNTStNA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-x64-gnu@15.2.4': + resolution: {integrity: sha512-yb5WTRaHdkgOqFOZiu6rHV1fAEK0flVpaIN2HB6kxHVSy/dIajWbThS7qON3W9/SNOH2JWkVCyulgGYekMePuw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-linux-x64-musl@15.2.4': + resolution: {integrity: sha512-Dcdv/ix6srhkM25fgXiyOieFUkz+fOYkHlydWCtB0xMST6X9XYI3yPDKBZt1xuhOytONsIFJFB08xXYsxUwJLw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@next/swc-win32-arm64-msvc@15.2.4': + resolution: {integrity: sha512-dW0i7eukvDxtIhCYkMrZNQfNicPDExt2jPb9AZPpL7cfyUo7QSNl1DjsHjmmKp6qNAqUESyT8YFl/Aw91cNJJg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@next/swc-win32-x64-msvc@15.2.4': + resolution: {integrity: sha512-SbnWkJmkS7Xl3kre8SdMF6F/XDh1DTFEhp0jRTj/uB8iPKoU2bb2NDfcu+iifv1+mxQEd1g2vvSxcZbXSKyWiQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@radix-ui/react-compose-refs@1.1.2': + resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-label@2.1.7': + resolution: {integrity: sha512-YT1GqPSL8kJn20djelMX7/cTRp/Y9w5IZHvfxQTVHrOqa2yMl7i/UfMqKRU5V7mEyKTrUVgJXhNQPVCG8PBLoQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-primitive@2.1.3': + resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-slot@1.2.3': + resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@swc/counter@0.1.3': + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + + '@swc/helpers@0.5.15': + resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} + + '@tailwindcss/node@4.1.9': + resolution: {integrity: sha512-ZFsgw6lbtcZKYPWvf6zAuCVSuer7UQ2Z5P8BETHcpA4x/3NwOjAIXmRnYfG77F14f9bPeuR4GaNz3ji1JkQMeQ==} + + '@tailwindcss/oxide-android-arm64@4.1.9': + resolution: {integrity: sha512-X4mBUUJ3DPqODhtdT5Ju55feJwBN+hP855Z7c0t11Jzece9KRtdM41ljMrCcureKMh96mcOh2gxahkp1yE+BOQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + + '@tailwindcss/oxide-darwin-arm64@4.1.9': + resolution: {integrity: sha512-jnWnqz71ZLXUbJLW53m9dSQakLBfaWxAd9TAibimrNdQfZKyie+xGppdDCZExtYwUdflt3kOT9y1JUgYXVEQmw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@tailwindcss/oxide-darwin-x64@4.1.9': + resolution: {integrity: sha512-+Ui6LlvZ6aCPvSwv3l16nYb6gu1N6RamFz7hSu5aqaiPrDQqD1LPT/e8r2/laSVwFjRyOZxQQ/gvGxP3ihA2rw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@tailwindcss/oxide-freebsd-x64@4.1.9': + resolution: {integrity: sha512-BWqCh0uoXMprwWfG7+oyPW53VCh6G08pxY0IIN/i5DQTpPnCJ4zm2W8neH9kW1v1f6RXP3b2qQjAzrAcnQ5e9w==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.9': + resolution: {integrity: sha512-U8itjQb5TVc80aV5Yo+JtKo+qS95CV4XLrKEtSLQFoTD/c9j3jk4WZipYT+9Jxqem29qCMRPxjEZ3s+wTT4XCw==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-gnu@4.1.9': + resolution: {integrity: sha512-dKlGraoNvyTrR7ovLw3Id9yTwc+l0NYg8bwOkYqk+zltvGns8bPvVr6PH5jATdc75kCGd6kDRmP4p1LwqCnPJQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-musl@4.1.9': + resolution: {integrity: sha512-qCZ4QTrZaBEgNM13pGjvakdmid1Kw3CUCEQzgVAn64Iud7zSxOGwK1usg+hrwrOfFH7vXZZr8OhzC8fJTRq5NA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@tailwindcss/oxide-linux-x64-gnu@4.1.9': + resolution: {integrity: sha512-bmzkAWQjRlY9udmg/a1bOtZpV14ZCdrB74PZrd7Oz/wK62Rk+m9+UV3BsgGfOghyO5Qu5ZDciADzDMZbi9n1+g==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@tailwindcss/oxide-linux-x64-musl@4.1.9': + resolution: {integrity: sha512-NpvPQsXj1raDHhd+g2SUvZQoTPWfYAsyYo9h4ZqV7EOmR+aj7LCAE5hnXNnrJ5Egy/NiO3Hs7BNpSbsPEOpORg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@tailwindcss/oxide-wasm32-wasi@4.1.9': + resolution: {integrity: sha512-G93Yuf3xrpTxDUCSh685d1dvOkqOB0Gy+Bchv9Zy3k+lNw/9SEgsHit50xdvp1/p9yRH2TeDHJeDLUiV4mlTkA==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + bundledDependencies: + - '@napi-rs/wasm-runtime' + - '@emnapi/core' + - '@emnapi/runtime' + - '@tybys/wasm-util' + - '@emnapi/wasi-threads' + - tslib + + '@tailwindcss/oxide-win32-arm64-msvc@4.1.9': + resolution: {integrity: sha512-Eq9FZzZe/NPkUiSMY+eY7r5l7msuFlm6wC6lnV11m8885z0vs9zx48AKTfw0UbVecTRV5wMxKb3Kmzx2LoUIWg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@tailwindcss/oxide-win32-x64-msvc@4.1.9': + resolution: {integrity: sha512-oZ4zkthMXMJN2w/vu3jEfuqWTW7n8giGYDV/SfhBGRNehNMOBqh3YUAEv+8fv2YDJEzL4JpXTNTiSXW3UiUwBw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@tailwindcss/oxide@4.1.9': + resolution: {integrity: sha512-oqjNxOBt1iNRAywjiH+VFsfovx/hVt4mxe0kOkRMAbbcCwbJg5e2AweFqyGN7gtmE1TJXnvnyX7RWTR1l72ciQ==} + engines: {node: '>= 10'} + + '@tailwindcss/postcss@4.1.9': + resolution: {integrity: sha512-v3DKzHibZO8ioVDmuVHCW1PR0XSM7nS40EjZFJEA1xPuvTuQPaR5flE1LyikU3hu2u1KNWBtEaSe8qsQjX3tyg==} + + '@types/node@22.0.0': + resolution: {integrity: sha512-VT7KSYudcPOzP5Q0wfbowyNLaVR8QWUdw+088uFWwfvpY6uCWaXpqV6ieLAu9WBcnTa7H4Z5RLK8I5t2FuOcqw==} + + '@types/qrcode@1.5.5': + resolution: {integrity: sha512-CdfBi/e3Qk+3Z/fXYShipBT13OJ2fDO2Q2w5CIP5anLTLIndQG9z6P1cnm+8zCWSpm5dnxMFd/uREtb0EXuQzg==} + + '@types/react-dom@19.0.0': + resolution: {integrity: sha512-1KfiQKsH1o00p9m5ag12axHQSb3FOU9H20UTrujVSkNhuCrRHiQWFqgEnTNK5ZNfnzZv8UWrnXVqCmCF9fgY3w==} + + '@types/react@19.0.0': + resolution: {integrity: sha512-MY3oPudxvMYyesqs/kW1Bh8y9VqSmf+tzqw3ae8a9DZW68pUe3zAdHeI1jc6iAysuRdACnVknHP8AhwD4/dxtg==} + + '@vercel/analytics@1.5.0': + resolution: {integrity: sha512-MYsBzfPki4gthY5HnYN7jgInhAZ7Ac1cYDoRWFomwGHWEX7odTEzbtg9kf/QSo7XEsEAqlQugA6gJ2WS2DEa3g==} + peerDependencies: + '@remix-run/react': ^2 + '@sveltejs/kit': ^1 || ^2 + next: '>= 13' + react: ^18 || ^19 || ^19.0.0-rc + svelte: '>= 4' + vue: ^3 + vue-router: ^4 + peerDependenciesMeta: + '@remix-run/react': + optional: true + '@sveltejs/kit': + optional: true + next: + optional: true + react: + optional: true + svelte: + optional: true + vue: + optional: true + vue-router: + optional: true + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + busboy@1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} + engines: {node: '>=10.16.0'} + + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + + caniuse-lite@1.0.30001747: + resolution: {integrity: sha512-mzFa2DGIhuc5490Nd/G31xN1pnBnYMadtkyTjefPI7wzypqgCEpeWu9bJr0OnDsyKrW75zA9ZAt7pbQFmwLsQg==} + + chownr@3.0.0: + resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} + engines: {node: '>=18'} + + class-variance-authority@0.7.1: + resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} + + client-only@0.0.1: + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + + cliui@6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + + color@4.2.3: + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} + + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + + detect-libc@2.1.1: + resolution: {integrity: sha512-ecqj/sy1jcK1uWrwpR67UhYrIFQ+5WlGxth34WquCbamhFA6hkkwiu37o6J5xCHdo1oixJRfVRw+ywV+Hq/0Aw==} + engines: {node: '>=8'} + + dijkstrajs@1.0.3: + resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + enhanced-resolve@5.18.3: + resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} + engines: {node: '>=10.13.0'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + geist@1.5.1: + resolution: {integrity: sha512-mAHZxIsL2o3ZITFaBVFBnwyDOw+zNLYum6A6nIjpzCGIO8QtC3V76XF2RnZTyLx1wlDTmMDy8jg3Ib52MIjGvQ==} + peerDependencies: + next: '>=13.2.0' + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + is-arrayish@0.3.4: + resolution: {integrity: sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + jiti@2.6.1: + resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} + hasBin: true + + 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'} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + lucide-react@0.454.0: + resolution: {integrity: sha512-hw7zMDwykCLnEzgncEEjHeA6+45aeEzRYuKHuyRSOPkhko+J3ySGjGIzu+mmMfDFG1vazHepMaYFYHbTFAZAAQ==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc + + magic-string@0.30.19: + resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + minizlib@3.1.0: + resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} + engines: {node: '>= 18'} + + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + next-themes@0.4.6: + resolution: {integrity: sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==} + peerDependencies: + react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc + react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc + + next@15.2.4: + resolution: {integrity: sha512-VwL+LAaPSxEkd3lU2xWbgEOtrM8oedmyhBqaVNmgKB+GvZlCy9rgaEc+y2on0wv+l0oSFqLtYD6dcC1eAedUaQ==} + engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + '@playwright/test': ^1.41.2 + babel-plugin-react-compiler: '*' + react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + '@playwright/test': + optional: true + babel-plugin-react-compiler: + optional: true + sass: + optional: true + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + pngjs@5.0.0: + resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} + engines: {node: '>=10.13.0'} + + postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + engines: {node: ^10 || ^12 || >=14} + + postcss@8.5.0: + resolution: {integrity: sha512-27VKOqrYfPncKA2NrFOVhP5MGAfHKLYn/Q0mz9cNQyRAKYi3VNHwYU2qKKqPCqgBmeeJ0uAFB56NumXZ5ZReXg==} + engines: {node: ^10 || ^12 || >=14} + + qrcode@1.5.4: + resolution: {integrity: sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==} + engines: {node: '>=10.13.0'} + hasBin: true + + react-dom@19.0.0: + resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==} + peerDependencies: + react: ^19.0.0 + + react@19.0.0: + resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==} + engines: {node: '>=0.10.0'} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-main-filename@2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + + scheduler@0.25.0: + resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} + + semver@7.7.2: + resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} + engines: {node: '>=10'} + hasBin: true + + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + + sharp@0.33.5: + resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + + simple-swizzle@0.2.4: + resolution: {integrity: sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + streamsearch@1.1.0: + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} + engines: {node: '>=10.0.0'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + styled-jsx@5.1.6: + resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0' + peerDependenciesMeta: + '@babel/core': + optional: true + babel-plugin-macros: + optional: true + + tailwind-merge@2.5.5: + resolution: {integrity: sha512-0LXunzzAZzo0tEPxV3I297ffKZPlKDrjj7NXphC8V5ak9yHC5zRmxnOe2m/Rd/7ivsOMJe3JZ2JVocoDdQTRBA==} + + tailwindcss-animate@1.0.7: + resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} + peerDependencies: + tailwindcss: '>=3.0.0 || insiders' + + tailwindcss@4.1.9: + resolution: {integrity: sha512-anBZRcvfNMsQdHB9XSGzAtIQWlhs49uK75jfkwrqjRUbjt4d7q9RE1wR1xWyfYZhLFnFX4ahWp88Au2lcEw5IQ==} + + tapable@2.3.0: + resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} + engines: {node: '>=6'} + + tar@7.5.1: + resolution: {integrity: sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g==} + engines: {node: '>=18'} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + tw-animate-css@1.4.0: + resolution: {integrity: sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ==} + + typescript@5.0.2: + resolution: {integrity: sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw==} + engines: {node: '>=12.20'} + hasBin: true + + undici-types@6.11.1: + resolution: {integrity: sha512-mIDEX2ek50x0OlRgxryxsenE5XaQD4on5U2inY7RApK3SOJpofyw7uW2AyfMKkhAxXIceo2DeWGVGwyvng1GNQ==} + + which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + + y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + + yallist@5.0.0: + resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} + engines: {node: '>=18'} + + 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'} + +snapshots: + + '@alloc/quick-lru@5.2.0': {} + + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@emnapi/runtime@1.5.0': + dependencies: + tslib: 2.8.1 + optional: true + + '@img/sharp-darwin-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.0.4 + optional: true + + '@img/sharp-darwin-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.0.4 + optional: true + + '@img/sharp-libvips-darwin-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-darwin-x64@1.0.4': + optional: true + + '@img/sharp-libvips-linux-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-linux-arm@1.0.5': + optional: true + + '@img/sharp-libvips-linux-s390x@1.0.4': + optional: true + + '@img/sharp-libvips-linux-x64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + optional: true + + '@img/sharp-linux-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.0.4 + optional: true + + '@img/sharp-linux-arm@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.0.5 + optional: true + + '@img/sharp-linux-s390x@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.0.4 + optional: true + + '@img/sharp-linux-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + optional: true + + '@img/sharp-wasm32@0.33.5': + dependencies: + '@emnapi/runtime': 1.5.0 + optional: true + + '@img/sharp-win32-ia32@0.33.5': + optional: true + + '@img/sharp-win32-x64@0.33.5': + optional: true + + '@isaacs/fs-minipass@4.0.1': + dependencies: + minipass: 7.1.2 + + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + + '@next/env@15.2.4': {} + + '@next/swc-darwin-arm64@15.2.4': + optional: true + + '@next/swc-darwin-x64@15.2.4': + optional: true + + '@next/swc-linux-arm64-gnu@15.2.4': + optional: true + + '@next/swc-linux-arm64-musl@15.2.4': + optional: true + + '@next/swc-linux-x64-gnu@15.2.4': + optional: true + + '@next/swc-linux-x64-musl@15.2.4': + optional: true + + '@next/swc-win32-arm64-msvc@15.2.4': + optional: true + + '@next/swc-win32-x64-msvc@15.2.4': + optional: true + + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.0.0)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.0 + + '@radix-ui/react-label@2.1.7(@types/react-dom@19.0.0)(@types/react@19.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.0)(@types/react@19.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.0 + '@types/react-dom': 19.0.0 + + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.0.0)(@types/react@19.0.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-slot': 1.2.3(@types/react@19.0.0)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.0 + '@types/react-dom': 19.0.0 + + '@radix-ui/react-slot@1.2.3(@types/react@19.0.0)(react@19.0.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.0)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.0 + + '@swc/counter@0.1.3': {} + + '@swc/helpers@0.5.15': + dependencies: + tslib: 2.8.1 + + '@tailwindcss/node@4.1.9': + dependencies: + '@ampproject/remapping': 2.3.0 + enhanced-resolve: 5.18.3 + jiti: 2.6.1 + lightningcss: 1.30.1 + magic-string: 0.30.19 + source-map-js: 1.2.1 + tailwindcss: 4.1.9 + + '@tailwindcss/oxide-android-arm64@4.1.9': + optional: true + + '@tailwindcss/oxide-darwin-arm64@4.1.9': + optional: true + + '@tailwindcss/oxide-darwin-x64@4.1.9': + optional: true + + '@tailwindcss/oxide-freebsd-x64@4.1.9': + optional: true + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.9': + optional: true + + '@tailwindcss/oxide-linux-arm64-gnu@4.1.9': + optional: true + + '@tailwindcss/oxide-linux-arm64-musl@4.1.9': + optional: true + + '@tailwindcss/oxide-linux-x64-gnu@4.1.9': + optional: true + + '@tailwindcss/oxide-linux-x64-musl@4.1.9': + optional: true + + '@tailwindcss/oxide-wasm32-wasi@4.1.9': + optional: true + + '@tailwindcss/oxide-win32-arm64-msvc@4.1.9': + optional: true + + '@tailwindcss/oxide-win32-x64-msvc@4.1.9': + optional: true + + '@tailwindcss/oxide@4.1.9': + dependencies: + detect-libc: 2.1.1 + tar: 7.5.1 + optionalDependencies: + '@tailwindcss/oxide-android-arm64': 4.1.9 + '@tailwindcss/oxide-darwin-arm64': 4.1.9 + '@tailwindcss/oxide-darwin-x64': 4.1.9 + '@tailwindcss/oxide-freebsd-x64': 4.1.9 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.9 + '@tailwindcss/oxide-linux-arm64-gnu': 4.1.9 + '@tailwindcss/oxide-linux-arm64-musl': 4.1.9 + '@tailwindcss/oxide-linux-x64-gnu': 4.1.9 + '@tailwindcss/oxide-linux-x64-musl': 4.1.9 + '@tailwindcss/oxide-wasm32-wasi': 4.1.9 + '@tailwindcss/oxide-win32-arm64-msvc': 4.1.9 + '@tailwindcss/oxide-win32-x64-msvc': 4.1.9 + + '@tailwindcss/postcss@4.1.9': + dependencies: + '@alloc/quick-lru': 5.2.0 + '@tailwindcss/node': 4.1.9 + '@tailwindcss/oxide': 4.1.9 + postcss: 8.5.0 + tailwindcss: 4.1.9 + + '@types/node@22.0.0': + dependencies: + undici-types: 6.11.1 + + '@types/qrcode@1.5.5': + dependencies: + '@types/node': 22.0.0 + + '@types/react-dom@19.0.0': + dependencies: + '@types/react': 19.0.0 + + '@types/react@19.0.0': + dependencies: + csstype: 3.1.3 + + '@vercel/analytics@1.5.0(next@15.2.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0)': + optionalDependencies: + next: 15.2.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.0.0 + + ansi-regex@5.0.1: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + busboy@1.6.0: + dependencies: + streamsearch: 1.1.0 + + camelcase@5.3.1: {} + + caniuse-lite@1.0.30001747: {} + + chownr@3.0.0: {} + + class-variance-authority@0.7.1: + dependencies: + clsx: 2.1.1 + + client-only@0.0.1: {} + + cliui@6.0.0: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + + clsx@2.1.1: {} + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + color-string@1.9.1: + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.4 + optional: true + + color@4.2.3: + dependencies: + color-convert: 2.0.1 + color-string: 1.9.1 + optional: true + + csstype@3.1.3: {} + + decamelize@1.2.0: {} + + detect-libc@2.1.1: {} + + dijkstrajs@1.0.3: {} + + emoji-regex@8.0.0: {} + + enhanced-resolve@5.18.3: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.3.0 + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + geist@1.5.1(next@15.2.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0)): + dependencies: + next: 15.2.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + + get-caller-file@2.0.5: {} + + graceful-fs@4.2.11: {} + + is-arrayish@0.3.4: + optional: true + + is-fullwidth-code-point@3.0.0: {} + + jiti@2.6.1: {} + + 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.1.1 + 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 + + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + + lucide-react@0.454.0(react@19.0.0): + dependencies: + react: 19.0.0 + + magic-string@0.30.19: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + + minipass@7.1.2: {} + + minizlib@3.1.0: + dependencies: + minipass: 7.1.2 + + nanoid@3.3.11: {} + + next-themes@0.4.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + dependencies: + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + + next@15.2.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + dependencies: + '@next/env': 15.2.4 + '@swc/counter': 0.1.3 + '@swc/helpers': 0.5.15 + busboy: 1.6.0 + caniuse-lite: 1.0.30001747 + postcss: 8.4.31 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + styled-jsx: 5.1.6(react@19.0.0) + optionalDependencies: + '@next/swc-darwin-arm64': 15.2.4 + '@next/swc-darwin-x64': 15.2.4 + '@next/swc-linux-arm64-gnu': 15.2.4 + '@next/swc-linux-arm64-musl': 15.2.4 + '@next/swc-linux-x64-gnu': 15.2.4 + '@next/swc-linux-x64-musl': 15.2.4 + '@next/swc-win32-arm64-msvc': 15.2.4 + '@next/swc-win32-x64-msvc': 15.2.4 + sharp: 0.33.5 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-try@2.2.0: {} + + path-exists@4.0.0: {} + + picocolors@1.1.1: {} + + pngjs@5.0.0: {} + + postcss@8.4.31: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + postcss@8.5.0: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + qrcode@1.5.4: + dependencies: + dijkstrajs: 1.0.3 + pngjs: 5.0.0 + yargs: 15.4.1 + + react-dom@19.0.0(react@19.0.0): + dependencies: + react: 19.0.0 + scheduler: 0.25.0 + + react@19.0.0: {} + + require-directory@2.1.1: {} + + require-main-filename@2.0.0: {} + + scheduler@0.25.0: {} + + semver@7.7.2: + optional: true + + set-blocking@2.0.0: {} + + sharp@0.33.5: + dependencies: + color: 4.2.3 + detect-libc: 2.1.1 + semver: 7.7.2 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.33.5 + '@img/sharp-darwin-x64': 0.33.5 + '@img/sharp-libvips-darwin-arm64': 1.0.4 + '@img/sharp-libvips-darwin-x64': 1.0.4 + '@img/sharp-libvips-linux-arm': 1.0.5 + '@img/sharp-libvips-linux-arm64': 1.0.4 + '@img/sharp-libvips-linux-s390x': 1.0.4 + '@img/sharp-libvips-linux-x64': 1.0.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + '@img/sharp-linux-arm': 0.33.5 + '@img/sharp-linux-arm64': 0.33.5 + '@img/sharp-linux-s390x': 0.33.5 + '@img/sharp-linux-x64': 0.33.5 + '@img/sharp-linuxmusl-arm64': 0.33.5 + '@img/sharp-linuxmusl-x64': 0.33.5 + '@img/sharp-wasm32': 0.33.5 + '@img/sharp-win32-ia32': 0.33.5 + '@img/sharp-win32-x64': 0.33.5 + optional: true + + simple-swizzle@0.2.4: + dependencies: + is-arrayish: 0.3.4 + optional: true + + source-map-js@1.2.1: {} + + streamsearch@1.1.0: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + styled-jsx@5.1.6(react@19.0.0): + dependencies: + client-only: 0.0.1 + react: 19.0.0 + + tailwind-merge@2.5.5: {} + + tailwindcss-animate@1.0.7(tailwindcss@4.1.9): + dependencies: + tailwindcss: 4.1.9 + + tailwindcss@4.1.9: {} + + tapable@2.3.0: {} + + tar@7.5.1: + dependencies: + '@isaacs/fs-minipass': 4.0.1 + chownr: 3.0.0 + minipass: 7.1.2 + minizlib: 3.1.0 + yallist: 5.0.0 + + tslib@2.8.1: {} + + tw-animate-css@1.4.0: {} + + typescript@5.0.2: {} + + undici-types@6.11.1: {} + + which-module@2.0.1: {} + + wrap-ansi@6.2.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + y18n@4.0.3: {} + + yallist@5.0.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 diff --git a/postcss.config.mjs b/legacy/postcss.config.mjs similarity index 94% rename from postcss.config.mjs rename to legacy/postcss.config.mjs index addc2ee..a869506 100644 --- a/postcss.config.mjs +++ b/legacy/postcss.config.mjs @@ -1,8 +1,8 @@ -/** @type {import('postcss-load-config').Config} */ -const config = { - plugins: { - '@tailwindcss/postcss': {}, - }, -} - -export default config +/** @type {import('postcss-load-config').Config} */ +const config = { + plugins: { + '@tailwindcss/postcss': {}, + }, +} + +export default config diff --git a/public/placeholder-logo.png b/legacy/public/placeholder-logo.png similarity index 100% rename from public/placeholder-logo.png rename to legacy/public/placeholder-logo.png diff --git a/public/placeholder-logo.svg b/legacy/public/placeholder-logo.svg similarity index 100% rename from public/placeholder-logo.svg rename to legacy/public/placeholder-logo.svg diff --git a/public/placeholder-user.jpg b/legacy/public/placeholder-user.jpg similarity index 100% rename from public/placeholder-user.jpg rename to legacy/public/placeholder-user.jpg diff --git a/public/placeholder.jpg b/legacy/public/placeholder.jpg similarity index 100% rename from public/placeholder.jpg rename to legacy/public/placeholder.jpg diff --git a/public/placeholder.svg b/legacy/public/placeholder.svg similarity index 100% rename from public/placeholder.svg rename to legacy/public/placeholder.svg diff --git a/legacy/public/yuki-host-logo.png b/legacy/public/yuki-host-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7be606ec7961d6ee44ebd0ba6aea89ac39767595 GIT binary patch literal 136285 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%0DYaTUmd_4nl@j=5@L2=|kr9*+# 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

8J;{cOxV(Eq8gv~P;TfplFWr`x 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 literal 0 HcmV?d00001 diff --git a/styles/globals.css b/legacy/styles/globals.css similarity index 97% rename from styles/globals.css rename to legacy/styles/globals.css index e765dc3..23cc7e3 100644 --- a/styles/globals.css +++ b/legacy/styles/globals.css @@ -1,125 +1,125 @@ -@import 'tailwindcss'; -@import 'tw-animate-css'; - -@custom-variant dark (&:is(.dark *)); - -:root { - --background: oklch(1 0 0); - --foreground: oklch(0.145 0 0); - --card: oklch(1 0 0); - --card-foreground: oklch(0.145 0 0); - --popover: oklch(1 0 0); - --popover-foreground: oklch(0.145 0 0); - --primary: oklch(0.205 0 0); - --primary-foreground: oklch(0.985 0 0); - --secondary: oklch(0.97 0 0); - --secondary-foreground: oklch(0.205 0 0); - --muted: oklch(0.97 0 0); - --muted-foreground: oklch(0.556 0 0); - --accent: oklch(0.97 0 0); - --accent-foreground: oklch(0.205 0 0); - --destructive: oklch(0.577 0.245 27.325); - --destructive-foreground: oklch(0.577 0.245 27.325); - --border: oklch(0.922 0 0); - --input: oklch(0.922 0 0); - --ring: oklch(0.708 0 0); - --chart-1: oklch(0.646 0.222 41.116); - --chart-2: oklch(0.6 0.118 184.704); - --chart-3: oklch(0.398 0.07 227.392); - --chart-4: oklch(0.828 0.189 84.429); - --chart-5: oklch(0.769 0.188 70.08); - --radius: 0.625rem; - --sidebar: oklch(0.985 0 0); - --sidebar-foreground: oklch(0.145 0 0); - --sidebar-primary: oklch(0.205 0 0); - --sidebar-primary-foreground: oklch(0.985 0 0); - --sidebar-accent: oklch(0.97 0 0); - --sidebar-accent-foreground: oklch(0.205 0 0); - --sidebar-border: oklch(0.922 0 0); - --sidebar-ring: oklch(0.708 0 0); -} - -.dark { - --background: oklch(0.145 0 0); - --foreground: oklch(0.985 0 0); - --card: oklch(0.145 0 0); - --card-foreground: oklch(0.985 0 0); - --popover: oklch(0.145 0 0); - --popover-foreground: oklch(0.985 0 0); - --primary: oklch(0.985 0 0); - --primary-foreground: oklch(0.205 0 0); - --secondary: oklch(0.269 0 0); - --secondary-foreground: oklch(0.985 0 0); - --muted: oklch(0.269 0 0); - --muted-foreground: oklch(0.708 0 0); - --accent: oklch(0.269 0 0); - --accent-foreground: oklch(0.985 0 0); - --destructive: oklch(0.396 0.141 25.723); - --destructive-foreground: oklch(0.637 0.237 25.331); - --border: oklch(0.269 0 0); - --input: oklch(0.269 0 0); - --ring: oklch(0.439 0 0); - --chart-1: oklch(0.488 0.243 264.376); - --chart-2: oklch(0.696 0.17 162.48); - --chart-3: oklch(0.769 0.188 70.08); - --chart-4: oklch(0.627 0.265 303.9); - --chart-5: oklch(0.645 0.246 16.439); - --sidebar: oklch(0.205 0 0); - --sidebar-foreground: oklch(0.985 0 0); - --sidebar-primary: oklch(0.488 0.243 264.376); - --sidebar-primary-foreground: oklch(0.985 0 0); - --sidebar-accent: oklch(0.269 0 0); - --sidebar-accent-foreground: oklch(0.985 0 0); - --sidebar-border: oklch(0.269 0 0); - --sidebar-ring: oklch(0.439 0 0); -} - -@theme inline { - --font-sans: var(--font-geist-sans); - --font-mono: var(--font-geist-mono); - --color-background: var(--background); - --color-foreground: var(--foreground); - --color-card: var(--card); - --color-card-foreground: var(--card-foreground); - --color-popover: var(--popover); - --color-popover-foreground: var(--popover-foreground); - --color-primary: var(--primary); - --color-primary-foreground: var(--primary-foreground); - --color-secondary: var(--secondary); - --color-secondary-foreground: var(--secondary-foreground); - --color-muted: var(--muted); - --color-muted-foreground: var(--muted-foreground); - --color-accent: var(--accent); - --color-accent-foreground: var(--accent-foreground); - --color-destructive: var(--destructive); - --color-destructive-foreground: var(--destructive-foreground); - --color-border: var(--border); - --color-input: var(--input); - --color-ring: var(--ring); - --color-chart-1: var(--chart-1); - --color-chart-2: var(--chart-2); - --color-chart-3: var(--chart-3); - --color-chart-4: var(--chart-4); - --color-chart-5: var(--chart-5); - --radius-sm: calc(var(--radius) - 4px); - --radius-md: calc(var(--radius) - 2px); - --radius-lg: var(--radius); - --radius-xl: calc(var(--radius) + 4px); - --color-sidebar: var(--sidebar); - --color-sidebar-foreground: var(--sidebar-foreground); - --color-sidebar-primary: var(--sidebar-primary); - --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); - --color-sidebar-accent: var(--sidebar-accent); - --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); - --color-sidebar-border: var(--sidebar-border); - --color-sidebar-ring: var(--sidebar-ring); -} - -@layer base { - * { - @apply border-border outline-ring/50; - } - body { - @apply bg-background text-foreground; - } -} +@import 'tailwindcss'; +@import 'tw-animate-css'; + +@custom-variant dark (&:is(.dark *)); + +:root { + --background: oklch(1 0 0); + --foreground: oklch(0.145 0 0); + --card: oklch(1 0 0); + --card-foreground: oklch(0.145 0 0); + --popover: oklch(1 0 0); + --popover-foreground: oklch(0.145 0 0); + --primary: oklch(0.205 0 0); + --primary-foreground: oklch(0.985 0 0); + --secondary: oklch(0.97 0 0); + --secondary-foreground: oklch(0.205 0 0); + --muted: oklch(0.97 0 0); + --muted-foreground: oklch(0.556 0 0); + --accent: oklch(0.97 0 0); + --accent-foreground: oklch(0.205 0 0); + --destructive: oklch(0.577 0.245 27.325); + --destructive-foreground: oklch(0.577 0.245 27.325); + --border: oklch(0.922 0 0); + --input: oklch(0.922 0 0); + --ring: oklch(0.708 0 0); + --chart-1: oklch(0.646 0.222 41.116); + --chart-2: oklch(0.6 0.118 184.704); + --chart-3: oklch(0.398 0.07 227.392); + --chart-4: oklch(0.828 0.189 84.429); + --chart-5: oklch(0.769 0.188 70.08); + --radius: 0.625rem; + --sidebar: oklch(0.985 0 0); + --sidebar-foreground: oklch(0.145 0 0); + --sidebar-primary: oklch(0.205 0 0); + --sidebar-primary-foreground: oklch(0.985 0 0); + --sidebar-accent: oklch(0.97 0 0); + --sidebar-accent-foreground: oklch(0.205 0 0); + --sidebar-border: oklch(0.922 0 0); + --sidebar-ring: oklch(0.708 0 0); +} + +.dark { + --background: oklch(0.145 0 0); + --foreground: oklch(0.985 0 0); + --card: oklch(0.145 0 0); + --card-foreground: oklch(0.985 0 0); + --popover: oklch(0.145 0 0); + --popover-foreground: oklch(0.985 0 0); + --primary: oklch(0.985 0 0); + --primary-foreground: oklch(0.205 0 0); + --secondary: oklch(0.269 0 0); + --secondary-foreground: oklch(0.985 0 0); + --muted: oklch(0.269 0 0); + --muted-foreground: oklch(0.708 0 0); + --accent: oklch(0.269 0 0); + --accent-foreground: oklch(0.985 0 0); + --destructive: oklch(0.396 0.141 25.723); + --destructive-foreground: oklch(0.637 0.237 25.331); + --border: oklch(0.269 0 0); + --input: oklch(0.269 0 0); + --ring: oklch(0.439 0 0); + --chart-1: oklch(0.488 0.243 264.376); + --chart-2: oklch(0.696 0.17 162.48); + --chart-3: oklch(0.769 0.188 70.08); + --chart-4: oklch(0.627 0.265 303.9); + --chart-5: oklch(0.645 0.246 16.439); + --sidebar: oklch(0.205 0 0); + --sidebar-foreground: oklch(0.985 0 0); + --sidebar-primary: oklch(0.488 0.243 264.376); + --sidebar-primary-foreground: oklch(0.985 0 0); + --sidebar-accent: oklch(0.269 0 0); + --sidebar-accent-foreground: oklch(0.985 0 0); + --sidebar-border: oklch(0.269 0 0); + --sidebar-ring: oklch(0.439 0 0); +} + +@theme inline { + --font-sans: var(--font-geist-sans); + --font-mono: var(--font-geist-mono); + --color-background: var(--background); + --color-foreground: var(--foreground); + --color-card: var(--card); + --color-card-foreground: var(--card-foreground); + --color-popover: var(--popover); + --color-popover-foreground: var(--popover-foreground); + --color-primary: var(--primary); + --color-primary-foreground: var(--primary-foreground); + --color-secondary: var(--secondary); + --color-secondary-foreground: var(--secondary-foreground); + --color-muted: var(--muted); + --color-muted-foreground: var(--muted-foreground); + --color-accent: var(--accent); + --color-accent-foreground: var(--accent-foreground); + --color-destructive: var(--destructive); + --color-destructive-foreground: var(--destructive-foreground); + --color-border: var(--border); + --color-input: var(--input); + --color-ring: var(--ring); + --color-chart-1: var(--chart-1); + --color-chart-2: var(--chart-2); + --color-chart-3: var(--chart-3); + --color-chart-4: var(--chart-4); + --color-chart-5: var(--chart-5); + --radius-sm: calc(var(--radius) - 4px); + --radius-md: calc(var(--radius) - 2px); + --radius-lg: var(--radius); + --radius-xl: calc(var(--radius) + 4px); + --color-sidebar: var(--sidebar); + --color-sidebar-foreground: var(--sidebar-foreground); + --color-sidebar-primary: var(--sidebar-primary); + --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); + --color-sidebar-accent: var(--sidebar-accent); + --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); + --color-sidebar-border: var(--sidebar-border); + --color-sidebar-ring: var(--sidebar-ring); +} + +@layer base { + * { + @apply border-border outline-ring/50; + } + body { + @apply bg-background text-foreground; + } +} diff --git a/legacy/tsconfig.json b/legacy/tsconfig.json new file mode 100644 index 0000000..4b2dc7b --- /dev/null +++ b/legacy/tsconfig.json @@ -0,0 +1,27 @@ +{ + "compilerOptions": { + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "target": "ES6", + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +} diff --git a/package.json b/package.json index 1a8a631..c373559 100644 --- a/package.json +++ b/package.json @@ -1,35 +1,40 @@ -{ - "scripts": { - "build": "next build", - "dev": "next dev", - "lint": "next lint", - "start": "next start" - }, - "dependencies": { - "@radix-ui/react-label": "latest", - "@radix-ui/react-slot": "latest", - "@vercel/analytics": "latest", - "class-variance-authority": "^0.7.1", - "clsx": "^2.1.1", - "geist": "latest", - "lucide-react": "^0.454.0", - "next": "15.2.4", - "next-themes": "latest", - "qrcode": "latest", - "react": "^19", - "react-dom": "^19", - "tailwind-merge": "^2.5.5", - "tailwindcss-animate": "^1.0.7", - "tw-animate-css": "latest" - }, - "devDependencies": { - "@tailwindcss/postcss": "^4.1.9", - "@types/node": "^22", - "@types/qrcode": "^1.5.5", - "@types/react": "^19", - "@types/react-dom": "^19", - "postcss": "^8.5", - "tailwindcss": "^4.1.9", - "typescript": "^5" - } -} \ No newline at end of file +{ + "name": "qris-dynamic", + "version": "1.0.0", + "description": "Dynamic QRIS payment code generator — BHVR (Bun + Hono + Vite + React)", + "license": "MIT", + "packageManager": "bun@1.2.4", + "workspaces": [ + "./server", + "./client", + "./shared" + ], + "scripts": { + "dev": "turbo dev", + "dev:client": "turbo dev --filter=client", + "dev:server": "turbo dev --filter=server", + "build": "turbo build", + "build:client": "turbo build --filter=client", + "build:server": "turbo build --filter=server", + "start": "bun run server/dist/index.js", + "lint": "turbo lint", + "type-check": "turbo type-check", + "test": "turbo test", + "postinstall": "turbo build --filter=shared --filter=server" + }, + "keywords": [ + "bun", + "hono", + "react", + "vite", + "monorepo", + "turbo" + ], + "devDependencies": { + "bun-types": "latest", + "turbo": "^2.6.3" + }, + "peerDependencies": { + "typescript": "^5.8.3" + } +} diff --git a/server/.gitignore b/server/.gitignore new file mode 100644 index 0000000..506e4c3 --- /dev/null +++ b/server/.gitignore @@ -0,0 +1,2 @@ +# deps +node_modules/ diff --git a/server/README.md b/server/README.md new file mode 100644 index 0000000..6dd13e7 --- /dev/null +++ b/server/README.md @@ -0,0 +1,11 @@ +To install dependencies: +```sh +bun install +``` + +To run: +```sh +bun run dev +``` + +open http://localhost:3000 diff --git a/server/package.json b/server/package.json new file mode 100644 index 0000000..70d625b --- /dev/null +++ b/server/package.json @@ -0,0 +1,24 @@ +{ + "name": "server", + "version": "0.0.1", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "scripts": { + "build": "tsc", + "dev": "bun --watch run src/index.ts", + "start": "bun run dist/index.js" + }, + "dependencies": { + "hono": "^4.10.8", + "shared": "workspace:*" + }, + "devDependencies": { + "@types/bun": "latest" + } +} diff --git a/server/src/index.ts b/server/src/index.ts new file mode 100644 index 0000000..3fd6cb3 --- /dev/null +++ b/server/src/index.ts @@ -0,0 +1,66 @@ +import { Hono } from 'hono' +import { cors } from 'hono/cors' +import { serveStatic } from 'hono/bun' +import { + generateDynamicQris, + QrisError, + type ApiResponse, + type QrisDynamicRequest, + type QrisDynamicResponse, +} from 'shared' + +const app = new Hono() + +app.use('*', cors()) + +app.get('/healthz', (c) => c.json({ ok: true })) + +app.get('/api', (c) => { + const res: ApiResponse = { success: true, message: 'qris-dynamic API' } + return c.json(res) +}) + +app.post('/api/qris/dynamic', async (c) => { + let body: Partial + try { + body = await c.req.json>() + } catch { + const res: ApiResponse = { success: false, error: 'Invalid JSON body' } + return c.json(res, 400) + } + + const qris = typeof body.qris === 'string' ? body.qris.trim() : '' + const amount = Number(body.amount) + if (!qris) { + const res: ApiResponse = { success: false, error: 'qris field is required' } + return c.json(res, 400) + } + if (!Number.isFinite(amount) || amount <= 0) { + const res: ApiResponse = { success: false, error: 'amount must be a positive number' } + return c.json(res, 400) + } + + try { + const dynamic = generateDynamicQris(qris, amount) + const data: QrisDynamicResponse = { qris: dynamic, amount } + const res: ApiResponse = { success: true, data } + return c.json(res) + } catch (err) { + const message = err instanceof QrisError ? err.message : 'Failed to generate dynamic QRIS' + const res: ApiResponse = { success: false, error: message } + return c.json(res, 422) + } +}) + +// Serve the built Vite client in production. The Docker image copies +// client/dist into ./public next to the server bundle. +const CLIENT_DIR = process.env.CLIENT_DIST_DIR ?? './public' +app.use('/*', serveStatic({ root: CLIENT_DIR })) +app.use('/*', serveStatic({ path: `${CLIENT_DIR}/index.html` })) + +const port = Number(process.env.PORT ?? 3000) + +export default { + port, + fetch: app.fetch, +} diff --git a/server/tsconfig.json b/server/tsconfig.json new file mode 100644 index 0000000..5f51d10 --- /dev/null +++ b/server/tsconfig.json @@ -0,0 +1,26 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + // Environment settings + "lib": ["ESNext"], + "target": "ESNext", + "module": "ESNext", + "jsx": "react-jsx", + "jsxImportSource": "hono/jsx", + + // Types + "types": ["bun-types"], + + // Output settings + "declaration": true, + "outDir": "dist", + "noEmit": false, + "emitDecoratorMetadata": true, + + // Module resolution + "moduleResolution": "bundler", + "allowImportingTsExtensions": false + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "dist"] +} diff --git a/shared/package.json b/shared/package.json new file mode 100644 index 0000000..d6e0c6b --- /dev/null +++ b/shared/package.json @@ -0,0 +1,19 @@ +{ + "name": "shared", + "version": "0.0.1", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "scripts": { + "build": "tsc", + "dev": "tsc --watch" + }, + "devDependencies": { + "typescript": "^5.9.3" + } +} diff --git a/shared/src/index.ts b/shared/src/index.ts new file mode 100644 index 0000000..e30c637 --- /dev/null +++ b/shared/src/index.ts @@ -0,0 +1,2 @@ +export * from './types' +export * from './qris' diff --git a/shared/src/qris.ts b/shared/src/qris.ts new file mode 100644 index 0000000..1ca2d82 --- /dev/null +++ b/shared/src/qris.ts @@ -0,0 +1,48 @@ +// Pure utilities for converting a static QRIS payload into a dynamic one. +// Used by both the server (POST /api/qris/dynamic) and the client (optimistic UI). + +export function crc16(data: string): string { + let crc = 0xffff + for (let i = 0; i < data.length; i++) { + crc ^= data.charCodeAt(i) << 8 + for (let j = 0; j < 8; j++) { + if (crc & 0x8000) { + crc = (crc << 1) ^ 0x1021 + } else { + crc <<= 1 + } + crc &= 0xffff + } + } + return crc.toString(16).toUpperCase().padStart(4, '0') +} + +export class QrisError extends Error { + constructor(message: string) { + super(message) + this.name = 'QrisError' + } +} + +export function generateDynamicQris(staticQris: string, amount: number | string): string { + if (!staticQris || staticQris.length < 8) { + throw new QrisError('QRIS payload is too short to be valid') + } + const amountStr = String(amount).replace(/\D/g, '') + if (!amountStr || Number(amountStr) <= 0) { + throw new QrisError('Amount must be a positive integer') + } + + // Strip trailing CRC (last 4 chars) and flip static->dynamic point-of-init flag. + let qris = staticQris.slice(0, -4).replace('010211', '010212') + + // Insert amount tag (54) right before merchant country tag (5802ID). + const parts = qris.split('5802ID') + if (parts.length !== 2) { + throw new QrisError('QRIS payload is missing the 5802ID country tag') + } + const amountTag = `54${amountStr.length.toString().padStart(2, '0')}${amountStr}5802ID` + const finalQris = parts[0] + amountTag + parts[1] + + return finalQris + crc16(finalQris) +} diff --git a/shared/src/types/index.ts b/shared/src/types/index.ts new file mode 100644 index 0000000..40b1330 --- /dev/null +++ b/shared/src/types/index.ts @@ -0,0 +1,16 @@ +export type ApiResponse = { + success: boolean + message?: string + data?: T + error?: string +} + +export type QrisDynamicRequest = { + qris: string + amount: number +} + +export type QrisDynamicResponse = { + qris: string + amount: number +} diff --git a/shared/tsconfig.json b/shared/tsconfig.json new file mode 100644 index 0000000..2a9e8ce --- /dev/null +++ b/shared/tsconfig.json @@ -0,0 +1,24 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + // Environment setup + "lib": ["ESNext"], + "target": "ESNext", + "module": "ESNext", + + // Output configuration + "declaration": true, + "outDir": "./dist", + "noEmit": false, + + // Type checking + "strict": true, + "skipLibCheck": true, + + // Additional checks + "noFallthroughCasesInSwitch": true, + "noUncheckedIndexedAccess": true + }, + "include": ["src/**/*"], + "exclude": ["node_modules", "**/*.test.ts", "dist"] +} diff --git a/tsconfig.json b/tsconfig.json index 8632cd7..f38bcbf 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,27 +1,32 @@ -{ - "compilerOptions": { - "lib": ["dom", "dom.iterable", "esnext"], - "allowJs": true, - "target": "ES6", - "skipLibCheck": true, - "strict": true, - "noEmit": true, - "esModuleInterop": true, - "module": "esnext", - "moduleResolution": "bundler", - "resolveJsonModule": true, - "isolatedModules": true, - "jsx": "preserve", - "incremental": true, - "plugins": [ - { - "name": "next" - } - ], - "paths": { - "@/*": ["./*"] - } - }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], - "exclude": ["node_modules"] -} +{ + "compilerOptions": { + // Environment setup & latest features + "lib": ["ESNext", "DOM", "DOM.Iterable"], + "target": "ESNext", + "module": "ESNext", + "moduleDetection": "force", + "jsx": "react-jsx", + "allowJs": true, + + // Module resolution + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + "verbatimModuleSyntax": true, + + // Strictness and best practices + "strict": true, + "forceConsistentCasingInFileNames": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedIndexedAccess": true, + "experimentalDecorators": true, + + // Output control + "skipLibCheck": true, + + // Optional strict flags (disabled by default) + "noUnusedLocals": false, + "noUnusedParameters": false, + "noPropertyAccessFromIndexSignature": false + } +} diff --git a/turbo.json b/turbo.json new file mode 100644 index 0000000..532e097 --- /dev/null +++ b/turbo.json @@ -0,0 +1,148 @@ +{ + "$schema": "https://turbo.build/schema.json", + "ui": "tui", + "tasks": { + "build": { + "dependsOn": [ + "^build" + ], + "inputs": [ + "src/**/*.ts", + "src/**/*.tsx", + "src/**/*.js", + "src/**/*.jsx", + "src/**/*.json", + "tsconfig.json", + "tsconfig.*.json", + "vite.config.ts", + "package.json", + "bun.lock", + "eslint.config.js", + "index.html" + ], + "outputs": [ + "dist/**", + "build/**", + ".turbo/**" + ], + "env": [ + "NODE_ENV", + "VITE_*" + ] + }, + "dev": { + "cache": false, + "persistent": true, + "inputs": [ + "src/**/*.ts", + "src/**/*.tsx", + "src/**/*.js", + "src/**/*.jsx", + "tsconfig.json", + "tsconfig.*.json", + "vite.config.ts", + "package.json" + ], + "env": [ + "NODE_ENV", + "PORT", + "VITE_*" + ] + }, + "lint": { + "dependsOn": [ + "^build" + ], + "inputs": [ + "src/**/*.ts", + "src/**/*.tsx", + "src/**/*.js", + "src/**/*.jsx", + "eslint.config.js", + ".eslintrc*", + "package.json", + "tsconfig.json", + "tsconfig.*.json" + ], + "outputs": [ + ".eslintcache" + ], + "env": [ + "NODE_ENV" + ] + }, + "type-check": { + "dependsOn": [ + "^build" + ], + "inputs": [ + "src/**/*.ts", + "src/**/*.tsx", + "src/**/*.d.ts", + "tsconfig.json", + "tsconfig.*.json", + "package.json" + ], + "outputs": [ + "dist/**/*.d.ts", + ".tsbuildinfo" + ], + "env": [ + "NODE_ENV" + ] + }, + "test": { + "dependsOn": [ + "^build" + ], + "inputs": [ + "src/**/*.ts", + "src/**/*.tsx", + "src/**/*.js", + "src/**/*.jsx", + "test/**/*.ts", + "test/**/*.tsx", + "test/**/*.js", + "test/**/*.jsx", + "__tests__/**/*.ts", + "__tests__/**/*.tsx", + "**/*.test.ts", + "**/*.test.tsx", + "**/*.spec.ts", + "**/*.spec.tsx", + "jest.config.*", + "vitest.config.*", + "package.json", + "tsconfig.json", + "tsconfig.*.json" + ], + "outputs": [ + "coverage/**", + ".nyc_output/**", + "test-results/**" + ], + "env": [ + "NODE_ENV", + "CI" + ] + } + }, + "globalDependencies": [ + "**/.env", + "**/.env.*", + "**/.env.local", + "**/.env.*.local", + ".gitignore", + "turbo.json", + "package.json", + "bun.lock", + "tsconfig.json" + ], + "globalEnv": [ + "NODE_ENV", + "CI", + "TURBO_TOKEN", + "TURBO_TEAM", + "TURBO_REMOTE_ONLY" + ] +} \ No newline at end of file From 58ae6775b0f80e56b0d03d6799db61f56c04f4a5 Mon Sep 17 00:00:00 2001 From: mdestafadilah Date: Thu, 21 May 2026 10:30:06 +0700 Subject: [PATCH 2/7] Update Dockerfile to skip lifecycle scripts during dependency installation --- Dockerfile | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index b1cad0e..0c7ecb4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,10 +10,12 @@ COPY shared/package.json ./shared/ COPY server/package.json ./server/ COPY client/package.json ./client/ -# Install all deps (postinstall builds shared + server via turbo). -RUN bun install +# Install all deps. Skip lifecycle scripts because the root postinstall runs +# `turbo build --filter=shared --filter=server`, which needs source files that +# are not in the image yet. +RUN bun install --ignore-scripts -# Copy the rest of the sources and run the full build (adds client/dist). +# Copy the rest of the sources, then run the full build once. COPY shared ./shared COPY server ./server COPY client ./client From c2bec56add31f5f7e799aa00a281d8b5403ce26e Mon Sep 17 00:00:00 2001 From: mdestafadilah Date: Thu, 21 May 2026 10:35:28 +0700 Subject: [PATCH 3/7] Add pull policy to Docker Compose configuration for dynamic service --- docker-compose.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docker-compose.yml b/docker-compose.yml index e060fa2..d228f80 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,6 +4,7 @@ services: context: . dockerfile: Dockerfile image: qris-dynamic:latest + pull_policy: build container_name: qris-dynamic restart: unless-stopped ports: From 2cf9e0f52718bce47b0341e26a3a08e8af2e85ec Mon Sep 17 00:00:00 2001 From: mdestafadilah Date: Thu, 4 Jun 2026 10:29:31 +0700 Subject: [PATCH 4/7] Add QRIS image decoding functionality with new API endpoint and update README for usage instructions. Include environment variables for username and password in .env.example. Update dependencies for image processing. --- .env.example | 3 +- README.md | 29 ++++- bun.lock | 130 +++++++++++++++++++++++ client/src/App.tsx | 4 +- client/src/components/qris-generator.tsx | 22 ++-- client/src/lib/api.ts | 16 ++- server/package.json | 2 + server/src/index.ts | 29 +++++ server/src/qris-image.ts | 37 +++++++ shared/src/types/index.ts | 4 + 10 files changed, 261 insertions(+), 15 deletions(-) create mode 100644 server/src/qris-image.ts diff --git a/.env.example b/.env.example index 0f5779e..a3f3f71 100644 --- a/.env.example +++ b/.env.example @@ -1,6 +1,7 @@ # Host port mapped to the container (container always listens on 3000). PORT=3000 - +USERNAME= +PASSWORD= # Optional: override the API base URL used by the client at build time. # Leave empty in production (the Hono server serves both the client and the API). # VITE_SERVER_URL=http://localhost:3000 diff --git a/README.md b/README.md index ae3beea..058d8d4 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,7 @@ Konversi QRIS statis menjadi QRIS dinamis dengan nominal pembayaran terkustomisa ## ✨ Fitur - Konversi QRIS statis → dinamis (logika CRC16 + tag 54) di server (Hono) untuk validasi terpusat. +- Upload gambar QRIS (PNG/JPG) — server men-decode QR (jimp + jsQR) lalu mengembalikan payload-nya, jadi tak perlu menyalin teks manual. - UI modern: Tailwind v4, shadcn/ui, dark/light mode, animasi floating shapes & gradient. - QR code di-render di canvas dengan logo overlay (error correction level H). - Download QR sebagai PNG dan copy string QRIS dinamis. @@ -89,6 +90,31 @@ Mengkonversi QRIS statis menjadi dinamis. { "success": false, "error": "amount must be a positive number" } ``` +### `POST /api/qris/decode` + +Men-decode payload QRIS dari gambar yang di-upload. Body berupa `multipart/form-data` dengan field file bernama `image` (PNG/JPG, maks 10MB). + +**Request** (`multipart/form-data`) + +```bash +curl -X POST http://localhost:3000/api/qris/decode -F "image=@qris.png" +``` + +**Response 200** +```json +{ + "success": true, + "data": { + "qris": "00020101021126670016COM.NOBUBANK.WWW...6304F6C8" + } +} +``` + +**Response 4xx/422** +```json +{ "success": false, "error": "No QR code found in the image" } +``` + ### `GET /healthz` Healthcheck untuk Docker / orchestrator. Mengembalikan `{ "ok": true }`. @@ -148,7 +174,7 @@ Image dibangun dengan base `oven/bun:1.2-alpine` di Linux/amd64. Jika VPS Anda A ## 📁 Folder legacy -[`legacy/`](legacy/) menyimpan project Next.js asli (App Router, Heroku/Vercel-ready). Tidak digunakan oleh build BHVR dan aman untuk dihapus jika tidak lagi diperlukan. +[`legacy/`](legacy/) menyimpan project Next.js asli (App Router, Heroku/Vercel-ready). Tidak digunakan oleh build BHVR dan aman untuk dihapus jika tidak lagi diperlukan, ini dibiarkan sebagai bukti bahwa saya menghargai Programmer Utama ini. ## 📝 Lisensi @@ -158,3 +184,4 @@ MIT — lihat [LICENSE](LICENSE). - Project asli: [@AmmarrBN/Qris-Dynamic](https://github.com/AmmarrBN/Qris-Dynamic). - Template stack: [bhvr.dev](https://bhvr.dev) oleh Steve Simkins. +- ATM Programing Style: [mdestafadilah](https://github.com/mdestafadilah) diff --git a/bun.lock b/bun.lock index 209ecd3..ef37393 100644 --- a/bun.lock +++ b/bun.lock @@ -52,6 +52,8 @@ "version": "0.0.1", "dependencies": { "hono": "^4.10.8", + "jimp": "^1.6.1", + "jsqr": "^1.4.0", "shared": "workspace:*", }, "devDependencies": { @@ -107,6 +109,8 @@ "@babel/types": ["@babel/types@7.28.1", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1" } }, "sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ=="], + "@borewit/text-codec": ["@borewit/text-codec@0.2.2", "", {}, "sha512-DDaRehssg1aNrH4+2hnj1B7vnUGEjU6OIlyRdkMd0aUdIUvKXrJfXsy8LVtXAy7DRvYVluWbMspsRhz2lcW0mQ=="], + "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.8", "", { "os": "aix", "cpu": "ppc64" }, "sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA=="], "@esbuild/android-arm": ["@esbuild/android-arm@0.25.8", "", { "os": "android", "cpu": "arm" }, "sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw=="], @@ -185,6 +189,62 @@ "@humanwhocodes/retry": ["@humanwhocodes/retry@0.4.3", "", {}, "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ=="], + "@jimp/core": ["@jimp/core@1.6.1", "", { "dependencies": { "@jimp/file-ops": "1.6.1", "@jimp/types": "1.6.1", "@jimp/utils": "1.6.1", "await-to-js": "^3.0.0", "exif-parser": "^0.1.12", "file-type": "^21.3.3", "mime": "3" } }, "sha512-+BoKC5G6hkrSy501zcJ2EpfnllP+avPevcBfRcZe/CW+EwEfY6X1EZ8QWyT7NpDIvEEJb1fdJnMMfUnFkxmw9A=="], + + "@jimp/diff": ["@jimp/diff@1.6.1", "", { "dependencies": { "@jimp/plugin-resize": "1.6.1", "@jimp/types": "1.6.1", "@jimp/utils": "1.6.1", "pixelmatch": "^5.3.0" } }, "sha512-YkKDPdHjLgo1Api3+Bhc0GLAygldlpt97NfOKoNg1U6IUNXA6X2MgosCjPfSBiSvJvrrz1fsIR+/4cfYXBI/HQ=="], + + "@jimp/file-ops": ["@jimp/file-ops@1.6.1", "", {}, "sha512-T+gX6osHjprbDRad0/B71Evyre7ZdVY1z/gFGEG9Z8KOtZPKboWvPeP2UjbZYWQLy9UKCPQX1FNAnDiOPkJL7w=="], + + "@jimp/js-bmp": ["@jimp/js-bmp@1.6.1", "", { "dependencies": { "@jimp/core": "1.6.1", "@jimp/types": "1.6.1", "@jimp/utils": "1.6.1", "bmp-ts": "^1.0.9" } }, "sha512-xzWzNT4/u5zGrTT3Tme9sGU7YzIKxi13+BCQwLqACbt5DXf9SAfdzRkopZQnmDko+6In5nqaT89Gjs43/WdnYQ=="], + + "@jimp/js-gif": ["@jimp/js-gif@1.6.1", "", { "dependencies": { "@jimp/core": "1.6.1", "@jimp/types": "1.6.1", "gifwrap": "^0.10.1", "omggif": "^1.0.10" } }, "sha512-YjY2W26rQa05XhanYhRZ7dingCiNN+T2Ymb1JiigIbABY0B28wHE3v3Cf1/HZPWGu0hOg36ylaKgV5KxF2M58w=="], + + "@jimp/js-jpeg": ["@jimp/js-jpeg@1.6.1", "", { "dependencies": { "@jimp/core": "1.6.1", "@jimp/types": "1.6.1", "jpeg-js": "^0.4.4" } }, "sha512-HT9H3yOmlOFzYmdI15IYdfy6ggQhSRIaHeA+OTJSEORXBqEo97sUZu/DsgHIcX5NJ7TkJBTgZ9BZXsV6UbsyMg=="], + + "@jimp/js-png": ["@jimp/js-png@1.6.1", "", { "dependencies": { "@jimp/core": "1.6.1", "@jimp/types": "1.6.1", "pngjs": "^7.0.0" } }, "sha512-SZ/KVhI5UjcSzzlXsXdIi/LhJ7UShf2NkMOtVrbZQcGzsqNtynAelrOXeoTxcanfVqmNhAoVHg8yR2cYoqrYjA=="], + + "@jimp/js-tiff": ["@jimp/js-tiff@1.6.1", "", { "dependencies": { "@jimp/core": "1.6.1", "@jimp/types": "1.6.1", "utif2": "^4.1.0" } }, "sha512-jDG/eJquID1M4MBlKMmDRBmz2TpXMv7TUyu2nIRUxhlUc2ogC82T+VQUkca9GJH1BBJ9dx5sSE5dGkWNjIbZxw=="], + + "@jimp/plugin-blit": ["@jimp/plugin-blit@1.6.1", "", { "dependencies": { "@jimp/types": "1.6.1", "@jimp/utils": "1.6.1", "zod": "^3.23.8" } }, "sha512-MwnI7C7K81uWddY9FLw1fCOIy6SsPIUftUz36Spt7jisCn8/40DhQMlSxpxTNelnZb/2SnloFimQfRZAmHLOqQ=="], + + "@jimp/plugin-blur": ["@jimp/plugin-blur@1.6.1", "", { "dependencies": { "@jimp/core": "1.6.1", "@jimp/utils": "1.6.1" } }, "sha512-lIo7Tzp5jQu30EFFSK/phXANK3citKVEjepDjQ6ljHoIFtuMRrnybnmI2Md24ulvWlDaz+hh3n6qrMb8ydwhZQ=="], + + "@jimp/plugin-circle": ["@jimp/plugin-circle@1.6.1", "", { "dependencies": { "@jimp/types": "1.6.1", "zod": "^3.23.8" } }, "sha512-kK1PavY6cKHNNKce37vdV4Tmpc1/zDKngGoeOV3j+EMatoHFZUinV3s6F9aWryPs3A0xhCLZgdJ6Zeea1d5LCQ=="], + + "@jimp/plugin-color": ["@jimp/plugin-color@1.6.1", "", { "dependencies": { "@jimp/core": "1.6.1", "@jimp/types": "1.6.1", "@jimp/utils": "1.6.1", "tinycolor2": "^1.6.0", "zod": "^3.23.8" } }, "sha512-LtUN1vAP+LRlZAtTNVhDRSiXx+26Kbz3zJaG6a5k59gQ95jgT5mknnF8lxkHcqJthM4MEk3/tPxkdJpEybyF/A=="], + + "@jimp/plugin-contain": ["@jimp/plugin-contain@1.6.1", "", { "dependencies": { "@jimp/core": "1.6.1", "@jimp/plugin-blit": "1.6.1", "@jimp/plugin-resize": "1.6.1", "@jimp/types": "1.6.1", "@jimp/utils": "1.6.1", "zod": "^3.23.8" } }, "sha512-m0qhrfA8jkTqretGv4w+T/ADFR4GwBpE0sCOC2uJ0dzr44/ddOMsIdrpi89kabqYiPYIrxkgdCVCLm3zn1Vkkg=="], + + "@jimp/plugin-cover": ["@jimp/plugin-cover@1.6.1", "", { "dependencies": { "@jimp/core": "1.6.1", "@jimp/plugin-crop": "1.6.1", "@jimp/plugin-resize": "1.6.1", "@jimp/types": "1.6.1", "zod": "^3.23.8" } }, "sha512-hZytnsth0zoll6cPf434BrT+p/v569Wr5tyO6Dp0dH1IDPhzhB5F38sZGMLDo7bzQiN9JFVB3fxkcJ/WYCJ3Mg=="], + + "@jimp/plugin-crop": ["@jimp/plugin-crop@1.6.1", "", { "dependencies": { "@jimp/core": "1.6.1", "@jimp/types": "1.6.1", "@jimp/utils": "1.6.1", "zod": "^3.23.8" } }, "sha512-EerRSLlclXyKDnYc/H9w/1amZW7b7v3OGi/VlerPd2M/pAu5X8TkyYWtfqYCXnNp1Ixtd8oCo9zGfY9zoXT4rg=="], + + "@jimp/plugin-displace": ["@jimp/plugin-displace@1.6.1", "", { "dependencies": { "@jimp/types": "1.6.1", "@jimp/utils": "1.6.1", "zod": "^3.23.8" } }, "sha512-K07QVl7xQwIfD6KfxRV/c3E9e7ZBXxUXdWuvoTWcKHL2qV48MOF5Nqbz/aJW4ThnQARIsxvYlZjPFiqkCjlU+g=="], + + "@jimp/plugin-dither": ["@jimp/plugin-dither@1.6.1", "", { "dependencies": { "@jimp/types": "1.6.1" } }, "sha512-+2V+GCV2WycMoX1/z977TkZ8Zq/4MVSKElHYatgUqtwXMi2fDK2gKYU2g9V39IqFvTJsTIsK0+58VFz/ROBVew=="], + + "@jimp/plugin-fisheye": ["@jimp/plugin-fisheye@1.6.1", "", { "dependencies": { "@jimp/types": "1.6.1", "@jimp/utils": "1.6.1", "zod": "^3.23.8" } }, "sha512-XtS5ZyoZ0vxZxJ6gkqI63SivhtI58vX95foMPM+cyzYkRsJXMOYCr8DScxF5bp4Xr003NjYm/P+7+08tibwzHA=="], + + "@jimp/plugin-flip": ["@jimp/plugin-flip@1.6.1", "", { "dependencies": { "@jimp/types": "1.6.1", "zod": "^3.23.8" } }, "sha512-ws38W/sGj7LobNRayQ83garxiktOyWxM5vO/y4a/2cy9v65SLEUzVkrj+oeAaUSSObdz4HcCEla7XtGlnAGAaA=="], + + "@jimp/plugin-hash": ["@jimp/plugin-hash@1.6.1", "", { "dependencies": { "@jimp/core": "1.6.1", "@jimp/js-bmp": "1.6.1", "@jimp/js-jpeg": "1.6.1", "@jimp/js-png": "1.6.1", "@jimp/js-tiff": "1.6.1", "@jimp/plugin-color": "1.6.1", "@jimp/plugin-resize": "1.6.1", "@jimp/types": "1.6.1", "@jimp/utils": "1.6.1", "any-base": "^1.1.0" } }, "sha512-sZt6ZcMX6i8vFWb4GYnw0pR/o9++ef0dTVcboTB5B/g7nrxCODIB4wfEkJ/YqZM5wUvol77K1qeS0/rVO6z21A=="], + + "@jimp/plugin-mask": ["@jimp/plugin-mask@1.6.1", "", { "dependencies": { "@jimp/types": "1.6.1", "zod": "^3.23.8" } }, "sha512-SIG0/FcmEj3tkwFxc7fAGLO8o4uNzMpSOdQOhbCgxefQKq5wOVMk9BQx/sdMPBwtMLr9WLq0GzLA/rk6t2v20A=="], + + "@jimp/plugin-print": ["@jimp/plugin-print@1.6.1", "", { "dependencies": { "@jimp/core": "1.6.1", "@jimp/js-jpeg": "1.6.1", "@jimp/js-png": "1.6.1", "@jimp/plugin-blit": "1.6.1", "@jimp/types": "1.6.1", "parse-bmfont-ascii": "^1.0.6", "parse-bmfont-binary": "^1.0.6", "parse-bmfont-xml": "^1.1.6", "simple-xml-to-json": "^1.2.2", "zod": "^3.23.8" } }, "sha512-BYVz/X3Xzv8XYilVeDy11NOp0h7BTDjlOtu0BekIFHP1yHVd24AXNzbOy52XlzYZWQ0Dl36HOHEpl/nSNrzc6w=="], + + "@jimp/plugin-quantize": ["@jimp/plugin-quantize@1.6.1", "", { "dependencies": { "image-q": "^4.0.0", "zod": "^3.23.8" } }, "sha512-J2En9PLURfP+vwYDtuZ9T8yBW6BWYZBScydAjRiPBmJfEhTcNQqiiQODrZf7EqbbX/Sy5H6dAeRiqkgoV9N6Ww=="], + + "@jimp/plugin-resize": ["@jimp/plugin-resize@1.6.1", "", { "dependencies": { "@jimp/core": "1.6.1", "@jimp/types": "1.6.1", "zod": "^3.23.8" } }, "sha512-CLkrtJoIz2HdWnpYiN6p8KYcPc00rCH/SUu6o+lfZL05Q4uhecJlnvXuj9x+U6mDn3ldPmJj6aZqMHuUJzdVqg=="], + + "@jimp/plugin-rotate": ["@jimp/plugin-rotate@1.6.1", "", { "dependencies": { "@jimp/core": "1.6.1", "@jimp/plugin-crop": "1.6.1", "@jimp/plugin-resize": "1.6.1", "@jimp/types": "1.6.1", "@jimp/utils": "1.6.1", "zod": "^3.23.8" } }, "sha512-nOjVjbbj705B02ksysKnh0POAwEBXZtJ9zQ5qC+X7Tavl3JNn+P3BzQovbBxLPSbUSld6XID9z5ijin4PtOAUg=="], + + "@jimp/plugin-threshold": ["@jimp/plugin-threshold@1.6.1", "", { "dependencies": { "@jimp/core": "1.6.1", "@jimp/plugin-color": "1.6.1", "@jimp/plugin-hash": "1.6.1", "@jimp/types": "1.6.1", "@jimp/utils": "1.6.1", "zod": "^3.23.8" } }, "sha512-JOKv9F8s6tnVLf4sB/2fF0F339EFnHvgEdFYugO6VhowKLsap0pEZmLyE/DlRnYtIj2RddHZVxVMp/eKJ04l2Q=="], + + "@jimp/types": ["@jimp/types@1.6.1", "", { "dependencies": { "zod": "^3.23.8" } }, "sha512-leI7YbveTNi565m910XgIOwXyuu074H5qazAD1357HImJSv2hqxnWXpwxQbadGWZ7goZRYBDZy5lpqud0p7q5w=="], + + "@jimp/utils": ["@jimp/utils@1.6.1", "", { "dependencies": { "@jimp/types": "1.6.1", "tinycolor2": "^1.6.0" } }, "sha512-veFPRd93FCnS7AgmCkPgARVGoDRrJ9cm1ujuNyA+UfQ5VKbED2002sm5XfFLFwTsKC8j04heTrwe+tU1dluXOw=="], + "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.12", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg=="], "@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="], @@ -275,6 +335,10 @@ "@tailwindcss/vite": ["@tailwindcss/vite@4.3.0", "", { "dependencies": { "@tailwindcss/node": "4.3.0", "@tailwindcss/oxide": "4.3.0", "tailwindcss": "4.3.0" }, "peerDependencies": { "vite": "^5.2.0 || ^6 || ^7 || ^8" } }, "sha512-t6J3OrB5Fc0ExuhohouH0fWUGMYL6PTLhW+E7zIk/pdbnJARZDCwjBznFnkh5ynRnIRSI4YjtTH0t6USjJISrw=="], + "@tokenizer/inflate": ["@tokenizer/inflate@0.4.1", "", { "dependencies": { "debug": "^4.4.3", "token-types": "^6.1.1" } }, "sha512-2mAv+8pkG6GIZiF1kNg1jAjh27IDxEPKwdGul3snfztFerfPGI1LjDezZp3i7BElXompqEtPmoPx6c2wgtWsOA=="], + + "@tokenizer/token": ["@tokenizer/token@0.3.0", "", {}, "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A=="], + "@types/babel__core": ["@types/babel__core@7.20.5", "", { "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" } }, "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA=="], "@types/babel__generator": ["@types/babel__generator@7.27.0", "", { "dependencies": { "@babel/types": "^7.0.0" } }, "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg=="], @@ -329,10 +393,16 @@ "ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "any-base": ["any-base@1.1.0", "", {}, "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg=="], + "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], + "await-to-js": ["await-to-js@3.0.0", "", {}, "sha512-zJAaP9zxTcvTHRlejau3ZOY4V7SRpiByf3/dxx2uyKxxor19tpmpV2QRsTKikckwhaPmr2dVpxxMr7jOCYVp5g=="], + "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], + "bmp-ts": ["bmp-ts@1.0.9", "", {}, "sha512-cTEHk2jLrPyi+12M3dhpEbnnPOsaZuq7C45ylbbQIiWgDFZq4UVYPEY5mlqjvsj/6gJv9qX5sa+ebDzLXT28Vw=="], + "brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], "browserslist": ["browserslist@4.25.1", "", { "dependencies": { "caniuse-lite": "^1.0.30001726", "electron-to-chromium": "^1.5.173", "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw=="], @@ -409,6 +479,8 @@ "esutils": ["esutils@2.0.3", "", {}, "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="], + "exif-parser": ["exif-parser@0.1.12", "", {}, "sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw=="], + "fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="], "fast-json-stable-stringify": ["fast-json-stable-stringify@2.1.0", "", {}, "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="], @@ -419,6 +491,8 @@ "file-entry-cache": ["file-entry-cache@8.0.0", "", { "dependencies": { "flat-cache": "^4.0.0" } }, "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ=="], + "file-type": ["file-type@21.3.4", "", { "dependencies": { "@tokenizer/inflate": "^0.4.1", "strtok3": "^10.3.4", "token-types": "^6.1.1", "uint8array-extras": "^1.4.0" } }, "sha512-Ievi/yy8DS3ygGvT47PjSfdFoX+2isQueoYP1cntFW1JLYAuS4GD7NUPGg4zv2iZfV52uDyk5w5Z0TdpRS6Q1g=="], + "find-up": ["find-up@5.0.0", "", { "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="], "flat-cache": ["flat-cache@4.0.1", "", { "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.4" } }, "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw=="], @@ -431,6 +505,8 @@ "get-caller-file": ["get-caller-file@2.0.5", "", {}, "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="], + "gifwrap": ["gifwrap@0.10.1", "", { "dependencies": { "image-q": "^4.0.0", "omggif": "^1.0.10" } }, "sha512-2760b1vpJHNmLzZ/ubTtNnEx5WApN/PYWJvXvgS+tL1egTTthayFYIQQNi136FLEDcN/IyEY2EcGpIITD6eYUw=="], + "glob-parent": ["glob-parent@6.0.2", "", { "dependencies": { "is-glob": "^4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="], "globals": ["globals@16.5.0", "", {}, "sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ=="], @@ -441,8 +517,12 @@ "hono": ["hono@4.10.8", "", {}, "sha512-DDT0A0r6wzhe8zCGoYOmMeuGu3dyTAE40HHjwUsWFTEy5WxK1x2WDSsBPlEXgPbRIFY6miDualuUDbasPogIww=="], + "ieee754": ["ieee754@1.2.1", "", {}, "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="], + "ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="], + "image-q": ["image-q@4.0.0", "", { "dependencies": { "@types/node": "16.9.1" } }, "sha512-PfJGVgIfKQJuq3s0tTDOKtztksibuUEbJQIYT3by6wctQo+Rdlh7ef4evJ5NCdxY4CfMbvFkocEwbl4BF8RlJw=="], + "import-fresh": ["import-fresh@3.3.1", "", { "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" } }, "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ=="], "imurmurhash": ["imurmurhash@0.1.4", "", {}, "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="], @@ -455,8 +535,12 @@ "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], + "jimp": ["jimp@1.6.1", "", { "dependencies": { "@jimp/core": "1.6.1", "@jimp/diff": "1.6.1", "@jimp/js-bmp": "1.6.1", "@jimp/js-gif": "1.6.1", "@jimp/js-jpeg": "1.6.1", "@jimp/js-png": "1.6.1", "@jimp/js-tiff": "1.6.1", "@jimp/plugin-blit": "1.6.1", "@jimp/plugin-blur": "1.6.1", "@jimp/plugin-circle": "1.6.1", "@jimp/plugin-color": "1.6.1", "@jimp/plugin-contain": "1.6.1", "@jimp/plugin-cover": "1.6.1", "@jimp/plugin-crop": "1.6.1", "@jimp/plugin-displace": "1.6.1", "@jimp/plugin-dither": "1.6.1", "@jimp/plugin-fisheye": "1.6.1", "@jimp/plugin-flip": "1.6.1", "@jimp/plugin-hash": "1.6.1", "@jimp/plugin-mask": "1.6.1", "@jimp/plugin-print": "1.6.1", "@jimp/plugin-quantize": "1.6.1", "@jimp/plugin-resize": "1.6.1", "@jimp/plugin-rotate": "1.6.1", "@jimp/plugin-threshold": "1.6.1", "@jimp/types": "1.6.1", "@jimp/utils": "1.6.1" } }, "sha512-hNQh6rZtWfSVWSNVmvq87N5BPJsNH7k7I7qyrXf9DOma9xATQk3fsyHazCQe51nCjdkoWdTmh0vD7bjVSLoxxw=="], + "jiti": ["jiti@2.7.0", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ=="], + "jpeg-js": ["jpeg-js@0.4.4", "", {}, "sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg=="], + "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], "js-yaml": ["js-yaml@4.1.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="], @@ -471,6 +555,8 @@ "json5": ["json5@2.2.3", "", { "bin": { "json5": "lib/cli.js" } }, "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="], + "jsqr": ["jsqr@1.4.0", "", {}, "sha512-dxLob7q65Xg2DvstYkRpkYtmKm2sPJ9oFhrhmudT1dZvNFFTlroai3AWSpLey/w5vMcLBXRgOJsbXpdN9HzU/A=="], + "keyv": ["keyv@4.5.4", "", { "dependencies": { "json-buffer": "3.0.1" } }, "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw=="], "levn": ["levn@0.4.1", "", { "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="], @@ -509,6 +595,8 @@ "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], + "mime": ["mime@3.0.0", "", { "bin": { "mime": "cli.js" } }, "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A=="], + "minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], @@ -519,6 +607,8 @@ "node-releases": ["node-releases@2.0.19", "", {}, "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw=="], + "omggif": ["omggif@1.0.10", "", {}, "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw=="], + "optionator": ["optionator@0.9.4", "", { "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.5" } }, "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g=="], "p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="], @@ -527,8 +617,16 @@ "p-try": ["p-try@2.2.0", "", {}, "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="], + "pako": ["pako@1.0.11", "", {}, "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="], + "parent-module": ["parent-module@1.0.1", "", { "dependencies": { "callsites": "^3.0.0" } }, "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="], + "parse-bmfont-ascii": ["parse-bmfont-ascii@1.0.6", "", {}, "sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA=="], + + "parse-bmfont-binary": ["parse-bmfont-binary@1.0.6", "", {}, "sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA=="], + + "parse-bmfont-xml": ["parse-bmfont-xml@1.1.6", "", { "dependencies": { "xml-parse-from-string": "^1.0.0", "xml2js": "^0.5.0" } }, "sha512-0cEliVMZEhrFDwMh4SxIyVJpqYoOWDJ9P895tFuS+XuNzI5UBmBk5U5O4KuJdTnZpSBI4LFA2+ZiJaiwfSwlMA=="], + "path-exists": ["path-exists@4.0.0", "", {}, "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="], "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], @@ -537,6 +635,8 @@ "picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], + "pixelmatch": ["pixelmatch@5.3.0", "", { "dependencies": { "pngjs": "^6.0.0" }, "bin": { "pixelmatch": "bin/pixelmatch" } }, "sha512-o8mkY4E/+LNUf6LzX96ht6k6CEDi65k9G2rjMtBe9Oo+VPKSvl+0GKHuH/AlG+GA5LPG/i5hrekkxUc3s2HU+Q=="], + "pngjs": ["pngjs@5.0.0", "", {}, "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw=="], "postcss": ["postcss@8.5.6", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg=="], @@ -561,6 +661,8 @@ "rollup": ["rollup@4.45.1", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.45.1", "@rollup/rollup-android-arm64": "4.45.1", "@rollup/rollup-darwin-arm64": "4.45.1", "@rollup/rollup-darwin-x64": "4.45.1", "@rollup/rollup-freebsd-arm64": "4.45.1", "@rollup/rollup-freebsd-x64": "4.45.1", "@rollup/rollup-linux-arm-gnueabihf": "4.45.1", "@rollup/rollup-linux-arm-musleabihf": "4.45.1", "@rollup/rollup-linux-arm64-gnu": "4.45.1", "@rollup/rollup-linux-arm64-musl": "4.45.1", "@rollup/rollup-linux-loongarch64-gnu": "4.45.1", "@rollup/rollup-linux-powerpc64le-gnu": "4.45.1", "@rollup/rollup-linux-riscv64-gnu": "4.45.1", "@rollup/rollup-linux-riscv64-musl": "4.45.1", "@rollup/rollup-linux-s390x-gnu": "4.45.1", "@rollup/rollup-linux-x64-gnu": "4.45.1", "@rollup/rollup-linux-x64-musl": "4.45.1", "@rollup/rollup-win32-arm64-msvc": "4.45.1", "@rollup/rollup-win32-ia32-msvc": "4.45.1", "@rollup/rollup-win32-x64-msvc": "4.45.1", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-4iya7Jb76fVpQyLoiVpzUrsjQ12r3dM7fIVz+4NwoYvZOShknRmiv+iu9CClZml5ZLGb0XMcYLutK6w9tgxHDw=="], + "sax": ["sax@1.6.0", "", {}, "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA=="], + "scheduler": ["scheduler@0.27.0", "", {}, "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="], "semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], @@ -575,6 +677,8 @@ "shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="], + "simple-xml-to-json": ["simple-xml-to-json@1.2.7", "", {}, "sha512-mz9VXphOxQWX3eQ/uXCtm6upltoN0DLx8Zb5T4TFC4FHB7S9FDPGre8CfLWqPWQQH/GrQYd2AXhhVM5LDpYx6Q=="], + "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], "string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], @@ -583,6 +687,8 @@ "strip-json-comments": ["strip-json-comments@3.1.1", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="], + "strtok3": ["strtok3@10.3.5", "", { "dependencies": { "@tokenizer/token": "^0.3.0" } }, "sha512-ki4hZQfh5rX0QDLLkOCj+h+CVNkqmp/CMf8v8kZpkNVK6jGQooMytqzLZYUVYIZcFZ6yDB70EfD8POcFXiF5oA=="], + "supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], "tailwind-merge": ["tailwind-merge@2.6.1", "", {}, "sha512-Oo6tHdpZsGpkKG88HJ8RR1rg/RdnEkQEfMoEk2x1XRI3F1AxeU+ijRXpiVUF4UbLfcxxRGw6TbUINKYdWVsQTQ=="], @@ -591,8 +697,12 @@ "tapable": ["tapable@2.3.3", "", {}, "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A=="], + "tinycolor2": ["tinycolor2@1.6.0", "", {}, "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw=="], + "tinyglobby": ["tinyglobby@0.2.14", "", { "dependencies": { "fdir": "^6.4.4", "picomatch": "^4.0.2" } }, "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ=="], + "token-types": ["token-types@6.1.2", "", { "dependencies": { "@borewit/text-codec": "^0.2.1", "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" } }, "sha512-dRXchy+C0IgK8WPC6xvCHFRIWYUbqqdEIKPaKo/AcTUNzwLTK6AH7RjdLWsEZcAN/TBdtfUw3PYEgPr5VPr6ww=="], + "ts-api-utils": ["ts-api-utils@2.1.0", "", { "peerDependencies": { "typescript": ">=4.8.4" } }, "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ=="], "turbo": ["turbo@2.6.3", "", { "optionalDependencies": { "turbo-darwin-64": "2.6.3", "turbo-darwin-arm64": "2.6.3", "turbo-linux-64": "2.6.3", "turbo-linux-arm64": "2.6.3", "turbo-windows-64": "2.6.3", "turbo-windows-arm64": "2.6.3" }, "bin": { "turbo": "bin/turbo" } }, "sha512-bf6YKUv11l5Xfcmg76PyWoy/e2vbkkxFNBGJSnfdSXQC33ZiUfutYh6IXidc5MhsnrFkWfdNNLyaRk+kHMLlwA=="], @@ -617,12 +727,16 @@ "typescript-eslint": ["typescript-eslint@8.49.0", "", { "dependencies": { "@typescript-eslint/eslint-plugin": "8.49.0", "@typescript-eslint/parser": "8.49.0", "@typescript-eslint/typescript-estree": "8.49.0", "@typescript-eslint/utils": "8.49.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-zRSVH1WXD0uXczCXw+nsdjGPUdx4dfrs5VQoHnUWmv1U3oNlAKv4FUNdLDhVUg+gYn+a5hUESqch//Rv5wVhrg=="], + "uint8array-extras": ["uint8array-extras@1.5.0", "", {}, "sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A=="], + "undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="], "update-browserslist-db": ["update-browserslist-db@1.1.3", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw=="], "uri-js": ["uri-js@4.4.1", "", { "dependencies": { "punycode": "^2.1.0" } }, "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="], + "utif2": ["utif2@4.1.0", "", { "dependencies": { "pako": "^1.0.11" } }, "sha512-+oknB9FHrJ7oW7A2WZYajOcv4FcDR4CfoGB0dPNfxbi4GO05RRnFmt5oa23+9w32EanrYcSJWspUiJkLMs+37w=="], + "vite": ["vite@6.4.1", "", { "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", "picomatch": "^4.0.2", "postcss": "^8.5.3", "rollup": "^4.34.9", "tinyglobby": "^0.2.13" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g=="], "which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], @@ -633,6 +747,12 @@ "wrap-ansi": ["wrap-ansi@6.2.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA=="], + "xml-parse-from-string": ["xml-parse-from-string@1.0.1", "", {}, "sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g=="], + + "xml2js": ["xml2js@0.5.0", "", { "dependencies": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" } }, "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA=="], + + "xmlbuilder": ["xmlbuilder@11.0.1", "", {}, "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA=="], + "y18n": ["y18n@4.0.3", "", {}, "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="], "yallist": ["yallist@3.1.1", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="], @@ -643,12 +763,16 @@ "yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="], + "zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], + "@eslint-community/eslint-utils/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="], "@eslint/eslintrc/globals": ["globals@14.0.0", "", {}, "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ=="], "@humanfs/node/@humanwhocodes/retry": ["@humanwhocodes/retry@0.3.1", "", {}, "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA=="], + "@jimp/js-png/pngjs": ["pngjs@7.0.0", "", {}, "sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow=="], + "@jridgewell/gen-mapping/@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.4", "", {}, "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw=="], "@jridgewell/trace-mapping/@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.4", "", {}, "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw=="], @@ -665,6 +789,8 @@ "@tailwindcss/oxide-wasm32-wasi/tslib": ["tslib@2.8.1", "", { "bundled": true }, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + "@tokenizer/inflate/debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + "@types/bun/bun-types": ["bun-types@1.3.14", "", { "dependencies": { "@types/node": "*" } }, "sha512-4N0ig0fEomHt5R0KCFWjovxow98rIoRwKolrYdCcknNwMekCXRnWEUvgu5soYV8QXtVsrUD8B95MBOZGPvr6KQ=="], "@typescript-eslint/eslint-plugin/ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="], @@ -679,6 +805,10 @@ "client/typescript": ["typescript@5.7.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw=="], + "image-q/@types/node": ["@types/node@16.9.1", "", {}, "sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g=="], + + "pixelmatch/pngjs": ["pngjs@6.0.0", "", {}, "sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg=="], + "yargs/find-up": ["find-up@4.1.0", "", { "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" } }, "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw=="], "@typescript-eslint/typescript-estree/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], diff --git a/client/src/App.tsx b/client/src/App.tsx index 128007c..40480ab 100644 --- a/client/src/App.tsx +++ b/client/src/App.tsx @@ -60,12 +60,12 @@ function App() {

© 2025 Copyright By{' '} - AmmarBN + mdestafadilah

diff --git a/client/src/components/qris-generator.tsx b/client/src/components/qris-generator.tsx index aef97aa..2eea405 100644 --- a/client/src/components/qris-generator.tsx +++ b/client/src/components/qris-generator.tsx @@ -5,10 +5,7 @@ import { Label } from '@/components/ui/label' import { Card } from '@/components/ui/card' import { QRCodeDisplay } from '@/components/qr-code-display' import { Upload, Loader2, Sparkles } from 'lucide-react' -import { generateDynamicQrisRequest } from '@/lib/api' - -const DEMO_QRIS = - '00020101021126670016COM.NOBUBANK.WWW01189360050300000879140214610189749241770303UMI51440014ID.CO.QRIS.WWW0215ID20243299634560303UMI5204541153033605802ID5925HOSHIYUKI STORE OK18972926008SEMARANG61055011162070703A016304F6C8' +import { decodeQrisImageRequest, generateDynamicQrisRequest } from '@/lib/api' export function QRISGenerator() { const [staticQRIS, setStaticQRIS] = useState('') @@ -18,16 +15,21 @@ export function QRISGenerator() { const [error, setError] = useState(null) const fileInputRef = useRef(null) - const handleFileUpload = (e: ChangeEvent) => { + const handleFileUpload = async (e: ChangeEvent) => { const file = e.target.files?.[0] if (!file) return + setError(null) setIsProcessing(true) - // Image-to-QRIS decoding is not implemented yet; fall back to the demo - // payload so the user can still try the generator. See README for details. - setTimeout(() => { - setStaticQRIS(DEMO_QRIS) + try { + const qris = await decodeQrisImageRequest(file) + setStaticQRIS(qris) + } catch (err) { + setError(err instanceof Error ? err.message : 'Failed to read QRIS image') + } finally { setIsProcessing(false) - }, 600) + // Allow re-uploading the same file (onChange won't fire otherwise). + e.target.value = '' + } } const handleGenerate = async () => { diff --git a/client/src/lib/api.ts b/client/src/lib/api.ts index 552bdaf..314de53 100644 --- a/client/src/lib/api.ts +++ b/client/src/lib/api.ts @@ -1,4 +1,4 @@ -import type { ApiResponse, QrisDynamicResponse } from 'shared' +import type { ApiResponse, QrisDynamicResponse, QrisDecodeResponse } from 'shared' // In dev, Vite proxies /api -> http://localhost:3000 (see vite.config.ts). // In production, the Hono server serves the static client and the API from @@ -17,3 +17,17 @@ export async function generateDynamicQrisRequest(qris: string, amount: number): } return json.data.qris } + +export async function decodeQrisImageRequest(file: File): Promise { + const form = new FormData() + form.append('image', file) + const res = await fetch(`${API_BASE}/api/qris/decode`, { + method: 'POST', + body: form, + }) + const json = (await res.json()) as ApiResponse + if (!res.ok || !json.success || !json.data) { + throw new Error(json.error ?? `Request failed with status ${res.status}`) + } + return json.data.qris +} diff --git a/server/package.json b/server/package.json index 70d625b..8f67ecc 100644 --- a/server/package.json +++ b/server/package.json @@ -16,6 +16,8 @@ }, "dependencies": { "hono": "^4.10.8", + "jimp": "^1.6.1", + "jsqr": "^1.4.0", "shared": "workspace:*" }, "devDependencies": { diff --git a/server/src/index.ts b/server/src/index.ts index 3fd6cb3..ed20b4b 100644 --- a/server/src/index.ts +++ b/server/src/index.ts @@ -7,7 +7,9 @@ import { type ApiResponse, type QrisDynamicRequest, type QrisDynamicResponse, + type QrisDecodeResponse, } from 'shared' +import { decodeQrisFromImage } from './qris-image' const app = new Hono() @@ -52,6 +54,33 @@ app.post('/api/qris/dynamic', async (c) => { } }) +app.post('/api/qris/decode', async (c) => { + let form: Awaited> + try { + form = await c.req.parseBody() + } catch { + const res: ApiResponse = { success: false, error: 'Expected a multipart form upload' } + return c.json(res, 400) + } + + const file = form['image'] + if (!(file instanceof File)) { + const res: ApiResponse = { success: false, error: 'image field (a file) is required' } + return c.json(res, 400) + } + + try { + const qris = await decodeQrisFromImage(await file.arrayBuffer()) + const data: QrisDecodeResponse = { qris } + const res: ApiResponse = { success: true, data } + return c.json(res) + } catch (err) { + const message = err instanceof QrisError ? err.message : 'Failed to decode QRIS image' + const res: ApiResponse = { success: false, error: message } + return c.json(res, 422) + } +}) + // Serve the built Vite client in production. The Docker image copies // client/dist into ./public next to the server bundle. const CLIENT_DIR = process.env.CLIENT_DIST_DIR ?? './public' diff --git a/server/src/qris-image.ts b/server/src/qris-image.ts new file mode 100644 index 0000000..996fa5e --- /dev/null +++ b/server/src/qris-image.ts @@ -0,0 +1,37 @@ +// Decode a QRIS payload string out of an uploaded image (PNG/JPG/etc). +// jimp decodes the image bytes into raw RGBA pixels; jsQR reads the QR matrix. + +import { Jimp } from 'jimp' +import jsQR from 'jsqr' +import { QrisError } from 'shared' + +const MAX_IMAGE_BYTES = 10 * 1024 * 1024 // 10MB, matches the UI hint. + +export async function decodeQrisFromImage(bytes: ArrayBuffer | Uint8Array): Promise { + const buffer = bytes instanceof Uint8Array ? bytes : new Uint8Array(bytes) + if (buffer.byteLength === 0) { + throw new QrisError('Uploaded image is empty') + } + if (buffer.byteLength > MAX_IMAGE_BYTES) { + throw new QrisError('Image is too large (max 10MB)') + } + + let image + try { + image = await Jimp.read(Buffer.from(buffer)) + } catch { + throw new QrisError('Could not read image — make sure it is a valid PNG/JPG') + } + + const { data, width, height } = image.bitmap + const decoded = jsQR(new Uint8ClampedArray(data.buffer, data.byteOffset, data.byteLength), width, height) + if (!decoded || !decoded.data) { + throw new QrisError('No QR code found in the image') + } + + const qris = decoded.data.trim() + if (qris.length < 8) { + throw new QrisError('Decoded QR does not look like a QRIS payload') + } + return qris +} diff --git a/shared/src/types/index.ts b/shared/src/types/index.ts index 40b1330..0b5dc0d 100644 --- a/shared/src/types/index.ts +++ b/shared/src/types/index.ts @@ -14,3 +14,7 @@ export type QrisDynamicResponse = { qris: string amount: number } + +export type QrisDecodeResponse = { + qris: string +} From 6dc063b1d7dd71256eb314c483292d8f5fd059dc Mon Sep 17 00:00:00 2001 From: mdestafadilah Date: Thu, 4 Jun 2026 10:36:05 +0700 Subject: [PATCH 5/7] Implement HTTP Basic authentication for QRIS API endpoints, update .env.example and README with new environment variables, and enhance Docker Compose configuration for better clarity. --- .env.example | 8 ++++++-- README.md | 20 ++++++++++++++++++++ docker-compose.yml | 22 +++++++++++++++++++--- server/src/index.ts | 14 ++++++++++++++ 4 files changed, 59 insertions(+), 5 deletions(-) diff --git a/.env.example b/.env.example index a3f3f71..2dbe918 100644 --- a/.env.example +++ b/.env.example @@ -1,7 +1,11 @@ # Host port mapped to the container (container always listens on 3000). PORT=3000 -USERNAME= -PASSWORD= + +# HTTP Basic auth for the /api/qris/* endpoints. Leave BOTH empty to keep the +# API open; set BOTH to require credentials. (Named API_* on purpose — plain +# USERNAME/PASSWORD collide with built-in shell/Windows env vars.) +API_USERNAME= +API_PASSWORD= # Optional: override the API base URL used by the client at build time. # Leave empty in production (the Hono server serves both the client and the API). # VITE_SERVER_URL=http://localhost:3000 diff --git a/README.md b/README.md index 058d8d4..8d1508c 100644 --- a/README.md +++ b/README.md @@ -62,6 +62,24 @@ bun run start # menjalankan server prod, melayani API dan client/dist ## 🔌 API +### 🔐 Autentikasi + +Endpoint `/api/qris/*` bisa dilindungi **HTTP Basic auth**. Bersifat opt-in: set +`API_USERNAME` **dan** `API_PASSWORD` untuk mengaktifkan; kosongkan keduanya agar +API tetap terbuka (praktis untuk dev lokal). `/healthz` dan static client selalu terbuka. + +```bash +# Tanpa kredensial → 401 +curl -i -X POST http://localhost:3000/api/qris/dynamic -d '{}' + +# Dengan kredensial +curl -u admin:secret123 -X POST http://localhost:3000/api/qris/dynamic \ + -H 'content-type: application/json' -d '{"qris":"...","amount":50000}' +``` + +> Catatan: UI web bawaan tidak mengirim kredensial — jika auth diaktifkan, UI akan +> menerima 401. Auth ini ditujukan untuk konsumen API programatik/eksternal. + ### `POST /api/qris/dynamic` Mengkonversi QRIS statis menjadi dinamis. @@ -170,6 +188,8 @@ Image dibangun dengan base `oven/bun:1.2-alpine` di Linux/amd64. Jika VPS Anda A |---------------------|--------------------------|---------------------------------------------------------------------------| | `PORT` | `3000` | Port HTTP yang didengarkan oleh server Hono. | | `CLIENT_DIST_DIR` | `./public` (di image) | Lokasi static client (`client/dist`) yang di-mount oleh server. | +| `API_USERNAME` | _(kosong)_ | Username Basic auth untuk `/api/qris/*`. Set bersama `API_PASSWORD` untuk mengaktifkan. | +| `API_PASSWORD` | _(kosong)_ | Password Basic auth. Jika salah satu kosong, API tetap terbuka. | | `VITE_SERVER_URL` | _(kosong)_ | Build-time only. Set jika client dideploy terpisah dari server. | ## 📁 Folder legacy diff --git a/docker-compose.yml b/docker-compose.yml index d228f80..3613bc0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,14 +8,30 @@ services: container_name: qris-dynamic restart: unless-stopped ports: - - "${PORT:-3000}:3000" + # Format: "PORT_LUAR:PORT_DALAM_CONTAINER" + # Karena .env PORT=8089, maka aplikasi diakses dari luar lewat port 8089 + - ${PORT}:3000 environment: NODE_ENV: production - PORT: 3000 + PORT: 3000 # Aplikasi di dalam container tetap berjalan di port 3000 CLIENT_DIST_DIR: /app/public + # Basic auth for /api/qris/* — read from the host .env (empty = open API). + API_USERNAME: ${API_USERNAME:-} + API_PASSWORD: ${API_PASSWORD:-} healthcheck: - test: ["CMD", "wget", "-q", "-O", "-", "http://127.0.0.1:3000/healthz"] + test: + - CMD + - wget + - -q + - -O + - "-" + - http://127.0.0.1:3000/healthz # Di dalam container tetap cek ke port 3000 interval: 30s timeout: 5s retries: 3 start_period: 10s + networks: + - qris-network +networks: + qris-network: + driver: bridge diff --git a/server/src/index.ts b/server/src/index.ts index ed20b4b..6f735fa 100644 --- a/server/src/index.ts +++ b/server/src/index.ts @@ -1,5 +1,6 @@ import { Hono } from 'hono' import { cors } from 'hono/cors' +import { basicAuth } from 'hono/basic-auth' import { serveStatic } from 'hono/bun' import { generateDynamicQris, @@ -15,6 +16,19 @@ const app = new Hono() app.use('*', cors()) +// Protect the QRIS API endpoints with HTTP Basic auth when credentials are +// configured. /healthz and the static client stay public. Auth is opt-in: +// if API_USERNAME/API_PASSWORD are unset the endpoints remain open (handy for +// local dev) — set both in production (via docker-compose / .env) to enable it. +const AUTH_USER = process.env.API_USERNAME +const AUTH_PASS = process.env.API_PASSWORD +if (AUTH_USER && AUTH_PASS) { + app.use('/api/qris/*', basicAuth({ username: AUTH_USER, password: AUTH_PASS })) + console.log('[auth] Basic auth enabled for /api/qris/*') +} else { + console.warn('[auth] API_USERNAME/API_PASSWORD not set — /api/qris/* is UNPROTECTED') +} + app.get('/healthz', (c) => c.json({ ok: true })) app.get('/api', (c) => { From 5522e684626235439cea13763e38644350018b92 Mon Sep 17 00:00:00 2001 From: mdestafadilah Date: Fri, 5 Jun 2026 10:31:22 +0700 Subject: [PATCH 6/7] Update yuki-host-logo.png with new design assets --- client/public/yuki-host-logo.png | Bin 136285 -> 321439 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/client/public/yuki-host-logo.png b/client/public/yuki-host-logo.png index 7be606ec7961d6ee44ebd0ba6aea89ac39767595..630826d320335411dee1a1496596b994c81b3790 100644 GIT binary patch literal 321439 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

i1 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

c}Jfz$Ma-g5< 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 z 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

{BRZydL@+V%}}Q5%Ekq7WWD=fMI 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%0DYaTUmd_4nl@j=5@L2=|kr9*+# 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

8J;{cOxV(Eq8gv~P;TfplFWr`x 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 From c475ff9b91350ae2c08270c47f3543a14957ad1b Mon Sep 17 00:00:00 2001 From: mdestafadilah Date: Tue, 9 Jun 2026 16:51:18 +0700 Subject: [PATCH 7/7] Enhance Basic authentication for QRIS API endpoints by exempting same-origin web client requests. Update .env.example with additional notes on authentication behavior. --- .env.example | 3 +++ server/src/index.ts | 19 +++++++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/.env.example b/.env.example index 2dbe918..6f8d918 100644 --- a/.env.example +++ b/.env.example @@ -4,6 +4,9 @@ PORT=3000 # HTTP Basic auth for the /api/qris/* endpoints. Leave BOTH empty to keep the # API open; set BOTH to require credentials. (Named API_* on purpose — plain # USERNAME/PASSWORD collide with built-in shell/Windows env vars.) +# Note: the web client (served from the same origin) is exempt and works +# without any login prompt; only direct API access (curl/Postman/other origins) +# is challenged for these credentials. API_USERNAME= API_PASSWORD= # Optional: override the API base URL used by the client at build time. diff --git a/server/src/index.ts b/server/src/index.ts index 6f735fa..6890b88 100644 --- a/server/src/index.ts +++ b/server/src/index.ts @@ -20,11 +20,26 @@ app.use('*', cors()) // configured. /healthz and the static client stay public. Auth is opt-in: // if API_USERNAME/API_PASSWORD are unset the endpoints remain open (handy for // local dev) — set both in production (via docker-compose / .env) to enable it. +// +// The catch: our own web client (served from this same origin) calls the API +// with fetch(), and a Basic-auth 401 challenge makes the browser pop up the +// native "Sign in to access this site" dialog. To avoid that, requests coming +// from the served page are exempted via the browser-set `Sec-Fetch-Site: +// same-origin` header. That header is browser-controlled — page JavaScript +// cannot set or spoof it, and command-line tools (curl/Postman) don't send it +// — so direct API access still gets challenged for username/password while the +// web UI works without any prompt. const AUTH_USER = process.env.API_USERNAME const AUTH_PASS = process.env.API_PASSWORD if (AUTH_USER && AUTH_PASS) { - app.use('/api/qris/*', basicAuth({ username: AUTH_USER, password: AUTH_PASS })) - console.log('[auth] Basic auth enabled for /api/qris/*') + const challenge = basicAuth({ username: AUTH_USER, password: AUTH_PASS }) + app.use('/api/qris/*', async (c, next) => { + if (c.req.header('Sec-Fetch-Site') === 'same-origin') { + return next() + } + return challenge(c, next) + }) + console.log('[auth] Basic auth enabled for /api/qris/* (same-origin web client exempt)') } else { console.warn('[auth] API_USERNAME/API_PASSWORD not set — /api/qris/* is UNPROTECTED') }