├── .github ├── FUNDING.yml └── workflows │ └── ci.yml ├── .gitignore ├── .vscode └── extensions.json ├── CODE_OF_CONDUCT.md ├── LICENSE ├── README.md ├── biome.json ├── docs └── UPGRADE_V1_TO_V2.md ├── examples ├── CardElement.vue ├── CardElementLegacy.vue ├── DemoApp.vue ├── ExpressCheckoutElement.vue ├── PaymentElementDeferred.vue ├── README.md └── demo │ ├── demo.ts │ ├── demo_screenshort.png │ └── index.css ├── index.html ├── package.json ├── pnpm-lock.yaml ├── src ├── components │ ├── StripeElement.vue │ └── StripeElements.vue ├── main.ts ├── stripe-elements.ts └── vite-env.d.ts ├── tests └── unit │ └── stripe-elements.spec.js ├── tsconfig.app.json ├── tsconfig.json ├── tsconfig.node.json ├── vite.config.ts ├── vite.demo.config.ts └── vue-stripe-js.code-workspace /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | custom: ["https://paypal.me/softbeehive"] 3 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: Vue Stripe.js CI 2 | 3 | on: 4 | pull_request: 5 | push: 6 | branches: 7 | - main 8 | 9 | concurrency: 10 | group: ${{ github.workflow }}-${{ github.ref }} 11 | cancel-in-progress: true 12 | 13 | jobs: 14 | ci: 15 | runs-on: ubuntu-latest 16 | 17 | steps: 18 | - uses: actions/checkout@v4 19 | 20 | - name: Install pnpm 21 | uses: pnpm/action-setup@v4 22 | with: 23 | version: 9 24 | 25 | - name: Use Node.js 26 | uses: actions/setup-node@v4 27 | with: 28 | node-version: 20 29 | cache: 'pnpm' 30 | 31 | - name: Install dependencies 32 | run: pnpm install 33 | 34 | - name: Run CI 35 | run: pnpm run ci 36 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-demo 13 | dist-ssr 14 | *.local 15 | 16 | # Editor directories and files 17 | .vscode/* 18 | !.vscode/extensions.json 19 | .idea 20 | .DS_Store 21 | *.suo 22 | *.ntvs* 23 | *.njsproj 24 | *.sln 25 | *.sw? 26 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["Vue.volar"] 3 | } 4 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | We as members, contributors, and leaders pledge to make participation in our 6 | community a harassment-free experience for everyone, regardless of age, body 7 | size, visible or invisible disability, ethnicity, sex characteristics, gender 8 | identity and expression, level of experience, education, socio-economic status, 9 | nationality, personal appearance, race, religion, or sexual identity 10 | and orientation. 11 | 12 | We pledge to act and interact in ways that contribute to an open, welcoming, 13 | diverse, inclusive, and healthy community. 14 | 15 | ## Our Standards 16 | 17 | Examples of behavior that contributes to a positive environment for our 18 | community include: 19 | 20 | * Demonstrating empathy and kindness toward other people 21 | * Being respectful of differing opinions, viewpoints, and experiences 22 | * Giving and gracefully accepting constructive feedback 23 | * Accepting responsibility and apologizing to those affected by our mistakes, 24 | and learning from the experience 25 | * Focusing on what is best not just for us as individuals, but for the 26 | overall community 27 | 28 | Examples of unacceptable behavior include: 29 | 30 | * The use of sexualized language or imagery, and sexual attention or 31 | advances of any kind 32 | * Trolling, insulting or derogatory comments, and personal or political attacks 33 | * Public or private harassment 34 | * Publishing others' private information, such as a physical or email 35 | address, without their explicit permission 36 | * Other conduct which could reasonably be considered inappropriate in a 37 | professional setting 38 | 39 | ## Enforcement Responsibilities 40 | 41 | Community leaders are responsible for clarifying and enforcing our standards of 42 | acceptable behavior and will take appropriate and fair corrective action in 43 | response to any behavior that they deem inappropriate, threatening, offensive, 44 | or harmful. 45 | 46 | Community leaders have the right and responsibility to remove, edit, or reject 47 | comments, commits, code, wiki edits, issues, and other contributions that are 48 | not aligned to this Code of Conduct, and will communicate reasons for moderation 49 | decisions when appropriate. 50 | 51 | ## Scope 52 | 53 | This Code of Conduct applies within all community spaces, and also applies when 54 | an individual is officially representing the community in public spaces. 55 | Examples of representing our community include using an official e-mail address, 56 | posting via an official social media account, or acting as an appointed 57 | representative at an online or offline event. 58 | 59 | ## Enforcement 60 | 61 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 62 | reported to the community leaders responsible for enforcement at 63 | @softbeehive. 64 | All complaints will be reviewed and investigated promptly and fairly. 65 | 66 | All community leaders are obligated to respect the privacy and security of the 67 | reporter of any incident. 68 | 69 | ## Enforcement Guidelines 70 | 71 | Community leaders will follow these Community Impact Guidelines in determining 72 | the consequences for any action they deem in violation of this Code of Conduct: 73 | 74 | ### 1. Correction 75 | 76 | **Community Impact**: Use of inappropriate language or other behavior deemed 77 | unprofessional or unwelcome in the community. 78 | 79 | **Consequence**: A private, written warning from community leaders, providing 80 | clarity around the nature of the violation and an explanation of why the 81 | behavior was inappropriate. A public apology may be requested. 82 | 83 | ### 2. Warning 84 | 85 | **Community Impact**: A violation through a single incident or series 86 | of actions. 87 | 88 | **Consequence**: A warning with consequences for continued behavior. No 89 | interaction with the people involved, including unsolicited interaction with 90 | those enforcing the Code of Conduct, for a specified period of time. This 91 | includes avoiding interactions in community spaces as well as external channels 92 | like social media. Violating these terms may lead to a temporary or 93 | permanent ban. 94 | 95 | ### 3. Temporary Ban 96 | 97 | **Community Impact**: A serious violation of community standards, including 98 | sustained inappropriate behavior. 99 | 100 | **Consequence**: A temporary ban from any sort of interaction or public 101 | communication with the community for a specified period of time. No public or 102 | private interaction with the people involved, including unsolicited interaction 103 | with those enforcing the Code of Conduct, is allowed during this period. 104 | Violating these terms may lead to a permanent ban. 105 | 106 | ### 4. Permanent Ban 107 | 108 | **Community Impact**: Demonstrating a pattern of violation of community 109 | standards, including sustained inappropriate behavior, harassment of an 110 | individual, or aggression toward or disparagement of classes of individuals. 111 | 112 | **Consequence**: A permanent ban from any sort of public interaction within 113 | the community. 114 | 115 | ## Attribution 116 | 117 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], 118 | version 2.0, available at 119 | https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. 120 | 121 | Community Impact Guidelines were inspired by [Mozilla's code of conduct 122 | enforcement ladder](https://github.com/mozilla/diversity). 123 | 124 | [homepage]: https://www.contributor-covenant.org 125 | 126 | For answers to common questions about this code of conduct, see the FAQ at 127 | https://www.contributor-covenant.org/faq. Translations are available at 128 | https://www.contributor-covenant.org/translations. 129 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 - present, Oleksandr Bystrikov 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Vue Stripe.js 2 | 3 | [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/ectoflow/vue-stripe-js/ci.yml?branch=main)](https://github.com/ectoflow/vue-stripe-js/actions) 4 | [![npm](https://img.shields.io/npm/v/vue-stripe-js)](https://www.npmjs.com/package/vue-stripe-js) 5 | [![Bundle Size](https://img.shields.io/bundlephobia/min/vue-stripe-js)](https://bundlephobia.com/result?p=vue-stripe-js) 6 | [![npm](https://img.shields.io/npm/dm/vue-stripe-js)](https://www.npmjs.com/package/vue-stripe-js) 7 | [![Stand With Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/badges/StandWithUkraine.svg)](https://vshymanskyy.github.io/StandWithUkraine) 8 | 9 | Vue 3 components for Stripe. Build advanced payment integrations quickly. Easy 10 | to start, friendly DX, minimal abstractions, and full control. It's a glue 11 | between Stripe.js and Vue component lifecycle. Works with Nuxt 3. 12 | 13 | 🟢 **[Live demo](https://vue-stripe-js.netlify.app/)** 14 | 15 | ## Health 💜 16 | 17 | Consider supporting efforts to make this project healthy and sustainable. Thank 18 | you! 19 | 20 | - **[Donate via PayPal](https://paypal.me/softbeehive)** 21 | 22 | ## Quickstart ⚡️ 23 | 24 | ### Upgrade 25 | 26 | - **[Upgrade guide](docs/UPGRADE_V1_TO_V2.md)** 27 | - **[Docs v1](https://github.com/ectoflow/vue-stripe-js/tree/v1.0.4)** 28 | 29 | ### 1. Install 30 | 31 | ```bash 32 | npm i vue-stripe-js @stripe/stripe-js 33 | ``` 34 | 35 | ### 2. Load Stripe.js 36 | 37 | ```vue 38 | 49 | ``` 50 | 51 | Alternatively, include a script tag. Make sure Stripe.js is loaded before you 52 | mount Vue components. 53 | 54 | ```html 55 | 56 | ``` 57 | 58 | ### 3. Payment Element 59 | 60 | Based on – 61 | [deferred payment guide](https://docs.stripe.com/payments/accept-a-payment-deferred?type=payment) 62 | 63 | ```vue 64 | 88 | 89 | 159 | ``` 160 | 161 | ## Examples 🌿 162 | 163 | Thanks to the Provider Pattern used in StripeElements, you get minimalist tools 164 | with full access to Stripe.js methods and properties. This results in better 165 | developer experience (DX), simpler code, and fewer bugs. 166 | 167 | These examples use Vue Composition API and TypeScript. 168 | 169 | - [All](examples/) 170 | - [Payment](examples/PaymentElementDeferred.vue) 171 | - [Card](examples/CardElement.vue) 172 | - [Express Checkout](examples/ExpressCheckoutElement.vue) 173 | 174 | ### Screenshot 175 | 176 | ![Vue Stripe.js demo screenshot](examples/demo/demo_screenshort.png) 177 | 178 | ## Advanced integration 🏗️ 179 | 180 | All features of Stripe.js are available in two components. The benefits of Vue 181 | solution: element is created and destroyed automatically, options are reactive, 182 | event listeners are attached to StripeElement. Simple and future-proof. 183 | 184 | 🥇 **Most important property is type** 🥇 185 | 186 | ```html 187 | 188 | 189 | 190 | ``` 191 | 192 | Available types 193 | 194 | ```ts 195 | type StripeElementType = 196 | | "address" 197 | | "affirmMessage" 198 | | "afterpayClearpayMessage" 199 | | "auBankAccount" 200 | | "card" 201 | | "cardNumber" 202 | | "cardExpiry" 203 | | "cardCvc" 204 | | "currencySelector" 205 | | "epsBank" 206 | | "expressCheckout" 207 | | "fpxBank" 208 | | "iban" 209 | | "idealBank" 210 | | "p24Bank" 211 | | "payment" 212 | | "paymentMethodMessaging" 213 | | "paymentRequestButton" 214 | | "linkAuthentication" 215 | | "shippingAddress" 216 | | "issuingCardNumberDisplay" 217 | | "issuingCardCvcDisplay" 218 | | "issuingCardExpiryDisplay" 219 | | "issuingCardPinDisplay" 220 | | "issuingCardCopyButton"; 221 | 222 | // Check actual element types in @stripe/stripe-js 223 | ``` 224 | 225 | ## Events 226 | 227 | ```html 228 | 229 | ``` 230 | 231 | Following events are emitted on StripeElement 232 | 233 | - change 234 | - ready 235 | - focus 236 | - blur 237 | - click 238 | - escape 239 | - loaderror 240 | - loaderstart 241 | 242 | ## Styling 243 | 244 | Add classes to components 245 | 246 | ```html 247 | 248 | 249 | 250 | ``` 251 | 252 | Style element via options - 253 | [read documentation](https://stripe.com/docs/js/appendix/style) 254 | 255 | ```ts 256 | const cardOptions = ref({ 257 | style: { 258 | base: { 259 | iconColor: "green", 260 | }, 261 | invalid: { 262 | iconColor: "red", 263 | }, 264 | }, 265 | }); 266 | ``` 267 | -------------------------------------------------------------------------------- /biome.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", 3 | "vcs": { 4 | "enabled": true, 5 | "clientKind": "git", 6 | "useIgnoreFile": true 7 | }, 8 | "files": { 9 | "ignoreUnknown": false, 10 | "ignore": ["dist", "dist-demo"] 11 | }, 12 | "formatter": { 13 | "enabled": true, 14 | "indentStyle": "space", 15 | "indentWidth": 2, 16 | "lineWidth": 80 17 | }, 18 | "organizeImports": { 19 | "enabled": true 20 | }, 21 | "linter": { 22 | "enabled": true, 23 | "rules": { 24 | "recommended": true 25 | } 26 | }, 27 | "javascript": { 28 | "formatter": { 29 | "jsxQuoteStyle": "double", 30 | "quoteProperties": "asNeeded", 31 | "semicolons": "asNeeded", 32 | "arrowParentheses": "always", 33 | "bracketSpacing": true, 34 | "bracketSameLine": false, 35 | "quoteStyle": "double", 36 | "attributePosition": "multiline" 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /docs/UPGRADE_V1_TO_V2.md: -------------------------------------------------------------------------------- 1 | # Upgrade guide 2 | 3 | Upgrading your Vue Stripe.js from v1 to v2. 4 | 5 | v2.0.0 is a major update that introduces changes in default choices due to the evolution of Stripe.js. It was designed with stability in mind, ensuring that your upgrade should be smooth and simple. 6 | 7 | ## Breaking changes 8 | 9 | ES modules are the de facto standard. Vite is expected to drop CommonJS support in 2025. Do not upgrade if you are using "require" instead of "import." 10 | 11 | - Added npm type module 12 | - Removed CommonJS export 13 | 14 | ## Features 15 | 16 | - Backward-compatible; old implementations should work seamlessly 17 | - Payment Element is the new default 18 | - Improved TypeScript support 19 | - Added new examples for Payment, Card, and Express Checkout 20 | 21 | ## Upgrade 22 | 23 | ### Install new version 24 | ```bash 25 | npm install vue-stripe-js@latest 26 | ``` 27 | 28 | Test your integration. Major upgrade is finished 🎉 29 | 30 | ## Optional changes 31 | 32 | ### Provide explicit type to StripeElement 33 | 34 | ```diff 35 | 36 | - 37 | + 38 | 39 | ``` 40 | 41 | ### Remove slot props 42 | Not needed thanks to provide/inject behind the hood 43 | 44 | ```diff 45 | 48 | 52 | 53 | ``` 54 | -------------------------------------------------------------------------------- /examples/CardElement.vue: -------------------------------------------------------------------------------- 1 | 23 | 24 | 88 | -------------------------------------------------------------------------------- /examples/CardElementLegacy.vue: -------------------------------------------------------------------------------- 1 | 25 | 26 | 96 | -------------------------------------------------------------------------------- /examples/DemoApp.vue: -------------------------------------------------------------------------------- 1 | 57 | 58 | 64 | -------------------------------------------------------------------------------- /examples/ExpressCheckoutElement.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 73 | -------------------------------------------------------------------------------- /examples/PaymentElementDeferred.vue: -------------------------------------------------------------------------------- 1 | 24 | 25 | 100 | -------------------------------------------------------------------------------- /examples/README.md: -------------------------------------------------------------------------------- 1 | # Vue Stripe.js 2 | 3 | Full power of Stripe.js + beauty of Vue. Build advanced payment integrations 4 | quickly. Use examples for easy start with Payment, Card, and Express Checkout. 5 | 6 | ## Demo 7 | 8 | **1. Clone** 9 | 10 | ```bash 11 | git clone git@github.com:ectoflow/vue-stripe-js.git --depth=1 && cd vue-stripe-js 12 | ``` 13 | 14 | **2. Install** 15 | 16 | ```bash 17 | npm install 18 | ``` 19 | 20 | **3. Run demo** 21 | 22 | ```bash 23 | npm run dev 24 | ``` 25 | 26 | ## Donate 27 | 28 | It's an open-source project and completely free to use. Keeping it up-to-date 29 | with the Stripe.js API is hard work. Consider supporting my efforts to make 30 | vue-stripe-js healthy and sustainable. Thank you! 31 | 32 | **[Donate via PayPal](https://paypal.me/softbeehive)** 33 | -------------------------------------------------------------------------------- /examples/demo/demo.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from "vue" 2 | import DemoApp from "../DemoApp.vue" 3 | 4 | const app = createApp(DemoApp) 5 | app.mount("#app") 6 | -------------------------------------------------------------------------------- /examples/demo/demo_screenshort.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ectoflow/vue-stripe-js/e44dcca5802af6942521d1e9d24b16f4e4cfef47/examples/demo/demo_screenshort.png -------------------------------------------------------------------------------- /examples/demo/index.css: -------------------------------------------------------------------------------- 1 | @import "tailwindcss"; 2 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Vue Stripe.js 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-stripe-js", 3 | "version": "2.0.2", 4 | "description": "Vue 3 components for Stripe.js", 5 | "type": "module", 6 | "main": "./dist/vue-stripe.js", 7 | "exports": { 8 | ".": { 9 | "types": "./dist/vue-stripe.d.ts", 10 | "import": "./dist/vue-stripe.js", 11 | "browser": "./dist/vue-stripe.umd.cjs" 12 | } 13 | }, 14 | "scripts": { 15 | "dev": "vite", 16 | "build": "vue-tsc -b && vite build", 17 | "build:demo": "vite --config vite.demo.config.ts build", 18 | "preview:demo": "vite --config vite.demo.config.ts preview", 19 | "check:types": "publint && attw --pack . --ignore-rules=cjs-resolves-to-esm", 20 | "ci": "biome check && pnpm run build && pnpm run check:types" 21 | }, 22 | "files": ["dist"], 23 | "repository": { 24 | "type": "git", 25 | "url": "git+https://github.com/ectoflow/vue-stripe-js.git" 26 | }, 27 | "keywords": ["Vue", "Stripe", "Elements", "Checkout", "Payments"], 28 | "author": "Oleksandr Bystrikov ", 29 | "license": "MIT", 30 | "homepage": "https://github.com/ectoflow/vue-stripe-js", 31 | "bugs": { 32 | "url": "https://github.com/ectoflow/vue-stripe-js/issues" 33 | }, 34 | "dependencies": { 35 | "@stripe/stripe-js": "^5.6.0" 36 | }, 37 | "devDependencies": { 38 | "@arethetypeswrong/cli": "^0.17.4", 39 | "@biomejs/biome": "1.9.4", 40 | "@tailwindcss/vite": "^4.0.8", 41 | "@vitejs/plugin-vue": "^5.2.1", 42 | "@vue/tsconfig": "0.7.0", 43 | "publint": "^0.3.6", 44 | "tailwindcss": "^4.0.8", 45 | "typescript": "^5.7.3", 46 | "vite": "^6.1.1", 47 | "vite-plugin-dts": "^4.5.0", 48 | "vue": "^3.5.13", 49 | "vue-tsc": "^2.2.4" 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | '@stripe/stripe-js': 12 | specifier: ^5.6.0 13 | version: 5.6.0 14 | devDependencies: 15 | '@arethetypeswrong/cli': 16 | specifier: ^0.17.4 17 | version: 0.17.4 18 | '@biomejs/biome': 19 | specifier: 1.9.4 20 | version: 1.9.4 21 | '@tailwindcss/vite': 22 | specifier: ^4.0.8 23 | version: 4.0.8(vite@6.1.1(jiti@2.4.2)(lightningcss@1.29.1)) 24 | '@vitejs/plugin-vue': 25 | specifier: ^5.2.1 26 | version: 5.2.1(vite@6.1.1(jiti@2.4.2)(lightningcss@1.29.1))(vue@3.5.13(typescript@5.7.3)) 27 | '@vue/tsconfig': 28 | specifier: 0.7.0 29 | version: 0.7.0(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)) 30 | publint: 31 | specifier: ^0.3.6 32 | version: 0.3.6 33 | tailwindcss: 34 | specifier: ^4.0.8 35 | version: 4.0.8 36 | typescript: 37 | specifier: ^5.7.3 38 | version: 5.7.3 39 | vite: 40 | specifier: ^6.1.1 41 | version: 6.1.1(jiti@2.4.2)(lightningcss@1.29.1) 42 | vite-plugin-dts: 43 | specifier: ^4.5.0 44 | version: 4.5.0(rollup@4.34.8)(typescript@5.7.3)(vite@6.1.1(jiti@2.4.2)(lightningcss@1.29.1)) 45 | vue: 46 | specifier: ^3.5.13 47 | version: 3.5.13(typescript@5.7.3) 48 | vue-tsc: 49 | specifier: ^2.2.4 50 | version: 2.2.4(typescript@5.7.3) 51 | 52 | packages: 53 | 54 | '@andrewbranch/untar.js@1.0.3': 55 | resolution: {integrity: sha512-Jh15/qVmrLGhkKJBdXlK1+9tY4lZruYjsgkDFj08ZmDiWVBLJcqkok7Z0/R0In+i1rScBpJlSvrTS2Lm41Pbnw==} 56 | 57 | '@arethetypeswrong/cli@0.17.4': 58 | resolution: {integrity: sha512-AeiKxtf67XD/NdOqXgBOE5TZWH3EOCt+0GkbUpekOzngc+Q/cRZ5azjWyMxISxxfp0EItgm5NoSld9p7BAA5xQ==} 59 | engines: {node: '>=18'} 60 | hasBin: true 61 | 62 | '@arethetypeswrong/core@0.17.4': 63 | resolution: {integrity: sha512-Izvir8iIoU+X4SKtDAa5kpb+9cpifclzsbA8x/AZY0k0gIfXYQ1fa1B6Epfe6vNA2YfDX8VtrZFgvnXB6aPEoQ==} 64 | engines: {node: '>=18'} 65 | 66 | '@babel/helper-string-parser@7.25.9': 67 | resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} 68 | engines: {node: '>=6.9.0'} 69 | 70 | '@babel/helper-validator-identifier@7.25.9': 71 | resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} 72 | engines: {node: '>=6.9.0'} 73 | 74 | '@babel/parser@7.26.9': 75 | resolution: {integrity: sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==} 76 | engines: {node: '>=6.0.0'} 77 | hasBin: true 78 | 79 | '@babel/types@7.26.9': 80 | resolution: {integrity: sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==} 81 | engines: {node: '>=6.9.0'} 82 | 83 | '@biomejs/biome@1.9.4': 84 | resolution: {integrity: sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog==} 85 | engines: {node: '>=14.21.3'} 86 | hasBin: true 87 | 88 | '@biomejs/cli-darwin-arm64@1.9.4': 89 | resolution: {integrity: sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw==} 90 | engines: {node: '>=14.21.3'} 91 | cpu: [arm64] 92 | os: [darwin] 93 | 94 | '@biomejs/cli-darwin-x64@1.9.4': 95 | resolution: {integrity: sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg==} 96 | engines: {node: '>=14.21.3'} 97 | cpu: [x64] 98 | os: [darwin] 99 | 100 | '@biomejs/cli-linux-arm64-musl@1.9.4': 101 | resolution: {integrity: sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA==} 102 | engines: {node: '>=14.21.3'} 103 | cpu: [arm64] 104 | os: [linux] 105 | 106 | '@biomejs/cli-linux-arm64@1.9.4': 107 | resolution: {integrity: sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g==} 108 | engines: {node: '>=14.21.3'} 109 | cpu: [arm64] 110 | os: [linux] 111 | 112 | '@biomejs/cli-linux-x64-musl@1.9.4': 113 | resolution: {integrity: sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg==} 114 | engines: {node: '>=14.21.3'} 115 | cpu: [x64] 116 | os: [linux] 117 | 118 | '@biomejs/cli-linux-x64@1.9.4': 119 | resolution: {integrity: sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg==} 120 | engines: {node: '>=14.21.3'} 121 | cpu: [x64] 122 | os: [linux] 123 | 124 | '@biomejs/cli-win32-arm64@1.9.4': 125 | resolution: {integrity: sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg==} 126 | engines: {node: '>=14.21.3'} 127 | cpu: [arm64] 128 | os: [win32] 129 | 130 | '@biomejs/cli-win32-x64@1.9.4': 131 | resolution: {integrity: sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA==} 132 | engines: {node: '>=14.21.3'} 133 | cpu: [x64] 134 | os: [win32] 135 | 136 | '@braidai/lang@1.0.0': 137 | resolution: {integrity: sha512-Ckpah5j8iAzDfc4YEP4uqnxyUznuAt6hRR093JSEYUgh2trQjCibQ2pfxHxzfz7y9vkUn9/rBxjFpGY+SPudHA==} 138 | 139 | '@colors/colors@1.5.0': 140 | resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} 141 | engines: {node: '>=0.1.90'} 142 | 143 | '@esbuild/aix-ppc64@0.24.2': 144 | resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} 145 | engines: {node: '>=18'} 146 | cpu: [ppc64] 147 | os: [aix] 148 | 149 | '@esbuild/android-arm64@0.24.2': 150 | resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} 151 | engines: {node: '>=18'} 152 | cpu: [arm64] 153 | os: [android] 154 | 155 | '@esbuild/android-arm@0.24.2': 156 | resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} 157 | engines: {node: '>=18'} 158 | cpu: [arm] 159 | os: [android] 160 | 161 | '@esbuild/android-x64@0.24.2': 162 | resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} 163 | engines: {node: '>=18'} 164 | cpu: [x64] 165 | os: [android] 166 | 167 | '@esbuild/darwin-arm64@0.24.2': 168 | resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} 169 | engines: {node: '>=18'} 170 | cpu: [arm64] 171 | os: [darwin] 172 | 173 | '@esbuild/darwin-x64@0.24.2': 174 | resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} 175 | engines: {node: '>=18'} 176 | cpu: [x64] 177 | os: [darwin] 178 | 179 | '@esbuild/freebsd-arm64@0.24.2': 180 | resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} 181 | engines: {node: '>=18'} 182 | cpu: [arm64] 183 | os: [freebsd] 184 | 185 | '@esbuild/freebsd-x64@0.24.2': 186 | resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} 187 | engines: {node: '>=18'} 188 | cpu: [x64] 189 | os: [freebsd] 190 | 191 | '@esbuild/linux-arm64@0.24.2': 192 | resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} 193 | engines: {node: '>=18'} 194 | cpu: [arm64] 195 | os: [linux] 196 | 197 | '@esbuild/linux-arm@0.24.2': 198 | resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} 199 | engines: {node: '>=18'} 200 | cpu: [arm] 201 | os: [linux] 202 | 203 | '@esbuild/linux-ia32@0.24.2': 204 | resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} 205 | engines: {node: '>=18'} 206 | cpu: [ia32] 207 | os: [linux] 208 | 209 | '@esbuild/linux-loong64@0.24.2': 210 | resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} 211 | engines: {node: '>=18'} 212 | cpu: [loong64] 213 | os: [linux] 214 | 215 | '@esbuild/linux-mips64el@0.24.2': 216 | resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} 217 | engines: {node: '>=18'} 218 | cpu: [mips64el] 219 | os: [linux] 220 | 221 | '@esbuild/linux-ppc64@0.24.2': 222 | resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} 223 | engines: {node: '>=18'} 224 | cpu: [ppc64] 225 | os: [linux] 226 | 227 | '@esbuild/linux-riscv64@0.24.2': 228 | resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} 229 | engines: {node: '>=18'} 230 | cpu: [riscv64] 231 | os: [linux] 232 | 233 | '@esbuild/linux-s390x@0.24.2': 234 | resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} 235 | engines: {node: '>=18'} 236 | cpu: [s390x] 237 | os: [linux] 238 | 239 | '@esbuild/linux-x64@0.24.2': 240 | resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} 241 | engines: {node: '>=18'} 242 | cpu: [x64] 243 | os: [linux] 244 | 245 | '@esbuild/netbsd-arm64@0.24.2': 246 | resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} 247 | engines: {node: '>=18'} 248 | cpu: [arm64] 249 | os: [netbsd] 250 | 251 | '@esbuild/netbsd-x64@0.24.2': 252 | resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} 253 | engines: {node: '>=18'} 254 | cpu: [x64] 255 | os: [netbsd] 256 | 257 | '@esbuild/openbsd-arm64@0.24.2': 258 | resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} 259 | engines: {node: '>=18'} 260 | cpu: [arm64] 261 | os: [openbsd] 262 | 263 | '@esbuild/openbsd-x64@0.24.2': 264 | resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} 265 | engines: {node: '>=18'} 266 | cpu: [x64] 267 | os: [openbsd] 268 | 269 | '@esbuild/sunos-x64@0.24.2': 270 | resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} 271 | engines: {node: '>=18'} 272 | cpu: [x64] 273 | os: [sunos] 274 | 275 | '@esbuild/win32-arm64@0.24.2': 276 | resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} 277 | engines: {node: '>=18'} 278 | cpu: [arm64] 279 | os: [win32] 280 | 281 | '@esbuild/win32-ia32@0.24.2': 282 | resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} 283 | engines: {node: '>=18'} 284 | cpu: [ia32] 285 | os: [win32] 286 | 287 | '@esbuild/win32-x64@0.24.2': 288 | resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} 289 | engines: {node: '>=18'} 290 | cpu: [x64] 291 | os: [win32] 292 | 293 | '@jridgewell/sourcemap-codec@1.5.0': 294 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} 295 | 296 | '@loaderkit/resolve@1.0.2': 297 | resolution: {integrity: sha512-yTCCjuQapvRz6S30B8DyqHu1WYsbYRCww6uNsmbQU4GQVf5gJzJSB60qUHj+qBSxReLtRL/mhmhYhrIc9jVFTw==} 298 | 299 | '@microsoft/api-extractor-model@7.30.3': 300 | resolution: {integrity: sha512-yEAvq0F78MmStXdqz9TTT4PZ05Xu5R8nqgwI5xmUmQjWBQ9E6R2n8HB/iZMRciG4rf9iwI2mtuQwIzDXBvHn1w==} 301 | 302 | '@microsoft/api-extractor@7.50.1': 303 | resolution: {integrity: sha512-L18vz0ARLNaBLKwWe0DdEf7eijDsb7ERZspgZK7PxclLoQrc+9hJZo8y4OVfCHxNVyxlwVywY2WdE/3pOFViLQ==} 304 | hasBin: true 305 | 306 | '@microsoft/tsdoc-config@0.17.1': 307 | resolution: {integrity: sha512-UtjIFe0C6oYgTnad4q1QP4qXwLhe6tIpNTRStJ2RZEPIkqQPREAwE5spzVxsdn9UaEMUqhh0AqSx3X4nWAKXWw==} 308 | 309 | '@microsoft/tsdoc@0.15.1': 310 | resolution: {integrity: sha512-4aErSrCR/On/e5G2hDP0wjooqDdauzEbIq8hIkIe5pXV0rtWJZvdCEKL0ykZxex+IxIwBp0eGeV48hQN07dXtw==} 311 | 312 | '@publint/pack@0.1.1': 313 | resolution: {integrity: sha512-TvCl79Y8v18ZhFGd5mjO1kYPovSBq3+4LVCi5Nfl1JI8fS8i8kXbgQFGwBJRXczim8GlW8c2LMBKTtExYXOy/A==} 314 | engines: {node: '>=18'} 315 | 316 | '@rollup/pluginutils@5.1.4': 317 | resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} 318 | engines: {node: '>=14.0.0'} 319 | peerDependencies: 320 | rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 321 | peerDependenciesMeta: 322 | rollup: 323 | optional: true 324 | 325 | '@rollup/rollup-android-arm-eabi@4.34.8': 326 | resolution: {integrity: sha512-q217OSE8DTp8AFHuNHXo0Y86e1wtlfVrXiAlwkIvGRQv9zbc6mE3sjIVfwI8sYUyNxwOg0j/Vm1RKM04JcWLJw==} 327 | cpu: [arm] 328 | os: [android] 329 | 330 | '@rollup/rollup-android-arm64@4.34.8': 331 | resolution: {integrity: sha512-Gigjz7mNWaOL9wCggvoK3jEIUUbGul656opstjaUSGC3eT0BM7PofdAJaBfPFWWkXNVAXbaQtC99OCg4sJv70Q==} 332 | cpu: [arm64] 333 | os: [android] 334 | 335 | '@rollup/rollup-darwin-arm64@4.34.8': 336 | resolution: {integrity: sha512-02rVdZ5tgdUNRxIUrFdcMBZQoaPMrxtwSb+/hOfBdqkatYHR3lZ2A2EGyHq2sGOd0Owk80oV3snlDASC24He3Q==} 337 | cpu: [arm64] 338 | os: [darwin] 339 | 340 | '@rollup/rollup-darwin-x64@4.34.8': 341 | resolution: {integrity: sha512-qIP/elwR/tq/dYRx3lgwK31jkZvMiD6qUtOycLhTzCvrjbZ3LjQnEM9rNhSGpbLXVJYQ3rq39A6Re0h9tU2ynw==} 342 | cpu: [x64] 343 | os: [darwin] 344 | 345 | '@rollup/rollup-freebsd-arm64@4.34.8': 346 | resolution: {integrity: sha512-IQNVXL9iY6NniYbTaOKdrlVP3XIqazBgJOVkddzJlqnCpRi/yAeSOa8PLcECFSQochzqApIOE1GHNu3pCz+BDA==} 347 | cpu: [arm64] 348 | os: [freebsd] 349 | 350 | '@rollup/rollup-freebsd-x64@4.34.8': 351 | resolution: {integrity: sha512-TYXcHghgnCqYFiE3FT5QwXtOZqDj5GmaFNTNt3jNC+vh22dc/ukG2cG+pi75QO4kACohZzidsq7yKTKwq/Jq7Q==} 352 | cpu: [x64] 353 | os: [freebsd] 354 | 355 | '@rollup/rollup-linux-arm-gnueabihf@4.34.8': 356 | resolution: {integrity: sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g==} 357 | cpu: [arm] 358 | os: [linux] 359 | 360 | '@rollup/rollup-linux-arm-musleabihf@4.34.8': 361 | resolution: {integrity: sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA==} 362 | cpu: [arm] 363 | os: [linux] 364 | 365 | '@rollup/rollup-linux-arm64-gnu@4.34.8': 366 | resolution: {integrity: sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A==} 367 | cpu: [arm64] 368 | os: [linux] 369 | 370 | '@rollup/rollup-linux-arm64-musl@4.34.8': 371 | resolution: {integrity: sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q==} 372 | cpu: [arm64] 373 | os: [linux] 374 | 375 | '@rollup/rollup-linux-loongarch64-gnu@4.34.8': 376 | resolution: {integrity: sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==} 377 | cpu: [loong64] 378 | os: [linux] 379 | 380 | '@rollup/rollup-linux-powerpc64le-gnu@4.34.8': 381 | resolution: {integrity: sha512-LMJc999GkhGvktHU85zNTDImZVUCJ1z/MbAJTnviiWmmjyckP5aQsHtcujMjpNdMZPT2rQEDBlJfubhs3jsMfw==} 382 | cpu: [ppc64] 383 | os: [linux] 384 | 385 | '@rollup/rollup-linux-riscv64-gnu@4.34.8': 386 | resolution: {integrity: sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw==} 387 | cpu: [riscv64] 388 | os: [linux] 389 | 390 | '@rollup/rollup-linux-s390x-gnu@4.34.8': 391 | resolution: {integrity: sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA==} 392 | cpu: [s390x] 393 | os: [linux] 394 | 395 | '@rollup/rollup-linux-x64-gnu@4.34.8': 396 | resolution: {integrity: sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA==} 397 | cpu: [x64] 398 | os: [linux] 399 | 400 | '@rollup/rollup-linux-x64-musl@4.34.8': 401 | resolution: {integrity: sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ==} 402 | cpu: [x64] 403 | os: [linux] 404 | 405 | '@rollup/rollup-win32-arm64-msvc@4.34.8': 406 | resolution: {integrity: sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ==} 407 | cpu: [arm64] 408 | os: [win32] 409 | 410 | '@rollup/rollup-win32-ia32-msvc@4.34.8': 411 | resolution: {integrity: sha512-r3NRQrXkHr4uWy5TOjTpTYojR9XmF0j/RYgKCef+Ag46FWUTltm5ziticv8LdNsDMehjJ543x/+TJAek/xBA2w==} 412 | cpu: [ia32] 413 | os: [win32] 414 | 415 | '@rollup/rollup-win32-x64-msvc@4.34.8': 416 | resolution: {integrity: sha512-U0FaE5O1BCpZSeE6gBl3c5ObhePQSfk9vDRToMmTkbhCOgW4jqvtS5LGyQ76L1fH8sM0keRp4uDTsbjiUyjk0g==} 417 | cpu: [x64] 418 | os: [win32] 419 | 420 | '@rushstack/node-core-library@5.11.0': 421 | resolution: {integrity: sha512-I8+VzG9A0F3nH2rLpPd7hF8F7l5Xb7D+ldrWVZYegXM6CsKkvWc670RlgK3WX8/AseZfXA/vVrh0bpXe2Y2UDQ==} 422 | peerDependencies: 423 | '@types/node': '*' 424 | peerDependenciesMeta: 425 | '@types/node': 426 | optional: true 427 | 428 | '@rushstack/rig-package@0.5.3': 429 | resolution: {integrity: sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==} 430 | 431 | '@rushstack/terminal@0.15.0': 432 | resolution: {integrity: sha512-vXQPRQ+vJJn4GVqxkwRe+UGgzNxdV8xuJZY2zem46Y0p3tlahucH9/hPmLGj2i9dQnUBFiRnoM9/KW7PYw8F4Q==} 433 | peerDependencies: 434 | '@types/node': '*' 435 | peerDependenciesMeta: 436 | '@types/node': 437 | optional: true 438 | 439 | '@rushstack/ts-command-line@4.23.5': 440 | resolution: {integrity: sha512-jg70HfoK44KfSP3MTiL5rxsZH7X1ktX3cZs9Sl8eDu1/LxJSbPsh0MOFRC710lIuYYSgxWjI5AjbCBAl7u3RxA==} 441 | 442 | '@sindresorhus/is@4.6.0': 443 | resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} 444 | engines: {node: '>=10'} 445 | 446 | '@stripe/stripe-js@5.6.0': 447 | resolution: {integrity: sha512-w8CEY73X/7tw2KKlL3iOk679V9bWseE4GzNz3zlaYxcTjmcmWOathRb0emgo/QQ3eoNzmq68+2Y2gxluAv3xGw==} 448 | engines: {node: '>=12.16'} 449 | 450 | '@tailwindcss/node@4.0.8': 451 | resolution: {integrity: sha512-FKArQpbrbwv08TNT0k7ejYXpF+R8knZFAatNc0acOxbgeqLzwb86r+P3LGOjIeI3Idqe9CVkZrh4GlsJLJKkkw==} 452 | 453 | '@tailwindcss/oxide-android-arm64@4.0.8': 454 | resolution: {integrity: sha512-We7K79+Sm4mwJHk26Yzu/GAj7C7myemm7PeXvpgMxyxO70SSFSL3uCcqFbz9JA5M5UPkrl7N9fkBe/Y0iazqpA==} 455 | engines: {node: '>= 10'} 456 | cpu: [arm64] 457 | os: [android] 458 | 459 | '@tailwindcss/oxide-darwin-arm64@4.0.8': 460 | resolution: {integrity: sha512-Lv9Isi2EwkCTG1sRHNDi0uRNN1UGFdEThUAGFrydRmQZnraGLMjN8gahzg2FFnOizDl7LB2TykLUuiw833DSNg==} 461 | engines: {node: '>= 10'} 462 | cpu: [arm64] 463 | os: [darwin] 464 | 465 | '@tailwindcss/oxide-darwin-x64@4.0.8': 466 | resolution: {integrity: sha512-fWfywfYIlSWtKoqWTjukTHLWV3ARaBRjXCC2Eo0l6KVpaqGY4c2y8snUjp1xpxUtpqwMvCvFWFaleMoz1Vhzlw==} 467 | engines: {node: '>= 10'} 468 | cpu: [x64] 469 | os: [darwin] 470 | 471 | '@tailwindcss/oxide-freebsd-x64@4.0.8': 472 | resolution: {integrity: sha512-SO+dyvjJV9G94bnmq2288Ke0BIdvrbSbvtPLaQdqjqHR83v5L2fWADyFO+1oecHo9Owsk8MxcXh1agGVPIKIqw==} 473 | engines: {node: '>= 10'} 474 | cpu: [x64] 475 | os: [freebsd] 476 | 477 | '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.8': 478 | resolution: {integrity: sha512-ZSHggWiEblQNV69V0qUK5vuAtHP+I+S2eGrKGJ5lPgwgJeAd6GjLsVBN+Mqn2SPVfYM3BOpS9jX/zVg9RWQVDQ==} 479 | engines: {node: '>= 10'} 480 | cpu: [arm] 481 | os: [linux] 482 | 483 | '@tailwindcss/oxide-linux-arm64-gnu@4.0.8': 484 | resolution: {integrity: sha512-xWpr6M0OZLDNsr7+bQz+3X7zcnDJZJ1N9gtBWCtfhkEtDjjxYEp+Lr5L5nc/yXlL4MyCHnn0uonGVXy3fhxaVA==} 485 | engines: {node: '>= 10'} 486 | cpu: [arm64] 487 | os: [linux] 488 | 489 | '@tailwindcss/oxide-linux-arm64-musl@4.0.8': 490 | resolution: {integrity: sha512-5tz2IL7LN58ssGEq7h/staD7pu/izF/KeMWdlJ86WDe2Ah46LF3ET6ZGKTr5eZMrnEA0M9cVFuSPprKRHNgjeg==} 491 | engines: {node: '>= 10'} 492 | cpu: [arm64] 493 | os: [linux] 494 | 495 | '@tailwindcss/oxide-linux-x64-gnu@4.0.8': 496 | resolution: {integrity: sha512-KSzMkhyrxAQyY2o194NKVKU9j/c+NFSoMvnHWFaNHKi3P1lb+Vq1UC19tLHrmxSkKapcMMu69D7+G1+FVGNDXQ==} 497 | engines: {node: '>= 10'} 498 | cpu: [x64] 499 | os: [linux] 500 | 501 | '@tailwindcss/oxide-linux-x64-musl@4.0.8': 502 | resolution: {integrity: sha512-yFYKG5UtHTRimjtqxUWXBgI4Tc6NJe3USjRIVdlTczpLRxq/SFwgzGl5JbatCxgSRDPBFwRrNPxq+ukfQFGdrw==} 503 | engines: {node: '>= 10'} 504 | cpu: [x64] 505 | os: [linux] 506 | 507 | '@tailwindcss/oxide-win32-arm64-msvc@4.0.8': 508 | resolution: {integrity: sha512-tndGujmCSba85cRCnQzXgpA2jx5gXimyspsUYae5jlPyLRG0RjXbDshFKOheVXU4TLflo7FSG8EHCBJ0EHTKdQ==} 509 | engines: {node: '>= 10'} 510 | cpu: [arm64] 511 | os: [win32] 512 | 513 | '@tailwindcss/oxide-win32-x64-msvc@4.0.8': 514 | resolution: {integrity: sha512-T77jroAc0p4EHVVgTUiNeFn6Nj3jtD3IeNId2X+0k+N1XxfNipy81BEkYErpKLiOkNhpNFjPee8/ZVas29b2OQ==} 515 | engines: {node: '>= 10'} 516 | cpu: [x64] 517 | os: [win32] 518 | 519 | '@tailwindcss/oxide@4.0.8': 520 | resolution: {integrity: sha512-KfMcuAu/Iw+DcV1e8twrFyr2yN8/ZDC/odIGta4wuuJOGkrkHZbvJvRNIbQNhGh7erZTYV6Ie0IeD6WC9Y8Hcw==} 521 | engines: {node: '>= 10'} 522 | 523 | '@tailwindcss/vite@4.0.8': 524 | resolution: {integrity: sha512-+SAq44yLzYlzyrb7QTcFCdU8Xa7FOA0jp+Xby7fPMUie+MY9HhJysM7Vp+vL8qIp8ceQJfLD+FjgJuJ4lL6nyg==} 525 | peerDependencies: 526 | vite: ^5.2.0 || ^6 527 | 528 | '@types/argparse@1.0.38': 529 | resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} 530 | 531 | '@types/estree@1.0.6': 532 | resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} 533 | 534 | '@vitejs/plugin-vue@5.2.1': 535 | resolution: {integrity: sha512-cxh314tzaWwOLqVes2gnnCtvBDcM1UMdn+iFR+UjAn411dPT3tOmqrJjbMd7koZpMAmBM/GqeV4n9ge7JSiJJQ==} 536 | engines: {node: ^18.0.0 || >=20.0.0} 537 | peerDependencies: 538 | vite: ^5.0.0 || ^6.0.0 539 | vue: ^3.2.25 540 | 541 | '@volar/language-core@2.4.11': 542 | resolution: {integrity: sha512-lN2C1+ByfW9/JRPpqScuZt/4OrUUse57GLI6TbLgTIqBVemdl1wNcZ1qYGEo2+Gw8coYLgCy7SuKqn6IrQcQgg==} 543 | 544 | '@volar/source-map@2.4.11': 545 | resolution: {integrity: sha512-ZQpmafIGvaZMn/8iuvCFGrW3smeqkq/IIh9F1SdSx9aUl0J4Iurzd6/FhmjNO5g2ejF3rT45dKskgXWiofqlZQ==} 546 | 547 | '@volar/typescript@2.4.11': 548 | resolution: {integrity: sha512-2DT+Tdh88Spp5PyPbqhyoYavYCPDsqbHLFwcUI9K1NlY1YgUJvujGdrqUp0zWxnW7KWNTr3xSpMuv2WnaTKDAw==} 549 | 550 | '@vue/compiler-core@3.5.13': 551 | resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} 552 | 553 | '@vue/compiler-dom@3.5.13': 554 | resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} 555 | 556 | '@vue/compiler-sfc@3.5.13': 557 | resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==} 558 | 559 | '@vue/compiler-ssr@3.5.13': 560 | resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==} 561 | 562 | '@vue/compiler-vue2@2.7.16': 563 | resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} 564 | 565 | '@vue/language-core@2.2.0': 566 | resolution: {integrity: sha512-O1ZZFaaBGkKbsRfnVH1ifOK1/1BUkyK+3SQsfnh6PmMmD4qJcTU8godCeA96jjDRTL6zgnK7YzCHfaUlH2r0Mw==} 567 | peerDependencies: 568 | typescript: '*' 569 | peerDependenciesMeta: 570 | typescript: 571 | optional: true 572 | 573 | '@vue/language-core@2.2.4': 574 | resolution: {integrity: sha512-eGGdw7eWUwdIn9Fy/irJ7uavCGfgemuHQABgJ/hU1UgZFnbTg9VWeXvHQdhY+2SPQZWJqWXvRWIg67t4iWEa+Q==} 575 | peerDependencies: 576 | typescript: '*' 577 | peerDependenciesMeta: 578 | typescript: 579 | optional: true 580 | 581 | '@vue/reactivity@3.5.13': 582 | resolution: {integrity: sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==} 583 | 584 | '@vue/runtime-core@3.5.13': 585 | resolution: {integrity: sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==} 586 | 587 | '@vue/runtime-dom@3.5.13': 588 | resolution: {integrity: sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==} 589 | 590 | '@vue/server-renderer@3.5.13': 591 | resolution: {integrity: sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==} 592 | peerDependencies: 593 | vue: 3.5.13 594 | 595 | '@vue/shared@3.5.13': 596 | resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} 597 | 598 | '@vue/tsconfig@0.7.0': 599 | resolution: {integrity: sha512-ku2uNz5MaZ9IerPPUyOHzyjhXoX2kVJaVf7hL315DC17vS6IiZRmmCPfggNbU16QTvM80+uYYy3eYJB59WCtvg==} 600 | peerDependencies: 601 | typescript: 5.x 602 | vue: ^3.4.0 603 | peerDependenciesMeta: 604 | typescript: 605 | optional: true 606 | vue: 607 | optional: true 608 | 609 | acorn@8.14.0: 610 | resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} 611 | engines: {node: '>=0.4.0'} 612 | hasBin: true 613 | 614 | ajv-draft-04@1.0.0: 615 | resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} 616 | peerDependencies: 617 | ajv: ^8.5.0 618 | peerDependenciesMeta: 619 | ajv: 620 | optional: true 621 | 622 | ajv-formats@3.0.1: 623 | resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} 624 | peerDependencies: 625 | ajv: ^8.0.0 626 | peerDependenciesMeta: 627 | ajv: 628 | optional: true 629 | 630 | ajv@8.12.0: 631 | resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} 632 | 633 | ajv@8.13.0: 634 | resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==} 635 | 636 | alien-signals@0.4.14: 637 | resolution: {integrity: sha512-itUAVzhczTmP2U5yX67xVpsbbOiquusbWVyA9N+sy6+r6YVbFkahXvNCeEPWEOMhwDYwbVbGHFkVL03N9I5g+Q==} 638 | 639 | alien-signals@1.0.4: 640 | resolution: {integrity: sha512-DJqqQD3XcsaQcQ1s+iE2jDUZmmQpXwHiR6fCAim/w87luaW+vmLY8fMlrdkmRwzaFXhkxf3rqPCR59tKVv1MDw==} 641 | 642 | ansi-escapes@7.0.0: 643 | resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} 644 | engines: {node: '>=18'} 645 | 646 | ansi-regex@5.0.1: 647 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 648 | engines: {node: '>=8'} 649 | 650 | ansi-regex@6.1.0: 651 | resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} 652 | engines: {node: '>=12'} 653 | 654 | ansi-styles@4.3.0: 655 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 656 | engines: {node: '>=8'} 657 | 658 | any-promise@1.3.0: 659 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 660 | 661 | argparse@1.0.10: 662 | resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} 663 | 664 | balanced-match@1.0.2: 665 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 666 | 667 | brace-expansion@1.1.11: 668 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 669 | 670 | brace-expansion@2.0.1: 671 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 672 | 673 | chalk@4.1.2: 674 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 675 | engines: {node: '>=10'} 676 | 677 | chalk@5.4.1: 678 | resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} 679 | engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} 680 | 681 | char-regex@1.0.2: 682 | resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} 683 | engines: {node: '>=10'} 684 | 685 | cjs-module-lexer@1.4.3: 686 | resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} 687 | 688 | cli-highlight@2.1.11: 689 | resolution: {integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==} 690 | engines: {node: '>=8.0.0', npm: '>=5.0.0'} 691 | hasBin: true 692 | 693 | cli-table3@0.6.5: 694 | resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==} 695 | engines: {node: 10.* || >= 12.*} 696 | 697 | cliui@7.0.4: 698 | resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} 699 | 700 | color-convert@2.0.1: 701 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 702 | engines: {node: '>=7.0.0'} 703 | 704 | color-name@1.1.4: 705 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 706 | 707 | commander@10.0.1: 708 | resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} 709 | engines: {node: '>=14'} 710 | 711 | compare-versions@6.1.1: 712 | resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} 713 | 714 | concat-map@0.0.1: 715 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 716 | 717 | confbox@0.1.8: 718 | resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} 719 | 720 | csstype@3.1.3: 721 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 722 | 723 | de-indent@1.0.2: 724 | resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} 725 | 726 | debug@4.4.0: 727 | resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} 728 | engines: {node: '>=6.0'} 729 | peerDependencies: 730 | supports-color: '*' 731 | peerDependenciesMeta: 732 | supports-color: 733 | optional: true 734 | 735 | detect-libc@1.0.3: 736 | resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} 737 | engines: {node: '>=0.10'} 738 | hasBin: true 739 | 740 | emoji-regex@8.0.0: 741 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 742 | 743 | emojilib@2.4.0: 744 | resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==} 745 | 746 | enhanced-resolve@5.18.1: 747 | resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} 748 | engines: {node: '>=10.13.0'} 749 | 750 | entities@4.5.0: 751 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 752 | engines: {node: '>=0.12'} 753 | 754 | environment@1.1.0: 755 | resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} 756 | engines: {node: '>=18'} 757 | 758 | esbuild@0.24.2: 759 | resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} 760 | engines: {node: '>=18'} 761 | hasBin: true 762 | 763 | escalade@3.2.0: 764 | resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} 765 | engines: {node: '>=6'} 766 | 767 | estree-walker@2.0.2: 768 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 769 | 770 | fast-deep-equal@3.1.3: 771 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 772 | 773 | fflate@0.8.2: 774 | resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} 775 | 776 | fs-extra@11.3.0: 777 | resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} 778 | engines: {node: '>=14.14'} 779 | 780 | fsevents@2.3.3: 781 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 782 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 783 | os: [darwin] 784 | 785 | function-bind@1.1.2: 786 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 787 | 788 | get-caller-file@2.0.5: 789 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 790 | engines: {node: 6.* || 8.* || >= 10.*} 791 | 792 | graceful-fs@4.2.11: 793 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 794 | 795 | has-flag@4.0.0: 796 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 797 | engines: {node: '>=8'} 798 | 799 | hasown@2.0.2: 800 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 801 | engines: {node: '>= 0.4'} 802 | 803 | he@1.2.0: 804 | resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} 805 | hasBin: true 806 | 807 | highlight.js@10.7.3: 808 | resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} 809 | 810 | import-lazy@4.0.0: 811 | resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} 812 | engines: {node: '>=8'} 813 | 814 | is-core-module@2.16.1: 815 | resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} 816 | engines: {node: '>= 0.4'} 817 | 818 | is-fullwidth-code-point@3.0.0: 819 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 820 | engines: {node: '>=8'} 821 | 822 | jiti@2.4.2: 823 | resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} 824 | hasBin: true 825 | 826 | jju@1.4.0: 827 | resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} 828 | 829 | json-schema-traverse@1.0.0: 830 | resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} 831 | 832 | jsonfile@6.1.0: 833 | resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} 834 | 835 | kolorist@1.8.0: 836 | resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} 837 | 838 | lightningcss-darwin-arm64@1.29.1: 839 | resolution: {integrity: sha512-HtR5XJ5A0lvCqYAoSv2QdZZyoHNttBpa5EP9aNuzBQeKGfbyH5+UipLWvVzpP4Uml5ej4BYs5I9Lco9u1fECqw==} 840 | engines: {node: '>= 12.0.0'} 841 | cpu: [arm64] 842 | os: [darwin] 843 | 844 | lightningcss-darwin-x64@1.29.1: 845 | resolution: {integrity: sha512-k33G9IzKUpHy/J/3+9MCO4e+PzaFblsgBjSGlpAaFikeBFm8B/CkO3cKU9oI4g+fjS2KlkLM/Bza9K/aw8wsNA==} 846 | engines: {node: '>= 12.0.0'} 847 | cpu: [x64] 848 | os: [darwin] 849 | 850 | lightningcss-freebsd-x64@1.29.1: 851 | resolution: {integrity: sha512-0SUW22fv/8kln2LnIdOCmSuXnxgxVC276W5KLTwoehiO0hxkacBxjHOL5EtHD8BAXg2BvuhsJPmVMasvby3LiQ==} 852 | engines: {node: '>= 12.0.0'} 853 | cpu: [x64] 854 | os: [freebsd] 855 | 856 | lightningcss-linux-arm-gnueabihf@1.29.1: 857 | resolution: {integrity: sha512-sD32pFvlR0kDlqsOZmYqH/68SqUMPNj+0pucGxToXZi4XZgZmqeX/NkxNKCPsswAXU3UeYgDSpGhu05eAufjDg==} 858 | engines: {node: '>= 12.0.0'} 859 | cpu: [arm] 860 | os: [linux] 861 | 862 | lightningcss-linux-arm64-gnu@1.29.1: 863 | resolution: {integrity: sha512-0+vClRIZ6mmJl/dxGuRsE197o1HDEeeRk6nzycSy2GofC2JsY4ifCRnvUWf/CUBQmlrvMzt6SMQNMSEu22csWQ==} 864 | engines: {node: '>= 12.0.0'} 865 | cpu: [arm64] 866 | os: [linux] 867 | 868 | lightningcss-linux-arm64-musl@1.29.1: 869 | resolution: {integrity: sha512-UKMFrG4rL/uHNgelBsDwJcBqVpzNJbzsKkbI3Ja5fg00sgQnHw/VrzUTEc4jhZ+AN2BvQYz/tkHu4vt1kLuJyw==} 870 | engines: {node: '>= 12.0.0'} 871 | cpu: [arm64] 872 | os: [linux] 873 | 874 | lightningcss-linux-x64-gnu@1.29.1: 875 | resolution: {integrity: sha512-u1S+xdODy/eEtjADqirA774y3jLcm8RPtYztwReEXoZKdzgsHYPl0s5V52Tst+GKzqjebkULT86XMSxejzfISw==} 876 | engines: {node: '>= 12.0.0'} 877 | cpu: [x64] 878 | os: [linux] 879 | 880 | lightningcss-linux-x64-musl@1.29.1: 881 | resolution: {integrity: sha512-L0Tx0DtaNUTzXv0lbGCLB/c/qEADanHbu4QdcNOXLIe1i8i22rZRpbT3gpWYsCh9aSL9zFujY/WmEXIatWvXbw==} 882 | engines: {node: '>= 12.0.0'} 883 | cpu: [x64] 884 | os: [linux] 885 | 886 | lightningcss-win32-arm64-msvc@1.29.1: 887 | resolution: {integrity: sha512-QoOVnkIEFfbW4xPi+dpdft/zAKmgLgsRHfJalEPYuJDOWf7cLQzYg0DEh8/sn737FaeMJxHZRc1oBreiwZCjog==} 888 | engines: {node: '>= 12.0.0'} 889 | cpu: [arm64] 890 | os: [win32] 891 | 892 | lightningcss-win32-x64-msvc@1.29.1: 893 | resolution: {integrity: sha512-NygcbThNBe4JElP+olyTI/doBNGJvLs3bFCRPdvuCcxZCcCZ71B858IHpdm7L1btZex0FvCmM17FK98Y9MRy1Q==} 894 | engines: {node: '>= 12.0.0'} 895 | cpu: [x64] 896 | os: [win32] 897 | 898 | lightningcss@1.29.1: 899 | resolution: {integrity: sha512-FmGoeD4S05ewj+AkhTY+D+myDvXI6eL27FjHIjoyUkO/uw7WZD1fBVs0QxeYWa7E17CUHJaYX/RUGISCtcrG4Q==} 900 | engines: {node: '>= 12.0.0'} 901 | 902 | local-pkg@0.5.1: 903 | resolution: {integrity: sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==} 904 | engines: {node: '>=14'} 905 | 906 | lodash@4.17.21: 907 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 908 | 909 | lru-cache@10.4.3: 910 | resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 911 | 912 | lru-cache@6.0.0: 913 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 914 | engines: {node: '>=10'} 915 | 916 | magic-string@0.30.17: 917 | resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} 918 | 919 | marked-terminal@7.3.0: 920 | resolution: {integrity: sha512-t4rBvPsHc57uE/2nJOLmMbZCQ4tgAccAED3ngXQqW6g+TxA488JzJ+FK3lQkzBQOI1mRV/r/Kq+1ZlJ4D0owQw==} 921 | engines: {node: '>=16.0.0'} 922 | peerDependencies: 923 | marked: '>=1 <16' 924 | 925 | marked@9.1.6: 926 | resolution: {integrity: sha512-jcByLnIFkd5gSXZmjNvS1TlmRhCXZjIzHYlaGkPlLIekG55JDR2Z4va9tZwCiP+/RDERiNhMOFu01xd6O5ct1Q==} 927 | engines: {node: '>= 16'} 928 | hasBin: true 929 | 930 | minimatch@3.0.8: 931 | resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==} 932 | 933 | minimatch@9.0.5: 934 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 935 | engines: {node: '>=16 || 14 >=14.17'} 936 | 937 | mlly@1.7.4: 938 | resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} 939 | 940 | mri@1.2.0: 941 | resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} 942 | engines: {node: '>=4'} 943 | 944 | ms@2.1.3: 945 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 946 | 947 | muggle-string@0.4.1: 948 | resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} 949 | 950 | mz@2.7.0: 951 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 952 | 953 | nanoid@3.3.8: 954 | resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} 955 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 956 | hasBin: true 957 | 958 | node-emoji@2.2.0: 959 | resolution: {integrity: sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==} 960 | engines: {node: '>=18'} 961 | 962 | object-assign@4.1.1: 963 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 964 | engines: {node: '>=0.10.0'} 965 | 966 | package-manager-detector@0.2.9: 967 | resolution: {integrity: sha512-+vYvA/Y31l8Zk8dwxHhL3JfTuHPm6tlxM2A3GeQyl7ovYnSp1+mzAxClxaOr0qO1TtPxbQxetI7v5XqKLJZk7Q==} 968 | 969 | parse5-htmlparser2-tree-adapter@6.0.1: 970 | resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==} 971 | 972 | parse5@5.1.1: 973 | resolution: {integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==} 974 | 975 | parse5@6.0.1: 976 | resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} 977 | 978 | path-browserify@1.0.1: 979 | resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} 980 | 981 | path-parse@1.0.7: 982 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 983 | 984 | pathe@2.0.3: 985 | resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} 986 | 987 | picocolors@1.1.1: 988 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 989 | 990 | picomatch@4.0.2: 991 | resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} 992 | engines: {node: '>=12'} 993 | 994 | pkg-types@1.3.1: 995 | resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} 996 | 997 | postcss@8.5.3: 998 | resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} 999 | engines: {node: ^10 || ^12 || >=14} 1000 | 1001 | publint@0.3.6: 1002 | resolution: {integrity: sha512-f6mQw/RsX8GiUaUliYWJsivveYuwIozFLe4wCWE3NGj3vBamr816pxQGN0ycVwFIoTnIeqIJb9wsN7XAS8wRCA==} 1003 | engines: {node: '>=18'} 1004 | hasBin: true 1005 | 1006 | punycode@2.3.1: 1007 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1008 | engines: {node: '>=6'} 1009 | 1010 | require-directory@2.1.1: 1011 | resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} 1012 | engines: {node: '>=0.10.0'} 1013 | 1014 | require-from-string@2.0.2: 1015 | resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} 1016 | engines: {node: '>=0.10.0'} 1017 | 1018 | resolve@1.22.10: 1019 | resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} 1020 | engines: {node: '>= 0.4'} 1021 | hasBin: true 1022 | 1023 | rollup@4.34.8: 1024 | resolution: {integrity: sha512-489gTVMzAYdiZHFVA/ig/iYFllCcWFHMvUHI1rpFmkoUtRlQxqh6/yiNqnYibjMZ2b/+FUQwldG+aLsEt6bglQ==} 1025 | engines: {node: '>=18.0.0', npm: '>=8.0.0'} 1026 | hasBin: true 1027 | 1028 | sade@1.8.1: 1029 | resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} 1030 | engines: {node: '>=6'} 1031 | 1032 | semver@7.5.4: 1033 | resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} 1034 | engines: {node: '>=10'} 1035 | hasBin: true 1036 | 1037 | semver@7.7.1: 1038 | resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} 1039 | engines: {node: '>=10'} 1040 | hasBin: true 1041 | 1042 | skin-tone@2.0.0: 1043 | resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} 1044 | engines: {node: '>=8'} 1045 | 1046 | source-map-js@1.2.1: 1047 | resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 1048 | engines: {node: '>=0.10.0'} 1049 | 1050 | source-map@0.6.1: 1051 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 1052 | engines: {node: '>=0.10.0'} 1053 | 1054 | sprintf-js@1.0.3: 1055 | resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} 1056 | 1057 | string-argv@0.3.2: 1058 | resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} 1059 | engines: {node: '>=0.6.19'} 1060 | 1061 | string-width@4.2.3: 1062 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1063 | engines: {node: '>=8'} 1064 | 1065 | strip-ansi@6.0.1: 1066 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1067 | engines: {node: '>=8'} 1068 | 1069 | strip-json-comments@3.1.1: 1070 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1071 | engines: {node: '>=8'} 1072 | 1073 | supports-color@7.2.0: 1074 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1075 | engines: {node: '>=8'} 1076 | 1077 | supports-color@8.1.1: 1078 | resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} 1079 | engines: {node: '>=10'} 1080 | 1081 | supports-hyperlinks@3.2.0: 1082 | resolution: {integrity: sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==} 1083 | engines: {node: '>=14.18'} 1084 | 1085 | supports-preserve-symlinks-flag@1.0.0: 1086 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1087 | engines: {node: '>= 0.4'} 1088 | 1089 | tailwindcss@4.0.8: 1090 | resolution: {integrity: sha512-Me7N5CKR+D2A1xdWA5t5+kjjT7bwnxZOE6/yDI/ixJdJokszsn2n++mdU5yJwrsTpqFX2B9ZNMBJDwcqk9C9lw==} 1091 | 1092 | tapable@2.2.1: 1093 | resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} 1094 | engines: {node: '>=6'} 1095 | 1096 | thenify-all@1.6.0: 1097 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 1098 | engines: {node: '>=0.8'} 1099 | 1100 | thenify@3.3.1: 1101 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 1102 | 1103 | typescript@5.6.1-rc: 1104 | resolution: {integrity: sha512-E3b2+1zEFu84jB0YQi9BORDjz9+jGbwwy1Zi3G0LUNw7a7cePUrHMRNy8aPh53nXpkFGVHSxIZo5vKTfYaFiBQ==} 1105 | engines: {node: '>=14.17'} 1106 | hasBin: true 1107 | 1108 | typescript@5.7.3: 1109 | resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} 1110 | engines: {node: '>=14.17'} 1111 | hasBin: true 1112 | 1113 | ufo@1.5.4: 1114 | resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} 1115 | 1116 | unicode-emoji-modifier-base@1.0.0: 1117 | resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} 1118 | engines: {node: '>=4'} 1119 | 1120 | universalify@2.0.1: 1121 | resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} 1122 | engines: {node: '>= 10.0.0'} 1123 | 1124 | uri-js@4.4.1: 1125 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1126 | 1127 | validate-npm-package-name@5.0.1: 1128 | resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} 1129 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 1130 | 1131 | vite-plugin-dts@4.5.0: 1132 | resolution: {integrity: sha512-M1lrPTdi7gilLYRZoLmGYnl4fbPryVYsehPN9JgaxjJKTs8/f7tuAlvCCvOLB5gRDQTTKnptBcB0ACsaw2wNLw==} 1133 | peerDependencies: 1134 | typescript: '*' 1135 | vite: '*' 1136 | peerDependenciesMeta: 1137 | vite: 1138 | optional: true 1139 | 1140 | vite@6.1.1: 1141 | resolution: {integrity: sha512-4GgM54XrwRfrOp297aIYspIti66k56v16ZnqHvrIM7mG+HjDlAwS7p+Srr7J6fGvEdOJ5JcQ/D9T7HhtdXDTzA==} 1142 | engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} 1143 | hasBin: true 1144 | peerDependencies: 1145 | '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 1146 | jiti: '>=1.21.0' 1147 | less: '*' 1148 | lightningcss: ^1.21.0 1149 | sass: '*' 1150 | sass-embedded: '*' 1151 | stylus: '*' 1152 | sugarss: '*' 1153 | terser: ^5.16.0 1154 | tsx: ^4.8.1 1155 | yaml: ^2.4.2 1156 | peerDependenciesMeta: 1157 | '@types/node': 1158 | optional: true 1159 | jiti: 1160 | optional: true 1161 | less: 1162 | optional: true 1163 | lightningcss: 1164 | optional: true 1165 | sass: 1166 | optional: true 1167 | sass-embedded: 1168 | optional: true 1169 | stylus: 1170 | optional: true 1171 | sugarss: 1172 | optional: true 1173 | terser: 1174 | optional: true 1175 | tsx: 1176 | optional: true 1177 | yaml: 1178 | optional: true 1179 | 1180 | vscode-uri@3.1.0: 1181 | resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} 1182 | 1183 | vue-tsc@2.2.4: 1184 | resolution: {integrity: sha512-3EVHlxtpMXcb5bCaK7QDFTbEkMusDfVk0HVRrkv5hEb+Clpu9a96lKUXJAeD/akRlkoA4H8MCHgBDN19S6FnzA==} 1185 | hasBin: true 1186 | peerDependencies: 1187 | typescript: '>=5.0.0' 1188 | 1189 | vue@3.5.13: 1190 | resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==} 1191 | peerDependencies: 1192 | typescript: '*' 1193 | peerDependenciesMeta: 1194 | typescript: 1195 | optional: true 1196 | 1197 | wrap-ansi@7.0.0: 1198 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 1199 | engines: {node: '>=10'} 1200 | 1201 | y18n@5.0.8: 1202 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 1203 | engines: {node: '>=10'} 1204 | 1205 | yallist@4.0.0: 1206 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 1207 | 1208 | yargs-parser@20.2.9: 1209 | resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} 1210 | engines: {node: '>=10'} 1211 | 1212 | yargs@16.2.0: 1213 | resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} 1214 | engines: {node: '>=10'} 1215 | 1216 | snapshots: 1217 | 1218 | '@andrewbranch/untar.js@1.0.3': {} 1219 | 1220 | '@arethetypeswrong/cli@0.17.4': 1221 | dependencies: 1222 | '@arethetypeswrong/core': 0.17.4 1223 | chalk: 4.1.2 1224 | cli-table3: 0.6.5 1225 | commander: 10.0.1 1226 | marked: 9.1.6 1227 | marked-terminal: 7.3.0(marked@9.1.6) 1228 | semver: 7.7.1 1229 | 1230 | '@arethetypeswrong/core@0.17.4': 1231 | dependencies: 1232 | '@andrewbranch/untar.js': 1.0.3 1233 | '@loaderkit/resolve': 1.0.2 1234 | cjs-module-lexer: 1.4.3 1235 | fflate: 0.8.2 1236 | lru-cache: 10.4.3 1237 | semver: 7.7.1 1238 | typescript: 5.6.1-rc 1239 | validate-npm-package-name: 5.0.1 1240 | 1241 | '@babel/helper-string-parser@7.25.9': {} 1242 | 1243 | '@babel/helper-validator-identifier@7.25.9': {} 1244 | 1245 | '@babel/parser@7.26.9': 1246 | dependencies: 1247 | '@babel/types': 7.26.9 1248 | 1249 | '@babel/types@7.26.9': 1250 | dependencies: 1251 | '@babel/helper-string-parser': 7.25.9 1252 | '@babel/helper-validator-identifier': 7.25.9 1253 | 1254 | '@biomejs/biome@1.9.4': 1255 | optionalDependencies: 1256 | '@biomejs/cli-darwin-arm64': 1.9.4 1257 | '@biomejs/cli-darwin-x64': 1.9.4 1258 | '@biomejs/cli-linux-arm64': 1.9.4 1259 | '@biomejs/cli-linux-arm64-musl': 1.9.4 1260 | '@biomejs/cli-linux-x64': 1.9.4 1261 | '@biomejs/cli-linux-x64-musl': 1.9.4 1262 | '@biomejs/cli-win32-arm64': 1.9.4 1263 | '@biomejs/cli-win32-x64': 1.9.4 1264 | 1265 | '@biomejs/cli-darwin-arm64@1.9.4': 1266 | optional: true 1267 | 1268 | '@biomejs/cli-darwin-x64@1.9.4': 1269 | optional: true 1270 | 1271 | '@biomejs/cli-linux-arm64-musl@1.9.4': 1272 | optional: true 1273 | 1274 | '@biomejs/cli-linux-arm64@1.9.4': 1275 | optional: true 1276 | 1277 | '@biomejs/cli-linux-x64-musl@1.9.4': 1278 | optional: true 1279 | 1280 | '@biomejs/cli-linux-x64@1.9.4': 1281 | optional: true 1282 | 1283 | '@biomejs/cli-win32-arm64@1.9.4': 1284 | optional: true 1285 | 1286 | '@biomejs/cli-win32-x64@1.9.4': 1287 | optional: true 1288 | 1289 | '@braidai/lang@1.0.0': {} 1290 | 1291 | '@colors/colors@1.5.0': 1292 | optional: true 1293 | 1294 | '@esbuild/aix-ppc64@0.24.2': 1295 | optional: true 1296 | 1297 | '@esbuild/android-arm64@0.24.2': 1298 | optional: true 1299 | 1300 | '@esbuild/android-arm@0.24.2': 1301 | optional: true 1302 | 1303 | '@esbuild/android-x64@0.24.2': 1304 | optional: true 1305 | 1306 | '@esbuild/darwin-arm64@0.24.2': 1307 | optional: true 1308 | 1309 | '@esbuild/darwin-x64@0.24.2': 1310 | optional: true 1311 | 1312 | '@esbuild/freebsd-arm64@0.24.2': 1313 | optional: true 1314 | 1315 | '@esbuild/freebsd-x64@0.24.2': 1316 | optional: true 1317 | 1318 | '@esbuild/linux-arm64@0.24.2': 1319 | optional: true 1320 | 1321 | '@esbuild/linux-arm@0.24.2': 1322 | optional: true 1323 | 1324 | '@esbuild/linux-ia32@0.24.2': 1325 | optional: true 1326 | 1327 | '@esbuild/linux-loong64@0.24.2': 1328 | optional: true 1329 | 1330 | '@esbuild/linux-mips64el@0.24.2': 1331 | optional: true 1332 | 1333 | '@esbuild/linux-ppc64@0.24.2': 1334 | optional: true 1335 | 1336 | '@esbuild/linux-riscv64@0.24.2': 1337 | optional: true 1338 | 1339 | '@esbuild/linux-s390x@0.24.2': 1340 | optional: true 1341 | 1342 | '@esbuild/linux-x64@0.24.2': 1343 | optional: true 1344 | 1345 | '@esbuild/netbsd-arm64@0.24.2': 1346 | optional: true 1347 | 1348 | '@esbuild/netbsd-x64@0.24.2': 1349 | optional: true 1350 | 1351 | '@esbuild/openbsd-arm64@0.24.2': 1352 | optional: true 1353 | 1354 | '@esbuild/openbsd-x64@0.24.2': 1355 | optional: true 1356 | 1357 | '@esbuild/sunos-x64@0.24.2': 1358 | optional: true 1359 | 1360 | '@esbuild/win32-arm64@0.24.2': 1361 | optional: true 1362 | 1363 | '@esbuild/win32-ia32@0.24.2': 1364 | optional: true 1365 | 1366 | '@esbuild/win32-x64@0.24.2': 1367 | optional: true 1368 | 1369 | '@jridgewell/sourcemap-codec@1.5.0': {} 1370 | 1371 | '@loaderkit/resolve@1.0.2': 1372 | dependencies: 1373 | '@braidai/lang': 1.0.0 1374 | 1375 | '@microsoft/api-extractor-model@7.30.3': 1376 | dependencies: 1377 | '@microsoft/tsdoc': 0.15.1 1378 | '@microsoft/tsdoc-config': 0.17.1 1379 | '@rushstack/node-core-library': 5.11.0 1380 | transitivePeerDependencies: 1381 | - '@types/node' 1382 | 1383 | '@microsoft/api-extractor@7.50.1': 1384 | dependencies: 1385 | '@microsoft/api-extractor-model': 7.30.3 1386 | '@microsoft/tsdoc': 0.15.1 1387 | '@microsoft/tsdoc-config': 0.17.1 1388 | '@rushstack/node-core-library': 5.11.0 1389 | '@rushstack/rig-package': 0.5.3 1390 | '@rushstack/terminal': 0.15.0 1391 | '@rushstack/ts-command-line': 4.23.5 1392 | lodash: 4.17.21 1393 | minimatch: 3.0.8 1394 | resolve: 1.22.10 1395 | semver: 7.5.4 1396 | source-map: 0.6.1 1397 | typescript: 5.7.3 1398 | transitivePeerDependencies: 1399 | - '@types/node' 1400 | 1401 | '@microsoft/tsdoc-config@0.17.1': 1402 | dependencies: 1403 | '@microsoft/tsdoc': 0.15.1 1404 | ajv: 8.12.0 1405 | jju: 1.4.0 1406 | resolve: 1.22.10 1407 | 1408 | '@microsoft/tsdoc@0.15.1': {} 1409 | 1410 | '@publint/pack@0.1.1': {} 1411 | 1412 | '@rollup/pluginutils@5.1.4(rollup@4.34.8)': 1413 | dependencies: 1414 | '@types/estree': 1.0.6 1415 | estree-walker: 2.0.2 1416 | picomatch: 4.0.2 1417 | optionalDependencies: 1418 | rollup: 4.34.8 1419 | 1420 | '@rollup/rollup-android-arm-eabi@4.34.8': 1421 | optional: true 1422 | 1423 | '@rollup/rollup-android-arm64@4.34.8': 1424 | optional: true 1425 | 1426 | '@rollup/rollup-darwin-arm64@4.34.8': 1427 | optional: true 1428 | 1429 | '@rollup/rollup-darwin-x64@4.34.8': 1430 | optional: true 1431 | 1432 | '@rollup/rollup-freebsd-arm64@4.34.8': 1433 | optional: true 1434 | 1435 | '@rollup/rollup-freebsd-x64@4.34.8': 1436 | optional: true 1437 | 1438 | '@rollup/rollup-linux-arm-gnueabihf@4.34.8': 1439 | optional: true 1440 | 1441 | '@rollup/rollup-linux-arm-musleabihf@4.34.8': 1442 | optional: true 1443 | 1444 | '@rollup/rollup-linux-arm64-gnu@4.34.8': 1445 | optional: true 1446 | 1447 | '@rollup/rollup-linux-arm64-musl@4.34.8': 1448 | optional: true 1449 | 1450 | '@rollup/rollup-linux-loongarch64-gnu@4.34.8': 1451 | optional: true 1452 | 1453 | '@rollup/rollup-linux-powerpc64le-gnu@4.34.8': 1454 | optional: true 1455 | 1456 | '@rollup/rollup-linux-riscv64-gnu@4.34.8': 1457 | optional: true 1458 | 1459 | '@rollup/rollup-linux-s390x-gnu@4.34.8': 1460 | optional: true 1461 | 1462 | '@rollup/rollup-linux-x64-gnu@4.34.8': 1463 | optional: true 1464 | 1465 | '@rollup/rollup-linux-x64-musl@4.34.8': 1466 | optional: true 1467 | 1468 | '@rollup/rollup-win32-arm64-msvc@4.34.8': 1469 | optional: true 1470 | 1471 | '@rollup/rollup-win32-ia32-msvc@4.34.8': 1472 | optional: true 1473 | 1474 | '@rollup/rollup-win32-x64-msvc@4.34.8': 1475 | optional: true 1476 | 1477 | '@rushstack/node-core-library@5.11.0': 1478 | dependencies: 1479 | ajv: 8.13.0 1480 | ajv-draft-04: 1.0.0(ajv@8.13.0) 1481 | ajv-formats: 3.0.1(ajv@8.13.0) 1482 | fs-extra: 11.3.0 1483 | import-lazy: 4.0.0 1484 | jju: 1.4.0 1485 | resolve: 1.22.10 1486 | semver: 7.5.4 1487 | 1488 | '@rushstack/rig-package@0.5.3': 1489 | dependencies: 1490 | resolve: 1.22.10 1491 | strip-json-comments: 3.1.1 1492 | 1493 | '@rushstack/terminal@0.15.0': 1494 | dependencies: 1495 | '@rushstack/node-core-library': 5.11.0 1496 | supports-color: 8.1.1 1497 | 1498 | '@rushstack/ts-command-line@4.23.5': 1499 | dependencies: 1500 | '@rushstack/terminal': 0.15.0 1501 | '@types/argparse': 1.0.38 1502 | argparse: 1.0.10 1503 | string-argv: 0.3.2 1504 | transitivePeerDependencies: 1505 | - '@types/node' 1506 | 1507 | '@sindresorhus/is@4.6.0': {} 1508 | 1509 | '@stripe/stripe-js@5.6.0': {} 1510 | 1511 | '@tailwindcss/node@4.0.8': 1512 | dependencies: 1513 | enhanced-resolve: 5.18.1 1514 | jiti: 2.4.2 1515 | tailwindcss: 4.0.8 1516 | 1517 | '@tailwindcss/oxide-android-arm64@4.0.8': 1518 | optional: true 1519 | 1520 | '@tailwindcss/oxide-darwin-arm64@4.0.8': 1521 | optional: true 1522 | 1523 | '@tailwindcss/oxide-darwin-x64@4.0.8': 1524 | optional: true 1525 | 1526 | '@tailwindcss/oxide-freebsd-x64@4.0.8': 1527 | optional: true 1528 | 1529 | '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.8': 1530 | optional: true 1531 | 1532 | '@tailwindcss/oxide-linux-arm64-gnu@4.0.8': 1533 | optional: true 1534 | 1535 | '@tailwindcss/oxide-linux-arm64-musl@4.0.8': 1536 | optional: true 1537 | 1538 | '@tailwindcss/oxide-linux-x64-gnu@4.0.8': 1539 | optional: true 1540 | 1541 | '@tailwindcss/oxide-linux-x64-musl@4.0.8': 1542 | optional: true 1543 | 1544 | '@tailwindcss/oxide-win32-arm64-msvc@4.0.8': 1545 | optional: true 1546 | 1547 | '@tailwindcss/oxide-win32-x64-msvc@4.0.8': 1548 | optional: true 1549 | 1550 | '@tailwindcss/oxide@4.0.8': 1551 | optionalDependencies: 1552 | '@tailwindcss/oxide-android-arm64': 4.0.8 1553 | '@tailwindcss/oxide-darwin-arm64': 4.0.8 1554 | '@tailwindcss/oxide-darwin-x64': 4.0.8 1555 | '@tailwindcss/oxide-freebsd-x64': 4.0.8 1556 | '@tailwindcss/oxide-linux-arm-gnueabihf': 4.0.8 1557 | '@tailwindcss/oxide-linux-arm64-gnu': 4.0.8 1558 | '@tailwindcss/oxide-linux-arm64-musl': 4.0.8 1559 | '@tailwindcss/oxide-linux-x64-gnu': 4.0.8 1560 | '@tailwindcss/oxide-linux-x64-musl': 4.0.8 1561 | '@tailwindcss/oxide-win32-arm64-msvc': 4.0.8 1562 | '@tailwindcss/oxide-win32-x64-msvc': 4.0.8 1563 | 1564 | '@tailwindcss/vite@4.0.8(vite@6.1.1(jiti@2.4.2)(lightningcss@1.29.1))': 1565 | dependencies: 1566 | '@tailwindcss/node': 4.0.8 1567 | '@tailwindcss/oxide': 4.0.8 1568 | lightningcss: 1.29.1 1569 | tailwindcss: 4.0.8 1570 | vite: 6.1.1(jiti@2.4.2)(lightningcss@1.29.1) 1571 | 1572 | '@types/argparse@1.0.38': {} 1573 | 1574 | '@types/estree@1.0.6': {} 1575 | 1576 | '@vitejs/plugin-vue@5.2.1(vite@6.1.1(jiti@2.4.2)(lightningcss@1.29.1))(vue@3.5.13(typescript@5.7.3))': 1577 | dependencies: 1578 | vite: 6.1.1(jiti@2.4.2)(lightningcss@1.29.1) 1579 | vue: 3.5.13(typescript@5.7.3) 1580 | 1581 | '@volar/language-core@2.4.11': 1582 | dependencies: 1583 | '@volar/source-map': 2.4.11 1584 | 1585 | '@volar/source-map@2.4.11': {} 1586 | 1587 | '@volar/typescript@2.4.11': 1588 | dependencies: 1589 | '@volar/language-core': 2.4.11 1590 | path-browserify: 1.0.1 1591 | vscode-uri: 3.1.0 1592 | 1593 | '@vue/compiler-core@3.5.13': 1594 | dependencies: 1595 | '@babel/parser': 7.26.9 1596 | '@vue/shared': 3.5.13 1597 | entities: 4.5.0 1598 | estree-walker: 2.0.2 1599 | source-map-js: 1.2.1 1600 | 1601 | '@vue/compiler-dom@3.5.13': 1602 | dependencies: 1603 | '@vue/compiler-core': 3.5.13 1604 | '@vue/shared': 3.5.13 1605 | 1606 | '@vue/compiler-sfc@3.5.13': 1607 | dependencies: 1608 | '@babel/parser': 7.26.9 1609 | '@vue/compiler-core': 3.5.13 1610 | '@vue/compiler-dom': 3.5.13 1611 | '@vue/compiler-ssr': 3.5.13 1612 | '@vue/shared': 3.5.13 1613 | estree-walker: 2.0.2 1614 | magic-string: 0.30.17 1615 | postcss: 8.5.3 1616 | source-map-js: 1.2.1 1617 | 1618 | '@vue/compiler-ssr@3.5.13': 1619 | dependencies: 1620 | '@vue/compiler-dom': 3.5.13 1621 | '@vue/shared': 3.5.13 1622 | 1623 | '@vue/compiler-vue2@2.7.16': 1624 | dependencies: 1625 | de-indent: 1.0.2 1626 | he: 1.2.0 1627 | 1628 | '@vue/language-core@2.2.0(typescript@5.7.3)': 1629 | dependencies: 1630 | '@volar/language-core': 2.4.11 1631 | '@vue/compiler-dom': 3.5.13 1632 | '@vue/compiler-vue2': 2.7.16 1633 | '@vue/shared': 3.5.13 1634 | alien-signals: 0.4.14 1635 | minimatch: 9.0.5 1636 | muggle-string: 0.4.1 1637 | path-browserify: 1.0.1 1638 | optionalDependencies: 1639 | typescript: 5.7.3 1640 | 1641 | '@vue/language-core@2.2.4(typescript@5.7.3)': 1642 | dependencies: 1643 | '@volar/language-core': 2.4.11 1644 | '@vue/compiler-dom': 3.5.13 1645 | '@vue/compiler-vue2': 2.7.16 1646 | '@vue/shared': 3.5.13 1647 | alien-signals: 1.0.4 1648 | minimatch: 9.0.5 1649 | muggle-string: 0.4.1 1650 | path-browserify: 1.0.1 1651 | optionalDependencies: 1652 | typescript: 5.7.3 1653 | 1654 | '@vue/reactivity@3.5.13': 1655 | dependencies: 1656 | '@vue/shared': 3.5.13 1657 | 1658 | '@vue/runtime-core@3.5.13': 1659 | dependencies: 1660 | '@vue/reactivity': 3.5.13 1661 | '@vue/shared': 3.5.13 1662 | 1663 | '@vue/runtime-dom@3.5.13': 1664 | dependencies: 1665 | '@vue/reactivity': 3.5.13 1666 | '@vue/runtime-core': 3.5.13 1667 | '@vue/shared': 3.5.13 1668 | csstype: 3.1.3 1669 | 1670 | '@vue/server-renderer@3.5.13(vue@3.5.13(typescript@5.7.3))': 1671 | dependencies: 1672 | '@vue/compiler-ssr': 3.5.13 1673 | '@vue/shared': 3.5.13 1674 | vue: 3.5.13(typescript@5.7.3) 1675 | 1676 | '@vue/shared@3.5.13': {} 1677 | 1678 | '@vue/tsconfig@0.7.0(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3))': 1679 | optionalDependencies: 1680 | typescript: 5.7.3 1681 | vue: 3.5.13(typescript@5.7.3) 1682 | 1683 | acorn@8.14.0: {} 1684 | 1685 | ajv-draft-04@1.0.0(ajv@8.13.0): 1686 | optionalDependencies: 1687 | ajv: 8.13.0 1688 | 1689 | ajv-formats@3.0.1(ajv@8.13.0): 1690 | optionalDependencies: 1691 | ajv: 8.13.0 1692 | 1693 | ajv@8.12.0: 1694 | dependencies: 1695 | fast-deep-equal: 3.1.3 1696 | json-schema-traverse: 1.0.0 1697 | require-from-string: 2.0.2 1698 | uri-js: 4.4.1 1699 | 1700 | ajv@8.13.0: 1701 | dependencies: 1702 | fast-deep-equal: 3.1.3 1703 | json-schema-traverse: 1.0.0 1704 | require-from-string: 2.0.2 1705 | uri-js: 4.4.1 1706 | 1707 | alien-signals@0.4.14: {} 1708 | 1709 | alien-signals@1.0.4: {} 1710 | 1711 | ansi-escapes@7.0.0: 1712 | dependencies: 1713 | environment: 1.1.0 1714 | 1715 | ansi-regex@5.0.1: {} 1716 | 1717 | ansi-regex@6.1.0: {} 1718 | 1719 | ansi-styles@4.3.0: 1720 | dependencies: 1721 | color-convert: 2.0.1 1722 | 1723 | any-promise@1.3.0: {} 1724 | 1725 | argparse@1.0.10: 1726 | dependencies: 1727 | sprintf-js: 1.0.3 1728 | 1729 | balanced-match@1.0.2: {} 1730 | 1731 | brace-expansion@1.1.11: 1732 | dependencies: 1733 | balanced-match: 1.0.2 1734 | concat-map: 0.0.1 1735 | 1736 | brace-expansion@2.0.1: 1737 | dependencies: 1738 | balanced-match: 1.0.2 1739 | 1740 | chalk@4.1.2: 1741 | dependencies: 1742 | ansi-styles: 4.3.0 1743 | supports-color: 7.2.0 1744 | 1745 | chalk@5.4.1: {} 1746 | 1747 | char-regex@1.0.2: {} 1748 | 1749 | cjs-module-lexer@1.4.3: {} 1750 | 1751 | cli-highlight@2.1.11: 1752 | dependencies: 1753 | chalk: 4.1.2 1754 | highlight.js: 10.7.3 1755 | mz: 2.7.0 1756 | parse5: 5.1.1 1757 | parse5-htmlparser2-tree-adapter: 6.0.1 1758 | yargs: 16.2.0 1759 | 1760 | cli-table3@0.6.5: 1761 | dependencies: 1762 | string-width: 4.2.3 1763 | optionalDependencies: 1764 | '@colors/colors': 1.5.0 1765 | 1766 | cliui@7.0.4: 1767 | dependencies: 1768 | string-width: 4.2.3 1769 | strip-ansi: 6.0.1 1770 | wrap-ansi: 7.0.0 1771 | 1772 | color-convert@2.0.1: 1773 | dependencies: 1774 | color-name: 1.1.4 1775 | 1776 | color-name@1.1.4: {} 1777 | 1778 | commander@10.0.1: {} 1779 | 1780 | compare-versions@6.1.1: {} 1781 | 1782 | concat-map@0.0.1: {} 1783 | 1784 | confbox@0.1.8: {} 1785 | 1786 | csstype@3.1.3: {} 1787 | 1788 | de-indent@1.0.2: {} 1789 | 1790 | debug@4.4.0: 1791 | dependencies: 1792 | ms: 2.1.3 1793 | 1794 | detect-libc@1.0.3: {} 1795 | 1796 | emoji-regex@8.0.0: {} 1797 | 1798 | emojilib@2.4.0: {} 1799 | 1800 | enhanced-resolve@5.18.1: 1801 | dependencies: 1802 | graceful-fs: 4.2.11 1803 | tapable: 2.2.1 1804 | 1805 | entities@4.5.0: {} 1806 | 1807 | environment@1.1.0: {} 1808 | 1809 | esbuild@0.24.2: 1810 | optionalDependencies: 1811 | '@esbuild/aix-ppc64': 0.24.2 1812 | '@esbuild/android-arm': 0.24.2 1813 | '@esbuild/android-arm64': 0.24.2 1814 | '@esbuild/android-x64': 0.24.2 1815 | '@esbuild/darwin-arm64': 0.24.2 1816 | '@esbuild/darwin-x64': 0.24.2 1817 | '@esbuild/freebsd-arm64': 0.24.2 1818 | '@esbuild/freebsd-x64': 0.24.2 1819 | '@esbuild/linux-arm': 0.24.2 1820 | '@esbuild/linux-arm64': 0.24.2 1821 | '@esbuild/linux-ia32': 0.24.2 1822 | '@esbuild/linux-loong64': 0.24.2 1823 | '@esbuild/linux-mips64el': 0.24.2 1824 | '@esbuild/linux-ppc64': 0.24.2 1825 | '@esbuild/linux-riscv64': 0.24.2 1826 | '@esbuild/linux-s390x': 0.24.2 1827 | '@esbuild/linux-x64': 0.24.2 1828 | '@esbuild/netbsd-arm64': 0.24.2 1829 | '@esbuild/netbsd-x64': 0.24.2 1830 | '@esbuild/openbsd-arm64': 0.24.2 1831 | '@esbuild/openbsd-x64': 0.24.2 1832 | '@esbuild/sunos-x64': 0.24.2 1833 | '@esbuild/win32-arm64': 0.24.2 1834 | '@esbuild/win32-ia32': 0.24.2 1835 | '@esbuild/win32-x64': 0.24.2 1836 | 1837 | escalade@3.2.0: {} 1838 | 1839 | estree-walker@2.0.2: {} 1840 | 1841 | fast-deep-equal@3.1.3: {} 1842 | 1843 | fflate@0.8.2: {} 1844 | 1845 | fs-extra@11.3.0: 1846 | dependencies: 1847 | graceful-fs: 4.2.11 1848 | jsonfile: 6.1.0 1849 | universalify: 2.0.1 1850 | 1851 | fsevents@2.3.3: 1852 | optional: true 1853 | 1854 | function-bind@1.1.2: {} 1855 | 1856 | get-caller-file@2.0.5: {} 1857 | 1858 | graceful-fs@4.2.11: {} 1859 | 1860 | has-flag@4.0.0: {} 1861 | 1862 | hasown@2.0.2: 1863 | dependencies: 1864 | function-bind: 1.1.2 1865 | 1866 | he@1.2.0: {} 1867 | 1868 | highlight.js@10.7.3: {} 1869 | 1870 | import-lazy@4.0.0: {} 1871 | 1872 | is-core-module@2.16.1: 1873 | dependencies: 1874 | hasown: 2.0.2 1875 | 1876 | is-fullwidth-code-point@3.0.0: {} 1877 | 1878 | jiti@2.4.2: {} 1879 | 1880 | jju@1.4.0: {} 1881 | 1882 | json-schema-traverse@1.0.0: {} 1883 | 1884 | jsonfile@6.1.0: 1885 | dependencies: 1886 | universalify: 2.0.1 1887 | optionalDependencies: 1888 | graceful-fs: 4.2.11 1889 | 1890 | kolorist@1.8.0: {} 1891 | 1892 | lightningcss-darwin-arm64@1.29.1: 1893 | optional: true 1894 | 1895 | lightningcss-darwin-x64@1.29.1: 1896 | optional: true 1897 | 1898 | lightningcss-freebsd-x64@1.29.1: 1899 | optional: true 1900 | 1901 | lightningcss-linux-arm-gnueabihf@1.29.1: 1902 | optional: true 1903 | 1904 | lightningcss-linux-arm64-gnu@1.29.1: 1905 | optional: true 1906 | 1907 | lightningcss-linux-arm64-musl@1.29.1: 1908 | optional: true 1909 | 1910 | lightningcss-linux-x64-gnu@1.29.1: 1911 | optional: true 1912 | 1913 | lightningcss-linux-x64-musl@1.29.1: 1914 | optional: true 1915 | 1916 | lightningcss-win32-arm64-msvc@1.29.1: 1917 | optional: true 1918 | 1919 | lightningcss-win32-x64-msvc@1.29.1: 1920 | optional: true 1921 | 1922 | lightningcss@1.29.1: 1923 | dependencies: 1924 | detect-libc: 1.0.3 1925 | optionalDependencies: 1926 | lightningcss-darwin-arm64: 1.29.1 1927 | lightningcss-darwin-x64: 1.29.1 1928 | lightningcss-freebsd-x64: 1.29.1 1929 | lightningcss-linux-arm-gnueabihf: 1.29.1 1930 | lightningcss-linux-arm64-gnu: 1.29.1 1931 | lightningcss-linux-arm64-musl: 1.29.1 1932 | lightningcss-linux-x64-gnu: 1.29.1 1933 | lightningcss-linux-x64-musl: 1.29.1 1934 | lightningcss-win32-arm64-msvc: 1.29.1 1935 | lightningcss-win32-x64-msvc: 1.29.1 1936 | 1937 | local-pkg@0.5.1: 1938 | dependencies: 1939 | mlly: 1.7.4 1940 | pkg-types: 1.3.1 1941 | 1942 | lodash@4.17.21: {} 1943 | 1944 | lru-cache@10.4.3: {} 1945 | 1946 | lru-cache@6.0.0: 1947 | dependencies: 1948 | yallist: 4.0.0 1949 | 1950 | magic-string@0.30.17: 1951 | dependencies: 1952 | '@jridgewell/sourcemap-codec': 1.5.0 1953 | 1954 | marked-terminal@7.3.0(marked@9.1.6): 1955 | dependencies: 1956 | ansi-escapes: 7.0.0 1957 | ansi-regex: 6.1.0 1958 | chalk: 5.4.1 1959 | cli-highlight: 2.1.11 1960 | cli-table3: 0.6.5 1961 | marked: 9.1.6 1962 | node-emoji: 2.2.0 1963 | supports-hyperlinks: 3.2.0 1964 | 1965 | marked@9.1.6: {} 1966 | 1967 | minimatch@3.0.8: 1968 | dependencies: 1969 | brace-expansion: 1.1.11 1970 | 1971 | minimatch@9.0.5: 1972 | dependencies: 1973 | brace-expansion: 2.0.1 1974 | 1975 | mlly@1.7.4: 1976 | dependencies: 1977 | acorn: 8.14.0 1978 | pathe: 2.0.3 1979 | pkg-types: 1.3.1 1980 | ufo: 1.5.4 1981 | 1982 | mri@1.2.0: {} 1983 | 1984 | ms@2.1.3: {} 1985 | 1986 | muggle-string@0.4.1: {} 1987 | 1988 | mz@2.7.0: 1989 | dependencies: 1990 | any-promise: 1.3.0 1991 | object-assign: 4.1.1 1992 | thenify-all: 1.6.0 1993 | 1994 | nanoid@3.3.8: {} 1995 | 1996 | node-emoji@2.2.0: 1997 | dependencies: 1998 | '@sindresorhus/is': 4.6.0 1999 | char-regex: 1.0.2 2000 | emojilib: 2.4.0 2001 | skin-tone: 2.0.0 2002 | 2003 | object-assign@4.1.1: {} 2004 | 2005 | package-manager-detector@0.2.9: {} 2006 | 2007 | parse5-htmlparser2-tree-adapter@6.0.1: 2008 | dependencies: 2009 | parse5: 6.0.1 2010 | 2011 | parse5@5.1.1: {} 2012 | 2013 | parse5@6.0.1: {} 2014 | 2015 | path-browserify@1.0.1: {} 2016 | 2017 | path-parse@1.0.7: {} 2018 | 2019 | pathe@2.0.3: {} 2020 | 2021 | picocolors@1.1.1: {} 2022 | 2023 | picomatch@4.0.2: {} 2024 | 2025 | pkg-types@1.3.1: 2026 | dependencies: 2027 | confbox: 0.1.8 2028 | mlly: 1.7.4 2029 | pathe: 2.0.3 2030 | 2031 | postcss@8.5.3: 2032 | dependencies: 2033 | nanoid: 3.3.8 2034 | picocolors: 1.1.1 2035 | source-map-js: 1.2.1 2036 | 2037 | publint@0.3.6: 2038 | dependencies: 2039 | '@publint/pack': 0.1.1 2040 | package-manager-detector: 0.2.9 2041 | picocolors: 1.1.1 2042 | sade: 1.8.1 2043 | 2044 | punycode@2.3.1: {} 2045 | 2046 | require-directory@2.1.1: {} 2047 | 2048 | require-from-string@2.0.2: {} 2049 | 2050 | resolve@1.22.10: 2051 | dependencies: 2052 | is-core-module: 2.16.1 2053 | path-parse: 1.0.7 2054 | supports-preserve-symlinks-flag: 1.0.0 2055 | 2056 | rollup@4.34.8: 2057 | dependencies: 2058 | '@types/estree': 1.0.6 2059 | optionalDependencies: 2060 | '@rollup/rollup-android-arm-eabi': 4.34.8 2061 | '@rollup/rollup-android-arm64': 4.34.8 2062 | '@rollup/rollup-darwin-arm64': 4.34.8 2063 | '@rollup/rollup-darwin-x64': 4.34.8 2064 | '@rollup/rollup-freebsd-arm64': 4.34.8 2065 | '@rollup/rollup-freebsd-x64': 4.34.8 2066 | '@rollup/rollup-linux-arm-gnueabihf': 4.34.8 2067 | '@rollup/rollup-linux-arm-musleabihf': 4.34.8 2068 | '@rollup/rollup-linux-arm64-gnu': 4.34.8 2069 | '@rollup/rollup-linux-arm64-musl': 4.34.8 2070 | '@rollup/rollup-linux-loongarch64-gnu': 4.34.8 2071 | '@rollup/rollup-linux-powerpc64le-gnu': 4.34.8 2072 | '@rollup/rollup-linux-riscv64-gnu': 4.34.8 2073 | '@rollup/rollup-linux-s390x-gnu': 4.34.8 2074 | '@rollup/rollup-linux-x64-gnu': 4.34.8 2075 | '@rollup/rollup-linux-x64-musl': 4.34.8 2076 | '@rollup/rollup-win32-arm64-msvc': 4.34.8 2077 | '@rollup/rollup-win32-ia32-msvc': 4.34.8 2078 | '@rollup/rollup-win32-x64-msvc': 4.34.8 2079 | fsevents: 2.3.3 2080 | 2081 | sade@1.8.1: 2082 | dependencies: 2083 | mri: 1.2.0 2084 | 2085 | semver@7.5.4: 2086 | dependencies: 2087 | lru-cache: 6.0.0 2088 | 2089 | semver@7.7.1: {} 2090 | 2091 | skin-tone@2.0.0: 2092 | dependencies: 2093 | unicode-emoji-modifier-base: 1.0.0 2094 | 2095 | source-map-js@1.2.1: {} 2096 | 2097 | source-map@0.6.1: {} 2098 | 2099 | sprintf-js@1.0.3: {} 2100 | 2101 | string-argv@0.3.2: {} 2102 | 2103 | string-width@4.2.3: 2104 | dependencies: 2105 | emoji-regex: 8.0.0 2106 | is-fullwidth-code-point: 3.0.0 2107 | strip-ansi: 6.0.1 2108 | 2109 | strip-ansi@6.0.1: 2110 | dependencies: 2111 | ansi-regex: 5.0.1 2112 | 2113 | strip-json-comments@3.1.1: {} 2114 | 2115 | supports-color@7.2.0: 2116 | dependencies: 2117 | has-flag: 4.0.0 2118 | 2119 | supports-color@8.1.1: 2120 | dependencies: 2121 | has-flag: 4.0.0 2122 | 2123 | supports-hyperlinks@3.2.0: 2124 | dependencies: 2125 | has-flag: 4.0.0 2126 | supports-color: 7.2.0 2127 | 2128 | supports-preserve-symlinks-flag@1.0.0: {} 2129 | 2130 | tailwindcss@4.0.8: {} 2131 | 2132 | tapable@2.2.1: {} 2133 | 2134 | thenify-all@1.6.0: 2135 | dependencies: 2136 | thenify: 3.3.1 2137 | 2138 | thenify@3.3.1: 2139 | dependencies: 2140 | any-promise: 1.3.0 2141 | 2142 | typescript@5.6.1-rc: {} 2143 | 2144 | typescript@5.7.3: {} 2145 | 2146 | ufo@1.5.4: {} 2147 | 2148 | unicode-emoji-modifier-base@1.0.0: {} 2149 | 2150 | universalify@2.0.1: {} 2151 | 2152 | uri-js@4.4.1: 2153 | dependencies: 2154 | punycode: 2.3.1 2155 | 2156 | validate-npm-package-name@5.0.1: {} 2157 | 2158 | vite-plugin-dts@4.5.0(rollup@4.34.8)(typescript@5.7.3)(vite@6.1.1(jiti@2.4.2)(lightningcss@1.29.1)): 2159 | dependencies: 2160 | '@microsoft/api-extractor': 7.50.1 2161 | '@rollup/pluginutils': 5.1.4(rollup@4.34.8) 2162 | '@volar/typescript': 2.4.11 2163 | '@vue/language-core': 2.2.0(typescript@5.7.3) 2164 | compare-versions: 6.1.1 2165 | debug: 4.4.0 2166 | kolorist: 1.8.0 2167 | local-pkg: 0.5.1 2168 | magic-string: 0.30.17 2169 | typescript: 5.7.3 2170 | optionalDependencies: 2171 | vite: 6.1.1(jiti@2.4.2)(lightningcss@1.29.1) 2172 | transitivePeerDependencies: 2173 | - '@types/node' 2174 | - rollup 2175 | - supports-color 2176 | 2177 | vite@6.1.1(jiti@2.4.2)(lightningcss@1.29.1): 2178 | dependencies: 2179 | esbuild: 0.24.2 2180 | postcss: 8.5.3 2181 | rollup: 4.34.8 2182 | optionalDependencies: 2183 | fsevents: 2.3.3 2184 | jiti: 2.4.2 2185 | lightningcss: 1.29.1 2186 | 2187 | vscode-uri@3.1.0: {} 2188 | 2189 | vue-tsc@2.2.4(typescript@5.7.3): 2190 | dependencies: 2191 | '@volar/typescript': 2.4.11 2192 | '@vue/language-core': 2.2.4(typescript@5.7.3) 2193 | typescript: 5.7.3 2194 | 2195 | vue@3.5.13(typescript@5.7.3): 2196 | dependencies: 2197 | '@vue/compiler-dom': 3.5.13 2198 | '@vue/compiler-sfc': 3.5.13 2199 | '@vue/runtime-dom': 3.5.13 2200 | '@vue/server-renderer': 3.5.13(vue@3.5.13(typescript@5.7.3)) 2201 | '@vue/shared': 3.5.13 2202 | optionalDependencies: 2203 | typescript: 5.7.3 2204 | 2205 | wrap-ansi@7.0.0: 2206 | dependencies: 2207 | ansi-styles: 4.3.0 2208 | string-width: 4.2.3 2209 | strip-ansi: 6.0.1 2210 | 2211 | y18n@5.0.8: {} 2212 | 2213 | yallist@4.0.0: {} 2214 | 2215 | yargs-parser@20.2.9: {} 2216 | 2217 | yargs@16.2.0: 2218 | dependencies: 2219 | cliui: 7.0.4 2220 | escalade: 3.2.0 2221 | get-caller-file: 2.0.5 2222 | require-directory: 2.1.1 2223 | string-width: 4.2.3 2224 | y18n: 5.0.8 2225 | yargs-parser: 20.2.9 2226 | -------------------------------------------------------------------------------- /src/components/StripeElement.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 96 | 97 | 109 | -------------------------------------------------------------------------------- /src/components/StripeElements.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 52 | -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- 1 | import StripeElement from "./components/StripeElement.vue" 2 | import StripeElements from "./components/StripeElements.vue" 3 | import { createElement, createElements, initStripe } from "./stripe-elements.ts" 4 | 5 | export { 6 | createElement, 7 | createElements, 8 | initStripe, 9 | StripeElement, 10 | StripeElements, 11 | } 12 | -------------------------------------------------------------------------------- /src/stripe-elements.ts: -------------------------------------------------------------------------------- 1 | import type { 2 | Stripe, 3 | StripeAddressElement, 4 | StripeAddressElementOptions, 5 | StripeAffirmMessageElement, 6 | StripeAffirmMessageElementOptions, 7 | StripeAfterpayClearpayMessageElement, 8 | StripeAfterpayClearpayMessageElementOptions, 9 | StripeAuBankAccountElement, 10 | StripeAuBankAccountElementOptions, 11 | StripeCardCvcElement, 12 | StripeCardCvcElementOptions, 13 | StripeCardElement, 14 | StripeCardElementOptions, 15 | StripeCardExpiryElement, 16 | StripeCardExpiryElementOptions, 17 | StripeCardNumberElement, 18 | StripeCardNumberElementOptions, 19 | StripeConstructorOptions, 20 | StripeCurrencySelectorElement, 21 | StripeElementType, 22 | StripeElements, 23 | StripeElementsOptions, 24 | StripeElementsOptionsClientSecret, 25 | StripeElementsOptionsMode, 26 | StripeEpsBankElement, 27 | StripeEpsBankElementOptions, 28 | StripeExpressCheckoutElement, 29 | StripeExpressCheckoutElementOptions, 30 | StripeFpxBankElement, 31 | StripeFpxBankElementOptions, 32 | StripeIbanElement, 33 | StripeIbanElementOptions, 34 | StripeIdealBankElement, 35 | StripeIdealBankElementOptions, 36 | StripeIssuingCardCopyButtonElement, 37 | StripeIssuingCardCopyButtonElementOptions, 38 | StripeIssuingCardCvcDisplayElement, 39 | StripeIssuingCardCvcDisplayElementOptions, 40 | StripeIssuingCardExpiryDisplayElement, 41 | StripeIssuingCardExpiryDisplayElementOptions, 42 | StripeIssuingCardNumberDisplayElement, 43 | StripeIssuingCardNumberDisplayElementOptions, 44 | StripeIssuingCardPinDisplayElement, 45 | StripeIssuingCardPinDisplayElementOptions, 46 | StripeLinkAuthenticationElement, 47 | StripeP24BankElement, 48 | StripeP24BankElementOptions, 49 | StripePaymentElement, 50 | StripePaymentElementOptions, 51 | StripePaymentMethodMessagingElement, 52 | StripePaymentMethodMessagingElementOptions, 53 | StripePaymentRequestButtonElement, 54 | StripePaymentRequestButtonElementOptions, 55 | StripeShippingAddressElement, 56 | StripeShippingAddressElementOptions, 57 | } from "@stripe/stripe-js" 58 | 59 | export type StripeElementOptions = 60 | | StripeAddressElementOptions 61 | | StripeAffirmMessageElementOptions 62 | | StripeAfterpayClearpayMessageElementOptions 63 | | StripeAuBankAccountElementOptions 64 | | StripeCardCvcElementOptions 65 | | StripeCardElementOptions 66 | | StripeCardExpiryElementOptions 67 | | StripeCardNumberElementOptions 68 | | StripeEpsBankElementOptions 69 | | StripeExpressCheckoutElementOptions 70 | | StripeFpxBankElementOptions 71 | | StripeIbanElementOptions 72 | | StripeIdealBankElementOptions 73 | | StripeIssuingCardCopyButtonElementOptions 74 | | StripeIssuingCardCvcDisplayElementOptions 75 | | StripeIssuingCardExpiryDisplayElementOptions 76 | | StripeIssuingCardNumberDisplayElementOptions 77 | | StripeIssuingCardPinDisplayElementOptions 78 | | StripeP24BankElementOptions 79 | | StripePaymentElementOptions 80 | | StripePaymentMethodMessagingElementOptions 81 | | StripePaymentRequestButtonElementOptions 82 | | StripeShippingAddressElementOptions 83 | 84 | export type StripeElementOptionsMap = { 85 | address: StripeAddressElementOptions 86 | affirmMessage: StripeAffirmMessageElementOptions 87 | afterpayClearpayMessage: StripeAfterpayClearpayMessageElementOptions 88 | auBankAccount: StripeAuBankAccountElementOptions 89 | card: StripeCardElementOptions 90 | cardCvc: StripeCardCvcElementOptions 91 | cardExpiry: StripeCardExpiryElementOptions 92 | cardNumber: StripeCardNumberElementOptions 93 | currencySelector?: undefined 94 | epsBank: StripeEpsBankElementOptions 95 | expressCheckout: StripeExpressCheckoutElementOptions 96 | fpxBank: StripeFpxBankElementOptions 97 | iban: StripeIbanElementOptions 98 | idealBank: StripeIdealBankElementOptions 99 | issuingCardCopyButton: StripeIssuingCardCopyButtonElementOptions 100 | issuingCardCvcDisplay: StripeIssuingCardCvcDisplayElementOptions 101 | issuingCardExpiryDisplay: StripeIssuingCardExpiryDisplayElementOptions 102 | issuingCardNumberDisplay: StripeIssuingCardNumberDisplayElementOptions 103 | issuingCardPinDisplay: StripeIssuingCardPinDisplayElementOptions 104 | linkAuthentication?: undefined 105 | p24Bank: StripeP24BankElementOptions 106 | payment: StripePaymentElementOptions 107 | paymentMethodMessaging: StripePaymentMethodMessagingElementOptions 108 | paymentRequestButton: StripePaymentRequestButtonElementOptions 109 | shippingAddress: StripeShippingAddressElementOptions 110 | } 111 | 112 | export type StripeElementMap = { 113 | address: StripeAddressElement 114 | affirmMessage: StripeAffirmMessageElement 115 | afterpayClearpayMessage: StripeAfterpayClearpayMessageElement 116 | auBankAccount: StripeAuBankAccountElement 117 | card: StripeCardElement 118 | cardCvc: StripeCardCvcElement 119 | cardExpiry: StripeCardExpiryElement 120 | cardNumber: StripeCardNumberElement 121 | currencySelector: StripeCurrencySelectorElement 122 | epsBank: StripeEpsBankElement 123 | expressCheckout: StripeExpressCheckoutElement 124 | fpxBank: StripeFpxBankElement 125 | iban: StripeIbanElement 126 | idealBank: StripeIdealBankElement 127 | issuingCardCopyButton: StripeIssuingCardCopyButtonElement 128 | issuingCardCvcDisplay: StripeIssuingCardCvcDisplayElement 129 | issuingCardExpiryDisplay: StripeIssuingCardExpiryDisplayElement 130 | issuingCardNumberDisplay: StripeIssuingCardNumberDisplayElement 131 | issuingCardPinDisplay: StripeIssuingCardPinDisplayElement 132 | linkAuthentication: StripeLinkAuthenticationElement 133 | p24Bank: StripeP24BankElement 134 | payment: StripePaymentElement 135 | paymentMethodMessaging: StripePaymentMethodMessagingElement 136 | paymentRequestButton: StripePaymentRequestButtonElement 137 | shippingAddress: StripeShippingAddressElement 138 | } 139 | 140 | export const ERRORS = { 141 | STRIPE_NOT_LOADED: 142 | "Stripe is not loaded. Include it as script or load using loadStripe method of @stripe/stripe-js", 143 | INSTANCE_NOT_DEFINED: 144 | "Stripe instance is not defined. Initialize Stripe before creating elements", 145 | ELEMENTS_NOT_DEFINED: 146 | "Elements object is not defined. You can't create stripe element without it", 147 | ELEMENT_TYPE_NOT_DEFINED: 148 | "elementType is required. You can't create stripe element without it", 149 | } 150 | 151 | export const initStripe = ( 152 | publishableKey: string, 153 | options?: StripeConstructorOptions, 154 | ): Stripe | undefined => { 155 | try { 156 | if (!window.Stripe) { 157 | throw new Error(ERRORS.STRIPE_NOT_LOADED) 158 | } 159 | const stripeInstance: Stripe = window.Stripe(publishableKey, options) 160 | return stripeInstance 161 | } catch (error) { 162 | console.error(error) 163 | } 164 | } 165 | 166 | export const createElements = ( 167 | instance?: Stripe, 168 | options?: StripeElementsOptions, 169 | ) => { 170 | try { 171 | if (!instance) { 172 | throw new Error(ERRORS.INSTANCE_NOT_DEFINED) 173 | } 174 | // Fix overload issue #ts2769 175 | return options?.clientSecret 176 | ? instance.elements(options as StripeElementsOptionsClientSecret) 177 | : instance.elements(options as StripeElementsOptionsMode) 178 | } catch (error) { 179 | console.error(error) 180 | } 181 | } 182 | 183 | type CreateFn = ( 184 | elementType: T, 185 | options?: StripeElementOptionsMap[T], 186 | ) => StripeElementMap[T] 187 | 188 | export const createElement = ( 189 | elements: StripeElements, 190 | elementType: T, 191 | options?: StripeElementOptionsMap[T], 192 | ) => { 193 | try { 194 | if (!elements) { 195 | throw new Error(ERRORS.ELEMENTS_NOT_DEFINED) 196 | } 197 | if (!elementType) { 198 | throw new Error(ERRORS.ELEMENT_TYPE_NOT_DEFINED) 199 | } 200 | // Type assertion to bypass the overloads issue 201 | const create: CreateFn = elements.create.bind(elements) as CreateFn 202 | const element = create(elementType, options) 203 | return element 204 | } catch (error) { 205 | console.error(error) 206 | } 207 | } 208 | -------------------------------------------------------------------------------- /src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /tests/unit/stripe-elements.spec.js: -------------------------------------------------------------------------------- 1 | import { 2 | ERRORS, 3 | createElement, 4 | createElements, 5 | initStripe, 6 | } from "../../src/stripe-elements" 7 | 8 | describe("initStripe", () => { 9 | test("no key, no options", () => { 10 | const result = initStripe() 11 | expect(result.message).toBe(ERRORS.STRIPE_NOT_LOADED) 12 | }) 13 | 14 | test("key, no options", () => { 15 | const key = "12345" 16 | const mockFn = jest.fn() 17 | window.Stripe = mockFn 18 | initStripe(key) 19 | expect(mockFn).toHaveBeenCalledTimes(1) 20 | expect(mockFn).toHaveBeenCalledWith(key, undefined) 21 | }) 22 | 23 | test("key and options", () => { 24 | const key = "12345" 25 | const options = { c: "d" } 26 | const mockFn = jest.fn() 27 | window.Stripe = mockFn 28 | initStripe(key, options) 29 | expect(mockFn).toHaveBeenCalledTimes(1) 30 | expect(mockFn).toHaveBeenCalledWith(key, options) 31 | }) 32 | }) 33 | 34 | describe("createElements", () => { 35 | test("no arguments", () => { 36 | const result = createElements() 37 | expect(result.message).toBe(ERRORS.INSTANCE_NOT_DEFINED) 38 | }) 39 | 40 | test("valid instance", () => { 41 | const mockFn = jest.fn() 42 | const instance = { elements: mockFn } 43 | createElements(instance) 44 | expect(mockFn).toHaveBeenCalledTimes(1) 45 | }) 46 | 47 | test("options passed", () => { 48 | const mockFn = jest.fn() 49 | const instance = { elements: mockFn } 50 | const options = { a: "b" } 51 | createElements(instance, options) 52 | expect(mockFn).toHaveBeenCalledTimes(1) 53 | expect(mockFn).toHaveBeenCalledWith(options) 54 | }) 55 | }) 56 | 57 | describe("createElement", () => { 58 | test("no arguments", () => { 59 | const result = createElement() 60 | expect(result.message).toBe(ERRORS.ELEMENTS_NOT_DEFINED) 61 | }) 62 | 63 | test("valid elements, no type", () => { 64 | const elements = {} 65 | const result = createElement(elements) 66 | expect(result.message).toBe(ERRORS.ELEMENT_TYPE_NOT_DEFINED) 67 | }) 68 | 69 | test("valid elements, valid type", () => { 70 | const mockFn = jest.fn() 71 | const elements = { create: mockFn } 72 | const type = "card" 73 | createElement(elements, type) 74 | expect(mockFn).toHaveBeenCalledTimes(1) 75 | }) 76 | 77 | test("options passed", () => { 78 | const mockFn = jest.fn() 79 | const elements = { create: mockFn } 80 | const type = "card" 81 | const options = { b: "c" } 82 | createElement(elements, type, options) 83 | expect(mockFn).toHaveBeenCalledTimes(1) 84 | expect(mockFn).toHaveBeenCalledWith(type, options) 85 | }) 86 | }) 87 | -------------------------------------------------------------------------------- /tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@vue/tsconfig/tsconfig.dom.json", 3 | "compilerOptions": { 4 | "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", 5 | "strict": true, 6 | "noUnusedLocals": true, 7 | "noUnusedParameters": true, 8 | "noFallthroughCasesInSwitch": true 9 | }, 10 | "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"] 11 | } 12 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "files": [], 3 | "references": [ 4 | { "path": "./tsconfig.app.json" }, 5 | { "path": "./tsconfig.node.json" } 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "allowImportingTsExtensions": true, 4 | "isolatedModules": true, 5 | "lib": ["ES2023"], 6 | "module": "ESNext", 7 | "moduleDetection": "force", 8 | "moduleResolution": "bundler", 9 | "noEmit": true, 10 | "noFallthroughCasesInSwitch": true, 11 | "noUncheckedSideEffectImports": true, 12 | "noUnusedLocals": true, 13 | "noUnusedParameters": true, 14 | "skipLibCheck": true, 15 | "strict": true, 16 | "target": "ES2022", 17 | "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo" 18 | }, 19 | "include": ["vite.config.ts"] 20 | } 21 | -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- 1 | import tailwindcss from "@tailwindcss/vite" 2 | import vue from "@vitejs/plugin-vue" 3 | import { defineConfig } from "vite" 4 | import dts from "vite-plugin-dts" 5 | 6 | export default defineConfig({ 7 | build: { 8 | lib: { 9 | name: "vue-stripe-js", 10 | fileName: "vue-stripe", 11 | formats: ["es", "umd", "cjs"], 12 | entry: ["src/main.ts"], 13 | }, 14 | rollupOptions: { 15 | // make sure to externalize deps that shouldn't be bundled 16 | // into your library 17 | external: ["vue", "@stripe/stripe-js"], 18 | output: { 19 | // Provide global variables to use in the UMD build 20 | // for externalized deps 21 | globals: { 22 | vue: "Vue", 23 | }, 24 | }, 25 | }, 26 | }, 27 | plugins: [ 28 | vue(), 29 | dts({ 30 | tsconfigPath: "./tsconfig.app.json", 31 | rollupTypes: true, 32 | }), 33 | tailwindcss(), 34 | ], 35 | }) 36 | -------------------------------------------------------------------------------- /vite.demo.config.ts: -------------------------------------------------------------------------------- 1 | import tailwindcss from "@tailwindcss/vite" 2 | import vue from "@vitejs/plugin-vue" 3 | import { defineConfig } from "vite" 4 | 5 | // https://vite.dev/config/ 6 | export default defineConfig({ 7 | plugins: [vue(), tailwindcss()], 8 | build: { 9 | outDir: "dist-demo", 10 | }, 11 | }) 12 | -------------------------------------------------------------------------------- /vue-stripe-js.code-workspace: -------------------------------------------------------------------------------- 1 | { 2 | "folders": [ 3 | { 4 | "path": "." 5 | } 6 | ], 7 | "settings": { 8 | "editor.defaultFormatter": "biomejs.biome", 9 | "editor.formatOnSave": true, 10 | "editor.formatOnPaste": false, 11 | "editor.rulers": [80], 12 | "editor.wordWrap": "on", 13 | "[typescript]": { 14 | "editor.defaultFormatter": "biomejs.biome" 15 | }, 16 | "html.format.wrapAttributes": "force-expand-multiline", 17 | "vue.server.hybridMode": "auto", 18 | "[vue]": { 19 | "editor.defaultFormatter": "biomejs.biome" 20 | }, 21 | "[jsonc]": { 22 | "editor.defaultFormatter": "biomejs.biome" 23 | }, 24 | "[json]": { 25 | "editor.defaultFormatter": "biomejs.biome" 26 | } 27 | } 28 | } 29 | --------------------------------------------------------------------------------