├── CHANGELOG.md ├── LICENSE.md ├── README.md ├── bin └── build.js ├── composer.json ├── config └── filament-announce.php ├── database └── migrations │ └── 2024_01_28_111422_create_announcements_table.php ├── package-lock.json ├── postcss.config.cjs ├── resources ├── css │ └── index.css ├── dist │ └── .gitkeep └── views │ ├── .gitkeep │ ├── announcement-wrapper.blade.php │ └── announcement.blade.php ├── src ├── Announce.php ├── Components │ └── Announcement.php ├── Facades │ └── FilamentAnnounce.php ├── FilamentAnnounce.php ├── FilamentAnnouncePlugin.php ├── FilamentAnnounceServiceProvider.php ├── Models │ └── Announcement.php ├── Notifications │ └── AnnounceNotification.php ├── Resources │ ├── AnnouncementResource.php │ └── AnnouncementResource │ │ └── Pages │ │ ├── CreateAnnouncement.php │ │ ├── ListAnnouncements.php │ │ └── ViewAnnouncement.php └── Testing │ └── TestsFilamentAnnounce.php └── stubs └── .gitkeep /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | All notable changes to `filament-dashboard-notification` will be documented in this file. 4 | 5 | ## 3.2.6 - 2025-02-28 6 | 7 | ### What's Changed 8 | 9 | * Bump dependabot/fetch-metadata from 2.1.0 to 2.2.0 by @dependabot in https://github.com/rupadana/filament-announce/pull/33 10 | * Update issue template links by @ziming in https://github.com/rupadana/filament-announce/pull/34 11 | * Bump dependabot/fetch-metadata from 2.2.0 to 2.3.0 by @dependabot in https://github.com/rupadana/filament-announce/pull/37 12 | * Bump aglipanci/laravel-pint-action from 2.4 to 2.5 by @dependabot in https://github.com/rupadana/filament-announce/pull/39 13 | * Compatibility with Laravel 12.x by @marcogermani87 in https://github.com/rupadana/filament-announce/pull/40 14 | 15 | ### New Contributors 16 | 17 | * @ziming made their first contribution in https://github.com/rupadana/filament-announce/pull/34 18 | * @marcogermani87 made their first contribution in https://github.com/rupadana/filament-announce/pull/40 19 | 20 | **Full Changelog**: https://github.com/rupadana/filament-announce/compare/3.2.5...3.2.6 21 | 22 | ## 3.2.5 - 2024-06-21 23 | 24 | ### What's Changed 25 | 26 | * Feature/add metadata by @NicholasMartens in https://github.com/rupadana/filament-announce/pull/32 27 | 28 | ### New Contributors 29 | 30 | * @NicholasMartens made their first contribution in https://github.com/rupadana/filament-announce/pull/32 31 | 32 | **Full Changelog**: https://github.com/rupadana/filament-announce/compare/3.2.4...3.2.5 33 | 34 | ## 3.2.4 - 2024-05-04 35 | 36 | ### What's Changed 37 | 38 | * Update README.md by @cenksen in https://github.com/rupadana/filament-announce/pull/23 39 | * feat: add translateLabel to resource component by @rupadana in https://github.com/rupadana/filament-announce/pull/29 40 | 41 | ### New Contributors 42 | 43 | * @cenksen made their first contribution in https://github.com/rupadana/filament-announce/pull/23 44 | 45 | **Full Changelog**: https://github.com/rupadana/filament-announce/compare/3.2.3...3.2.4 46 | 47 | ## 3.2.3 - 2024-03-21 48 | 49 | ### What's Changed 50 | 51 | * Update README.md by @hussain4real in https://github.com/rupadana/filament-announce/pull/20 52 | * Bump tsickert/discord-webhook from 5.3.0 to 5.4.0 by @dependabot in https://github.com/rupadana/filament-announce/pull/21 53 | * Replace spread operator with union operator by @CharlieEtienne in https://github.com/rupadana/filament-announce/pull/22 54 | 55 | ### New Contributors 56 | 57 | * @hussain4real made their first contribution in https://github.com/rupadana/filament-announce/pull/20 58 | 59 | **Full Changelog**: https://github.com/rupadana/filament-announce/compare/3.2.2...3.2.3 60 | 61 | ## 3.2.2 - 2024-03-17 62 | 63 | ### What's Changed 64 | 65 | * Add usingResource method by @CharlieEtienne in https://github.com/rupadana/filament-announce/pull/19 66 | 67 | ### New Contributors 68 | 69 | * @CharlieEtienne made their first contribution in https://github.com/rupadana/filament-announce/pull/19 70 | 71 | **Full Changelog**: https://github.com/rupadana/filament-announce/compare/3.2.1...3.2.2 72 | 73 | ## 3.2.1 - 2024-03-16 74 | 75 | ### What's Changed 76 | 77 | * Bump ramsey/composer-install from 2 to 3 by @dependabot in https://github.com/rupadana/filament-announce/pull/16 78 | 79 | ### New Contributors 80 | 81 | * @dependabot made their first contribution in https://github.com/rupadana/filament-announce/pull/16 82 | 83 | **Full Changelog**: https://github.com/rupadana/filament-announce/compare/3.2.0...3.2.1 84 | 85 | ## 3.2.0 - 2024-03-16 86 | 87 | **Full Changelog**: https://github.com/rupadana/filament-announce/compare/3.1.8...3.2.0 88 | 89 | ## 3.1.8 - 2024-03-09 90 | 91 | **Full Changelog**: https://github.com/rupadana/filament-announce/compare/3.1.4...3.1.8 92 | 93 | ## 3.1.7 - 2024-02-21 94 | 95 | ### What's Changed 96 | 97 | * Revert to version 3.1.4 by @rupadana in https://github.com/rupadana/filament-announce/pull/9 98 | 99 | **Full Changelog**: https://github.com/rupadana/filament-announce/compare/3.1.3...3.1.7 100 | 101 | ## 3.1.3 - 2024-01-28 102 | 103 | ### What's Changed 104 | 105 | * add alignment feature by @rupadana in https://github.com/rupadana/filament-announce/pull/7 106 | * fix php unit by @rupadana in https://github.com/rupadana/filament-announce/pull/8 107 | 108 | **Full Changelog**: https://github.com/rupadana/filament-announce/compare/3.1.2...3.1.3 109 | 110 | ## 3.1.2 - 2024-01-28 111 | 112 | ### What's Changed 113 | 114 | * Add actions by @rupadana in https://github.com/rupadana/filament-announce/pull/4 115 | * can add actions + fixes & updates by @margarizaldi in https://github.com/rupadana/filament-announce/pull/3 116 | * Add resource by @rupadana in https://github.com/rupadana/filament-announce/pull/5 117 | 118 | ### New Contributors 119 | 120 | * @rupadana made their first contribution in https://github.com/rupadana/filament-announce/pull/4 121 | * @margarizaldi made their first contribution in https://github.com/rupadana/filament-announce/pull/3 122 | 123 | **Full Changelog**: https://github.com/rupadana/filament-announce/compare/3.1.0-dev...3.1.2 124 | 125 | ## 3.1.0-dev - 2024-01-24 126 | 127 | **Full Changelog**: https://github.com/rupadana/filament-announce/commits/3.1.0-dev 128 | 129 | ## 3.0.0-dev - 2024-01-22 130 | 131 | **Full Changelog**: https://github.com/rupadana/filament-dashboard-notification/commits/3.0.0-dev 132 | 133 | ## 1.0.0 - 202X-XX-XX 134 | 135 | - initial release 136 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) rupadana 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all 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, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Filament Announce 2 | 3 | [![Latest Version on Packagist](https://img.shields.io/packagist/v/rupadana/filament-announce.svg?style=flat-square)](https://packagist.org/packages/rupadana/filament-announce) 4 | [![GitHub Tests Action Status](https://img.shields.io/github/actions/workflow/status/rupadana/filament-announce/run-tests.yml?branch=main&label=tests&style=flat-square)](https://github.com/rupadana/filament-announce/actions?query=workflow%3Arun-tests+branch%3Amain) 5 | [![Total Downloads](https://img.shields.io/packagist/dt/rupadana/filament-announce.svg?style=flat-square)](https://packagist.org/packages/rupadana/filament-announce) 6 | 7 | 8 | 9 | The easiest way to shout announcements in filament! 10 | 11 | ![](https://res.cloudinary.com/rupadana/image/upload/v1706100163/Screenshot_2024-01-24_at_20.14.43_focxhf.png) 12 | 13 | ## Installation 14 | 15 | You can install the package via composer: 16 | 17 | ```bash 18 | composer require rupadana/filament-announce 19 | ``` 20 | 21 | ```bash 22 | # Laravel 11 and higher 23 | php artisan make:notifications-table 24 | 25 | # Laravel 10 26 | php artisan notifications:table 27 | ``` 28 | 29 | Run migration 30 | 31 | ```bash 32 | php artisan migrate 33 | ``` 34 | 35 | Optionally, you can publish the views using 36 | 37 | ```bash 38 | php artisan vendor:publish --tag="filament-announce-views" 39 | ``` 40 | 41 | publish config 42 | 43 | ```bash 44 | php artisan vendor:publish --tag="filament-announce-config" 45 | ``` 46 | 47 | ```php 48 | return [ 49 | 'navigation' => [ 50 | 'group' => '', 51 | 'sort' => 1 52 | ], 53 | 'can_access' => [ 54 | 'role' => ['super_admin'] 55 | ] 56 | ]; 57 | ``` 58 | 59 | 60 | ## Usage 61 | You must enable Announce by adding `FilamentAnnouncePlugin` class to your Filament Panel's plugin() or plugins([]) method: 62 | 63 | ```php 64 | use Rupadana\FilamentAnnounce\FilamentAnnouncePlugin; 65 | use Filament\Support\Colors\Color; 66 | class CustomersPanelProvider extends PanelProvider 67 | { 68 | public function panel(Panel $panel): Panel 69 | { 70 | return $panel 71 | ... 72 | ->plugin( 73 | FilamentAnnouncePlugin::make() 74 | ->pollingInterval('30s') // optional, by default it is set to null 75 | ->defaultColor(Color::Blue) // optional, by default it is set to "primary" 76 | 77 | ) 78 | } 79 | } 80 | 81 | ``` 82 | To override the plugins announcementResource with your own custom resource, you should append `usingResource` method when registering the plugin: 83 | 84 | ```php 85 | use Rupadana\FilamentAnnounce\FilamentAnnouncePlugin; 86 | use Filament\Support\Colors\Color; 87 | class CustomersPanelProvider extends PanelProvider 88 | { 89 | public function panel(Panel $panel): Panel 90 | { 91 | return $panel 92 | ... 93 | ->plugin( 94 | FilamentAnnouncePlugin::make() 95 | ->usingResource(MyCustomAnnouncementResource::class) 96 | ->pollingInterval('30s') // optional, by default it is set to null 97 | ->defaultColor(Color::Blue) // optional, by default it is set to "primary" 98 | 99 | ) 100 | } 101 | } 102 | 103 | ``` 104 | 105 | Now you can announce whatever to users: 106 | 107 | ```php 108 | use App\Models\User; 109 | use Rupadana\FilamentAnnounce\Announce; 110 | 111 | Announce::make() 112 | ->title('Big News!') 113 | ->icon('heroicon-o-megaphone') 114 | ->body('Filament can now show very important message to specific users!') 115 | ->disableCloseButton() // Optional, if you want ur announcement discloseable 116 | ->announceTo(User::all()); 117 | ``` 118 | 119 | ## Title and Body Alignment 120 | 121 | By default, the alignments will be `start` and you might want to adjust them: 122 | 123 | ```php 124 | use App\Models\User; 125 | use Filament\Support\Enums\Alignment; 126 | use Rupadana\FilamentAnnounce\Announce; 127 | 128 | Announce::make() 129 | ->title('Big News!') 130 | ->icon('heroicon-o-megaphone') 131 | ->body('Filament can now show very important message to specific users!') 132 | ->alignment(Alignment::Center) // this will set both title and body alignments (common alignment) 133 | ->titleAlignment(Alignment::Start) // this will set title alignment and take precedence over common alignment methods 134 | ->bodyAlignment(Alignment::Start) // this will set body alignment and take precedence over common alignment methods 135 | ->actions([ 136 | Action::make('view') 137 | ->button(), 138 | Action::make('undo') 139 | ->color('gray'), 140 | ]) 141 | ->announceTo(User::all()); 142 | ``` 143 | You can also use `alignStart()`, `alignCenter()`, `alignEnd()`, `alignJustify()`, `alignBetween()`, `alignLeft()` and `alignRight()` for your convenience. 144 | 145 | 146 | ## Add Actions to Announce 147 | 148 | ![](https://private-user-images.githubusercontent.com/26832856/300244433-61677a79-9706-41c4-be86-19173484f943.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MDY0Mzc3MzEsIm5iZiI6MTcwNjQzNzQzMSwicGF0aCI6Ii8yNjgzMjg1Ni8zMDAyNDQ0MzMtNjE2NzdhNzktOTcwNi00MWM0LWJlODYtMTkxNzM0ODRmOTQzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDAxMjglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwMTI4VDEwMjM1MVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWU2NTRjZjIyYjA3NjcwMDExODJjZTJjYzQwMTVmMDU2OTk4YWM0N2EyMWY4MjI1MjA4MmNmZmQzNTE2NWU2ZjImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.x16B1wDTY2klrlWWdeWo6LK3O82E3_3i89uetbiRYl4) 149 | 150 | 151 | Since Announce extends Filament Notification, you can add Filament Notification Actions to your announcements: 152 | 153 | ```php 154 | use App\Models\User; 155 | use Rupadana\FilamentAnnounce\Announce; 156 | 157 | Announce::make() 158 | ->title('Big News!') 159 | ->icon('heroicon-o-megaphone') 160 | ->body('Filament can now show very important message to specific users!') 161 | ->actions([ 162 | Action::make('view') 163 | ->button(), 164 | Action::make('undo') 165 | ->color('gray'), 166 | ]) 167 | ->announceTo(User::all()); 168 | ``` 169 | 170 | Read more about [Notification Action](https://filamentphp.com/docs/3.x/notifications/sending-notifications#adding-actions-to-notifications). 171 | 172 | ## Announcement Resource 173 | 174 | ![](https://github.com/rupadana/filament-announce/assets/34137674/af4e43a3-0093-49ab-b493-504d7607fb2b) 175 | 176 | 177 | ## Todo 178 | - [x] Can add actions to every announcement 179 | - [x] Provide a resource/action to send announcement 180 | - [ ] Add banner-like implementations for global announcement 181 | - [ ] Set end date or time so it will disapear automaticly 182 | 183 | ## Testing 184 | 185 | ```bash 186 | composer test 187 | ``` 188 | 189 | ## Changelog 190 | 191 | Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently. 192 | 193 | ## Contributing 194 | 195 | Please see [CONTRIBUTING](.github/CONTRIBUTING.md) for details. 196 | 197 | ## Security Vulnerabilities 198 | 199 | Please review [our security policy](../../security/policy) on how to report security vulnerabilities. 200 | 201 | ## Credits 202 | 203 | - [Rupadana](https://github.com/rupadana) 204 | - [margarizaldi](https://github.com/margarizaldi) 205 | - [All Contributors](../../contributors) 206 | 207 | ## License 208 | 209 | The MIT License (MIT). Please see [License File](LICENSE.md) for more information. 210 | -------------------------------------------------------------------------------- /bin/build.js: -------------------------------------------------------------------------------- 1 | import esbuild from 'esbuild' 2 | 3 | const isDev = process.argv.includes('--dev') 4 | 5 | async function compile(options) { 6 | const context = await esbuild.context(options) 7 | 8 | if (isDev) { 9 | await context.watch() 10 | } else { 11 | await context.rebuild() 12 | await context.dispose() 13 | } 14 | } 15 | 16 | const defaultOptions = { 17 | define: { 18 | 'process.env.NODE_ENV': isDev ? `'development'` : `'production'`, 19 | }, 20 | bundle: true, 21 | mainFields: ['module', 'main'], 22 | platform: 'neutral', 23 | sourcemap: isDev ? 'inline' : false, 24 | sourcesContent: isDev, 25 | treeShaking: true, 26 | target: ['es2020'], 27 | minify: !isDev, 28 | plugins: [{ 29 | name: 'watchPlugin', 30 | setup: function (build) { 31 | build.onStart(() => { 32 | console.log(`Build started at ${new Date(Date.now()).toLocaleTimeString()}: ${build.initialOptions.outfile}`) 33 | }) 34 | 35 | build.onEnd((result) => { 36 | if (result.errors.length > 0) { 37 | console.log(`Build failed at ${new Date(Date.now()).toLocaleTimeString()}: ${build.initialOptions.outfile}`, result.errors) 38 | } else { 39 | console.log(`Build finished at ${new Date(Date.now()).toLocaleTimeString()}: ${build.initialOptions.outfile}`) 40 | } 41 | }) 42 | } 43 | }], 44 | } 45 | 46 | compile({ 47 | ...defaultOptions, 48 | entryPoints: ['./resources/js/index.js'], 49 | outfile: './resources/dist/filament-announce.js', 50 | }) 51 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "rupadana/filament-announce", 3 | "description": "An easy way to shout your exceptional offerings to the potential users", 4 | "keywords": [ 5 | "rupadana", 6 | "laravel", 7 | "filament", 8 | "filamentphp", 9 | "filament-announce" 10 | ], 11 | "homepage": "https://github.com/rupadana/filament-announce", 12 | "support": { 13 | "issues": "https://github.com/rupadana/filament-announce/issues", 14 | "source": "https://github.com/rupadana/filament-announce" 15 | }, 16 | "license": "MIT", 17 | "authors": [ 18 | { 19 | "name": "Rupadana", 20 | "email": "rupadanawayan@gmail.com", 21 | "role": "Developer" 22 | } 23 | ], 24 | "require": { 25 | "php": "^8.1", 26 | "filament/filament": "^3.0", 27 | "spatie/laravel-package-tools": "^1.15.0", 28 | "illuminate/contracts": "^10.0|^11.0|^12.0", 29 | "guava/filament-icon-picker": "^2.0" 30 | }, 31 | "require-dev": { 32 | "nunomaduro/collision": "^7.9|^8.0", 33 | "orchestra/testbench": "^8.0|^9.0|^10.0", 34 | "pestphp/pest": "^2.0|^3.7", 35 | "pestphp/pest-plugin-arch": "^2.0|^3.0", 36 | "pestphp/pest-plugin-laravel": "^2.0|^3.1", 37 | "phpunit/phpunit": "^10.0.17" 38 | }, 39 | "autoload": { 40 | "psr-4": { 41 | "Rupadana\\FilamentAnnounce\\": "src/" 42 | } 43 | }, 44 | "autoload-dev": { 45 | "psr-4": { 46 | "Rupadana\\FilamentAnnounce\\Tests\\": "tests/" 47 | } 48 | }, 49 | "scripts": { 50 | "post-autoload-dump": "@php ./vendor/bin/testbench package:discover --ansi", 51 | "analyse": "vendor/bin/phpstan analyse", 52 | "test": "vendor/bin/pest", 53 | "test-coverage": "vendor/bin/pest --coverage", 54 | "format": "vendor/bin/pint" 55 | }, 56 | "config": { 57 | "sort-packages": true, 58 | "allow-plugins": { 59 | "pestphp/pest-plugin": true, 60 | "phpstan/extension-installer": true 61 | }, 62 | "platform": { 63 | "ext-pcntl": "8.0", 64 | "ext-posix": "8.0" 65 | } 66 | }, 67 | "extra": { 68 | "laravel": { 69 | "providers": [ 70 | "Rupadana\\FilamentAnnounce\\FilamentAnnounceServiceProvider" 71 | ], 72 | "aliases": { 73 | "FilamentAnnounce": "Rupadana\\FilamentAnnounce\\Facades\\FilamentAnnounce" 74 | } 75 | } 76 | }, 77 | "minimum-stability": "dev", 78 | "prefer-stable": true 79 | } 80 | -------------------------------------------------------------------------------- /config/filament-announce.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'group' => '', 6 | 'sort' => 1, 7 | ], 8 | 'can_access' => [ 9 | 'role' => ['super_admin'], 10 | ], 11 | ]; 12 | -------------------------------------------------------------------------------- /database/migrations/2024_01_28_111422_create_announcements_table.php: -------------------------------------------------------------------------------- 1 | id(); 16 | $table->string('name')->nullable(); 17 | $table->string('color')->nullable(); 18 | $table->string('custom_color')->nullable(); 19 | $table->string('title')->nullable(); 20 | $table->text('body')->nullable(); 21 | $table->string('icon')->nullable(); 22 | $table->text('users')->nullable(); 23 | $table->timestamps(); 24 | }); 25 | } 26 | 27 | /** 28 | * Reverse the migrations. 29 | */ 30 | public function down(): void 31 | { 32 | Schema::dropIfExists('announcements'); 33 | } 34 | }; 35 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "filament-dashboard-notification", 3 | "lockfileVersion": 3, 4 | "requires": true, 5 | "packages": { 6 | "": { 7 | "devDependencies": { 8 | "@awcodes/filament-plugin-purge": "^1.1.1", 9 | "@tailwindcss/forms": "^0.5.4", 10 | "@tailwindcss/typography": "^0.5.9", 11 | "autoprefixer": "^10.4.14", 12 | "esbuild": "^0.19.2", 13 | "npm-run-all": "^4.1.5", 14 | "postcss": "^8.4.26", 15 | "postcss-import": "^15.1.0", 16 | "prettier": "^2.7.1", 17 | "prettier-plugin-tailwindcss": "^0.1.13", 18 | "tailwindcss": "^3.3.3" 19 | } 20 | }, 21 | "node_modules/@alloc/quick-lru": { 22 | "version": "5.2.0", 23 | "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", 24 | "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", 25 | "dev": true, 26 | "engines": { 27 | "node": ">=10" 28 | }, 29 | "funding": { 30 | "url": "https://github.com/sponsors/sindresorhus" 31 | } 32 | }, 33 | "node_modules/@awcodes/filament-plugin-purge": { 34 | "version": "1.1.2", 35 | "resolved": "https://registry.npmjs.org/@awcodes/filament-plugin-purge/-/filament-plugin-purge-1.1.2.tgz", 36 | "integrity": "sha512-eFFGA3IPSya8ldUQWUMHk5HxidU/XnL3fEGIdX6Lza/bz4U7hgOdGT64CxLKbhEF1eFJbM7hFsxAfrfZm85x5g==", 37 | "dev": true, 38 | "dependencies": { 39 | "axios": "^1.4.0", 40 | "chalk": "^5.0.1", 41 | "css-tree": "^2.2.1", 42 | "ora": "^6.1.2" 43 | }, 44 | "bin": { 45 | "filament-purge": "filament-purge.js" 46 | } 47 | }, 48 | "node_modules/@esbuild/aix-ppc64": { 49 | "version": "0.19.12", 50 | "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", 51 | "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", 52 | "cpu": [ 53 | "ppc64" 54 | ], 55 | "dev": true, 56 | "optional": true, 57 | "os": [ 58 | "aix" 59 | ], 60 | "engines": { 61 | "node": ">=12" 62 | } 63 | }, 64 | "node_modules/@esbuild/android-arm": { 65 | "version": "0.19.12", 66 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", 67 | "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", 68 | "cpu": [ 69 | "arm" 70 | ], 71 | "dev": true, 72 | "optional": true, 73 | "os": [ 74 | "android" 75 | ], 76 | "engines": { 77 | "node": ">=12" 78 | } 79 | }, 80 | "node_modules/@esbuild/android-arm64": { 81 | "version": "0.19.12", 82 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", 83 | "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", 84 | "cpu": [ 85 | "arm64" 86 | ], 87 | "dev": true, 88 | "optional": true, 89 | "os": [ 90 | "android" 91 | ], 92 | "engines": { 93 | "node": ">=12" 94 | } 95 | }, 96 | "node_modules/@esbuild/android-x64": { 97 | "version": "0.19.12", 98 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", 99 | "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", 100 | "cpu": [ 101 | "x64" 102 | ], 103 | "dev": true, 104 | "optional": true, 105 | "os": [ 106 | "android" 107 | ], 108 | "engines": { 109 | "node": ">=12" 110 | } 111 | }, 112 | "node_modules/@esbuild/darwin-arm64": { 113 | "version": "0.19.12", 114 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", 115 | "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", 116 | "cpu": [ 117 | "arm64" 118 | ], 119 | "dev": true, 120 | "optional": true, 121 | "os": [ 122 | "darwin" 123 | ], 124 | "engines": { 125 | "node": ">=12" 126 | } 127 | }, 128 | "node_modules/@esbuild/darwin-x64": { 129 | "version": "0.19.12", 130 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", 131 | "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", 132 | "cpu": [ 133 | "x64" 134 | ], 135 | "dev": true, 136 | "optional": true, 137 | "os": [ 138 | "darwin" 139 | ], 140 | "engines": { 141 | "node": ">=12" 142 | } 143 | }, 144 | "node_modules/@esbuild/freebsd-arm64": { 145 | "version": "0.19.12", 146 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", 147 | "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", 148 | "cpu": [ 149 | "arm64" 150 | ], 151 | "dev": true, 152 | "optional": true, 153 | "os": [ 154 | "freebsd" 155 | ], 156 | "engines": { 157 | "node": ">=12" 158 | } 159 | }, 160 | "node_modules/@esbuild/freebsd-x64": { 161 | "version": "0.19.12", 162 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", 163 | "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", 164 | "cpu": [ 165 | "x64" 166 | ], 167 | "dev": true, 168 | "optional": true, 169 | "os": [ 170 | "freebsd" 171 | ], 172 | "engines": { 173 | "node": ">=12" 174 | } 175 | }, 176 | "node_modules/@esbuild/linux-arm": { 177 | "version": "0.19.12", 178 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", 179 | "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", 180 | "cpu": [ 181 | "arm" 182 | ], 183 | "dev": true, 184 | "optional": true, 185 | "os": [ 186 | "linux" 187 | ], 188 | "engines": { 189 | "node": ">=12" 190 | } 191 | }, 192 | "node_modules/@esbuild/linux-arm64": { 193 | "version": "0.19.12", 194 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", 195 | "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", 196 | "cpu": [ 197 | "arm64" 198 | ], 199 | "dev": true, 200 | "optional": true, 201 | "os": [ 202 | "linux" 203 | ], 204 | "engines": { 205 | "node": ">=12" 206 | } 207 | }, 208 | "node_modules/@esbuild/linux-ia32": { 209 | "version": "0.19.12", 210 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", 211 | "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", 212 | "cpu": [ 213 | "ia32" 214 | ], 215 | "dev": true, 216 | "optional": true, 217 | "os": [ 218 | "linux" 219 | ], 220 | "engines": { 221 | "node": ">=12" 222 | } 223 | }, 224 | "node_modules/@esbuild/linux-loong64": { 225 | "version": "0.19.12", 226 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", 227 | "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", 228 | "cpu": [ 229 | "loong64" 230 | ], 231 | "dev": true, 232 | "optional": true, 233 | "os": [ 234 | "linux" 235 | ], 236 | "engines": { 237 | "node": ">=12" 238 | } 239 | }, 240 | "node_modules/@esbuild/linux-mips64el": { 241 | "version": "0.19.12", 242 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", 243 | "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", 244 | "cpu": [ 245 | "mips64el" 246 | ], 247 | "dev": true, 248 | "optional": true, 249 | "os": [ 250 | "linux" 251 | ], 252 | "engines": { 253 | "node": ">=12" 254 | } 255 | }, 256 | "node_modules/@esbuild/linux-ppc64": { 257 | "version": "0.19.12", 258 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", 259 | "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", 260 | "cpu": [ 261 | "ppc64" 262 | ], 263 | "dev": true, 264 | "optional": true, 265 | "os": [ 266 | "linux" 267 | ], 268 | "engines": { 269 | "node": ">=12" 270 | } 271 | }, 272 | "node_modules/@esbuild/linux-riscv64": { 273 | "version": "0.19.12", 274 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", 275 | "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", 276 | "cpu": [ 277 | "riscv64" 278 | ], 279 | "dev": true, 280 | "optional": true, 281 | "os": [ 282 | "linux" 283 | ], 284 | "engines": { 285 | "node": ">=12" 286 | } 287 | }, 288 | "node_modules/@esbuild/linux-s390x": { 289 | "version": "0.19.12", 290 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", 291 | "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", 292 | "cpu": [ 293 | "s390x" 294 | ], 295 | "dev": true, 296 | "optional": true, 297 | "os": [ 298 | "linux" 299 | ], 300 | "engines": { 301 | "node": ">=12" 302 | } 303 | }, 304 | "node_modules/@esbuild/linux-x64": { 305 | "version": "0.19.12", 306 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", 307 | "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", 308 | "cpu": [ 309 | "x64" 310 | ], 311 | "dev": true, 312 | "optional": true, 313 | "os": [ 314 | "linux" 315 | ], 316 | "engines": { 317 | "node": ">=12" 318 | } 319 | }, 320 | "node_modules/@esbuild/netbsd-x64": { 321 | "version": "0.19.12", 322 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", 323 | "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", 324 | "cpu": [ 325 | "x64" 326 | ], 327 | "dev": true, 328 | "optional": true, 329 | "os": [ 330 | "netbsd" 331 | ], 332 | "engines": { 333 | "node": ">=12" 334 | } 335 | }, 336 | "node_modules/@esbuild/openbsd-x64": { 337 | "version": "0.19.12", 338 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", 339 | "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", 340 | "cpu": [ 341 | "x64" 342 | ], 343 | "dev": true, 344 | "optional": true, 345 | "os": [ 346 | "openbsd" 347 | ], 348 | "engines": { 349 | "node": ">=12" 350 | } 351 | }, 352 | "node_modules/@esbuild/sunos-x64": { 353 | "version": "0.19.12", 354 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", 355 | "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", 356 | "cpu": [ 357 | "x64" 358 | ], 359 | "dev": true, 360 | "optional": true, 361 | "os": [ 362 | "sunos" 363 | ], 364 | "engines": { 365 | "node": ">=12" 366 | } 367 | }, 368 | "node_modules/@esbuild/win32-arm64": { 369 | "version": "0.19.12", 370 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", 371 | "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", 372 | "cpu": [ 373 | "arm64" 374 | ], 375 | "dev": true, 376 | "optional": true, 377 | "os": [ 378 | "win32" 379 | ], 380 | "engines": { 381 | "node": ">=12" 382 | } 383 | }, 384 | "node_modules/@esbuild/win32-ia32": { 385 | "version": "0.19.12", 386 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", 387 | "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", 388 | "cpu": [ 389 | "ia32" 390 | ], 391 | "dev": true, 392 | "optional": true, 393 | "os": [ 394 | "win32" 395 | ], 396 | "engines": { 397 | "node": ">=12" 398 | } 399 | }, 400 | "node_modules/@esbuild/win32-x64": { 401 | "version": "0.19.12", 402 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", 403 | "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", 404 | "cpu": [ 405 | "x64" 406 | ], 407 | "dev": true, 408 | "optional": true, 409 | "os": [ 410 | "win32" 411 | ], 412 | "engines": { 413 | "node": ">=12" 414 | } 415 | }, 416 | "node_modules/@isaacs/cliui": { 417 | "version": "8.0.2", 418 | "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", 419 | "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", 420 | "dev": true, 421 | "dependencies": { 422 | "string-width": "^5.1.2", 423 | "string-width-cjs": "npm:string-width@^4.2.0", 424 | "strip-ansi": "^7.0.1", 425 | "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", 426 | "wrap-ansi": "^8.1.0", 427 | "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" 428 | }, 429 | "engines": { 430 | "node": ">=12" 431 | } 432 | }, 433 | "node_modules/@jridgewell/gen-mapping": { 434 | "version": "0.3.3", 435 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", 436 | "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", 437 | "dev": true, 438 | "dependencies": { 439 | "@jridgewell/set-array": "^1.0.1", 440 | "@jridgewell/sourcemap-codec": "^1.4.10", 441 | "@jridgewell/trace-mapping": "^0.3.9" 442 | }, 443 | "engines": { 444 | "node": ">=6.0.0" 445 | } 446 | }, 447 | "node_modules/@jridgewell/resolve-uri": { 448 | "version": "3.1.1", 449 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", 450 | "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", 451 | "dev": true, 452 | "engines": { 453 | "node": ">=6.0.0" 454 | } 455 | }, 456 | "node_modules/@jridgewell/set-array": { 457 | "version": "1.1.2", 458 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", 459 | "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", 460 | "dev": true, 461 | "engines": { 462 | "node": ">=6.0.0" 463 | } 464 | }, 465 | "node_modules/@jridgewell/sourcemap-codec": { 466 | "version": "1.4.15", 467 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", 468 | "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", 469 | "dev": true 470 | }, 471 | "node_modules/@jridgewell/trace-mapping": { 472 | "version": "0.3.22", 473 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz", 474 | "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==", 475 | "dev": true, 476 | "dependencies": { 477 | "@jridgewell/resolve-uri": "^3.1.0", 478 | "@jridgewell/sourcemap-codec": "^1.4.14" 479 | } 480 | }, 481 | "node_modules/@nodelib/fs.scandir": { 482 | "version": "2.1.5", 483 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 484 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 485 | "dev": true, 486 | "dependencies": { 487 | "@nodelib/fs.stat": "2.0.5", 488 | "run-parallel": "^1.1.9" 489 | }, 490 | "engines": { 491 | "node": ">= 8" 492 | } 493 | }, 494 | "node_modules/@nodelib/fs.stat": { 495 | "version": "2.0.5", 496 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 497 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 498 | "dev": true, 499 | "engines": { 500 | "node": ">= 8" 501 | } 502 | }, 503 | "node_modules/@nodelib/fs.walk": { 504 | "version": "1.2.8", 505 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 506 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 507 | "dev": true, 508 | "dependencies": { 509 | "@nodelib/fs.scandir": "2.1.5", 510 | "fastq": "^1.6.0" 511 | }, 512 | "engines": { 513 | "node": ">= 8" 514 | } 515 | }, 516 | "node_modules/@pkgjs/parseargs": { 517 | "version": "0.11.0", 518 | "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", 519 | "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", 520 | "dev": true, 521 | "optional": true, 522 | "engines": { 523 | "node": ">=14" 524 | } 525 | }, 526 | "node_modules/@tailwindcss/forms": { 527 | "version": "0.5.7", 528 | "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.7.tgz", 529 | "integrity": "sha512-QE7X69iQI+ZXwldE+rzasvbJiyV/ju1FGHH0Qn2W3FKbuYtqp8LKcy6iSw79fVUT5/Vvf+0XgLCeYVG+UV6hOw==", 530 | "dev": true, 531 | "dependencies": { 532 | "mini-svg-data-uri": "^1.2.3" 533 | }, 534 | "peerDependencies": { 535 | "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1" 536 | } 537 | }, 538 | "node_modules/@tailwindcss/typography": { 539 | "version": "0.5.10", 540 | "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.10.tgz", 541 | "integrity": "sha512-Pe8BuPJQJd3FfRnm6H0ulKIGoMEQS+Vq01R6M5aCrFB/ccR/shT+0kXLjouGC1gFLm9hopTFN+DMP0pfwRWzPw==", 542 | "dev": true, 543 | "dependencies": { 544 | "lodash.castarray": "^4.4.0", 545 | "lodash.isplainobject": "^4.0.6", 546 | "lodash.merge": "^4.6.2", 547 | "postcss-selector-parser": "6.0.10" 548 | }, 549 | "peerDependencies": { 550 | "tailwindcss": ">=3.0.0 || insiders" 551 | } 552 | }, 553 | "node_modules/ansi-regex": { 554 | "version": "6.0.1", 555 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", 556 | "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", 557 | "dev": true, 558 | "engines": { 559 | "node": ">=12" 560 | }, 561 | "funding": { 562 | "url": "https://github.com/chalk/ansi-regex?sponsor=1" 563 | } 564 | }, 565 | "node_modules/ansi-styles": { 566 | "version": "3.2.1", 567 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 568 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 569 | "dev": true, 570 | "dependencies": { 571 | "color-convert": "^1.9.0" 572 | }, 573 | "engines": { 574 | "node": ">=4" 575 | } 576 | }, 577 | "node_modules/any-promise": { 578 | "version": "1.3.0", 579 | "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", 580 | "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", 581 | "dev": true 582 | }, 583 | "node_modules/anymatch": { 584 | "version": "3.1.3", 585 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", 586 | "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", 587 | "dev": true, 588 | "dependencies": { 589 | "normalize-path": "^3.0.0", 590 | "picomatch": "^2.0.4" 591 | }, 592 | "engines": { 593 | "node": ">= 8" 594 | } 595 | }, 596 | "node_modules/arg": { 597 | "version": "5.0.2", 598 | "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", 599 | "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", 600 | "dev": true 601 | }, 602 | "node_modules/array-buffer-byte-length": { 603 | "version": "1.0.0", 604 | "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", 605 | "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", 606 | "dev": true, 607 | "dependencies": { 608 | "call-bind": "^1.0.2", 609 | "is-array-buffer": "^3.0.1" 610 | }, 611 | "funding": { 612 | "url": "https://github.com/sponsors/ljharb" 613 | } 614 | }, 615 | "node_modules/arraybuffer.prototype.slice": { 616 | "version": "1.0.2", 617 | "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", 618 | "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", 619 | "dev": true, 620 | "dependencies": { 621 | "array-buffer-byte-length": "^1.0.0", 622 | "call-bind": "^1.0.2", 623 | "define-properties": "^1.2.0", 624 | "es-abstract": "^1.22.1", 625 | "get-intrinsic": "^1.2.1", 626 | "is-array-buffer": "^3.0.2", 627 | "is-shared-array-buffer": "^1.0.2" 628 | }, 629 | "engines": { 630 | "node": ">= 0.4" 631 | }, 632 | "funding": { 633 | "url": "https://github.com/sponsors/ljharb" 634 | } 635 | }, 636 | "node_modules/asynckit": { 637 | "version": "0.4.0", 638 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 639 | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", 640 | "dev": true 641 | }, 642 | "node_modules/autoprefixer": { 643 | "version": "10.4.17", 644 | "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz", 645 | "integrity": "sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==", 646 | "dev": true, 647 | "funding": [ 648 | { 649 | "type": "opencollective", 650 | "url": "https://opencollective.com/postcss/" 651 | }, 652 | { 653 | "type": "tidelift", 654 | "url": "https://tidelift.com/funding/github/npm/autoprefixer" 655 | }, 656 | { 657 | "type": "github", 658 | "url": "https://github.com/sponsors/ai" 659 | } 660 | ], 661 | "dependencies": { 662 | "browserslist": "^4.22.2", 663 | "caniuse-lite": "^1.0.30001578", 664 | "fraction.js": "^4.3.7", 665 | "normalize-range": "^0.1.2", 666 | "picocolors": "^1.0.0", 667 | "postcss-value-parser": "^4.2.0" 668 | }, 669 | "bin": { 670 | "autoprefixer": "bin/autoprefixer" 671 | }, 672 | "engines": { 673 | "node": "^10 || ^12 || >=14" 674 | }, 675 | "peerDependencies": { 676 | "postcss": "^8.1.0" 677 | } 678 | }, 679 | "node_modules/available-typed-arrays": { 680 | "version": "1.0.5", 681 | "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", 682 | "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", 683 | "dev": true, 684 | "engines": { 685 | "node": ">= 0.4" 686 | }, 687 | "funding": { 688 | "url": "https://github.com/sponsors/ljharb" 689 | } 690 | }, 691 | "node_modules/axios": { 692 | "version": "1.6.5", 693 | "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.5.tgz", 694 | "integrity": "sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==", 695 | "dev": true, 696 | "dependencies": { 697 | "follow-redirects": "^1.15.4", 698 | "form-data": "^4.0.0", 699 | "proxy-from-env": "^1.1.0" 700 | } 701 | }, 702 | "node_modules/balanced-match": { 703 | "version": "1.0.2", 704 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 705 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 706 | "dev": true 707 | }, 708 | "node_modules/base64-js": { 709 | "version": "1.5.1", 710 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 711 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", 712 | "dev": true, 713 | "funding": [ 714 | { 715 | "type": "github", 716 | "url": "https://github.com/sponsors/feross" 717 | }, 718 | { 719 | "type": "patreon", 720 | "url": "https://www.patreon.com/feross" 721 | }, 722 | { 723 | "type": "consulting", 724 | "url": "https://feross.org/support" 725 | } 726 | ] 727 | }, 728 | "node_modules/binary-extensions": { 729 | "version": "2.2.0", 730 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", 731 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", 732 | "dev": true, 733 | "engines": { 734 | "node": ">=8" 735 | } 736 | }, 737 | "node_modules/bl": { 738 | "version": "5.1.0", 739 | "resolved": "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz", 740 | "integrity": "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==", 741 | "dev": true, 742 | "dependencies": { 743 | "buffer": "^6.0.3", 744 | "inherits": "^2.0.4", 745 | "readable-stream": "^3.4.0" 746 | } 747 | }, 748 | "node_modules/brace-expansion": { 749 | "version": "1.1.11", 750 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 751 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 752 | "dev": true, 753 | "dependencies": { 754 | "balanced-match": "^1.0.0", 755 | "concat-map": "0.0.1" 756 | } 757 | }, 758 | "node_modules/braces": { 759 | "version": "3.0.2", 760 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", 761 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", 762 | "dev": true, 763 | "dependencies": { 764 | "fill-range": "^7.0.1" 765 | }, 766 | "engines": { 767 | "node": ">=8" 768 | } 769 | }, 770 | "node_modules/browserslist": { 771 | "version": "4.22.2", 772 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", 773 | "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", 774 | "dev": true, 775 | "funding": [ 776 | { 777 | "type": "opencollective", 778 | "url": "https://opencollective.com/browserslist" 779 | }, 780 | { 781 | "type": "tidelift", 782 | "url": "https://tidelift.com/funding/github/npm/browserslist" 783 | }, 784 | { 785 | "type": "github", 786 | "url": "https://github.com/sponsors/ai" 787 | } 788 | ], 789 | "dependencies": { 790 | "caniuse-lite": "^1.0.30001565", 791 | "electron-to-chromium": "^1.4.601", 792 | "node-releases": "^2.0.14", 793 | "update-browserslist-db": "^1.0.13" 794 | }, 795 | "bin": { 796 | "browserslist": "cli.js" 797 | }, 798 | "engines": { 799 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" 800 | } 801 | }, 802 | "node_modules/buffer": { 803 | "version": "6.0.3", 804 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", 805 | "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", 806 | "dev": true, 807 | "funding": [ 808 | { 809 | "type": "github", 810 | "url": "https://github.com/sponsors/feross" 811 | }, 812 | { 813 | "type": "patreon", 814 | "url": "https://www.patreon.com/feross" 815 | }, 816 | { 817 | "type": "consulting", 818 | "url": "https://feross.org/support" 819 | } 820 | ], 821 | "dependencies": { 822 | "base64-js": "^1.3.1", 823 | "ieee754": "^1.2.1" 824 | } 825 | }, 826 | "node_modules/call-bind": { 827 | "version": "1.0.5", 828 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", 829 | "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", 830 | "dev": true, 831 | "dependencies": { 832 | "function-bind": "^1.1.2", 833 | "get-intrinsic": "^1.2.1", 834 | "set-function-length": "^1.1.1" 835 | }, 836 | "funding": { 837 | "url": "https://github.com/sponsors/ljharb" 838 | } 839 | }, 840 | "node_modules/camelcase-css": { 841 | "version": "2.0.1", 842 | "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", 843 | "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", 844 | "dev": true, 845 | "engines": { 846 | "node": ">= 6" 847 | } 848 | }, 849 | "node_modules/caniuse-lite": { 850 | "version": "1.0.30001579", 851 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001579.tgz", 852 | "integrity": "sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA==", 853 | "dev": true, 854 | "funding": [ 855 | { 856 | "type": "opencollective", 857 | "url": "https://opencollective.com/browserslist" 858 | }, 859 | { 860 | "type": "tidelift", 861 | "url": "https://tidelift.com/funding/github/npm/caniuse-lite" 862 | }, 863 | { 864 | "type": "github", 865 | "url": "https://github.com/sponsors/ai" 866 | } 867 | ] 868 | }, 869 | "node_modules/chalk": { 870 | "version": "5.3.0", 871 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", 872 | "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", 873 | "dev": true, 874 | "engines": { 875 | "node": "^12.17.0 || ^14.13 || >=16.0.0" 876 | }, 877 | "funding": { 878 | "url": "https://github.com/chalk/chalk?sponsor=1" 879 | } 880 | }, 881 | "node_modules/chokidar": { 882 | "version": "3.5.3", 883 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", 884 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", 885 | "dev": true, 886 | "funding": [ 887 | { 888 | "type": "individual", 889 | "url": "https://paulmillr.com/funding/" 890 | } 891 | ], 892 | "dependencies": { 893 | "anymatch": "~3.1.2", 894 | "braces": "~3.0.2", 895 | "glob-parent": "~5.1.2", 896 | "is-binary-path": "~2.1.0", 897 | "is-glob": "~4.0.1", 898 | "normalize-path": "~3.0.0", 899 | "readdirp": "~3.6.0" 900 | }, 901 | "engines": { 902 | "node": ">= 8.10.0" 903 | }, 904 | "optionalDependencies": { 905 | "fsevents": "~2.3.2" 906 | } 907 | }, 908 | "node_modules/chokidar/node_modules/glob-parent": { 909 | "version": "5.1.2", 910 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 911 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 912 | "dev": true, 913 | "dependencies": { 914 | "is-glob": "^4.0.1" 915 | }, 916 | "engines": { 917 | "node": ">= 6" 918 | } 919 | }, 920 | "node_modules/cli-cursor": { 921 | "version": "4.0.0", 922 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", 923 | "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", 924 | "dev": true, 925 | "dependencies": { 926 | "restore-cursor": "^4.0.0" 927 | }, 928 | "engines": { 929 | "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 930 | }, 931 | "funding": { 932 | "url": "https://github.com/sponsors/sindresorhus" 933 | } 934 | }, 935 | "node_modules/cli-spinners": { 936 | "version": "2.9.2", 937 | "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", 938 | "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", 939 | "dev": true, 940 | "engines": { 941 | "node": ">=6" 942 | }, 943 | "funding": { 944 | "url": "https://github.com/sponsors/sindresorhus" 945 | } 946 | }, 947 | "node_modules/clone": { 948 | "version": "1.0.4", 949 | "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", 950 | "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", 951 | "dev": true, 952 | "engines": { 953 | "node": ">=0.8" 954 | } 955 | }, 956 | "node_modules/color-convert": { 957 | "version": "1.9.3", 958 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 959 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 960 | "dev": true, 961 | "dependencies": { 962 | "color-name": "1.1.3" 963 | } 964 | }, 965 | "node_modules/color-name": { 966 | "version": "1.1.3", 967 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 968 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", 969 | "dev": true 970 | }, 971 | "node_modules/combined-stream": { 972 | "version": "1.0.8", 973 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 974 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 975 | "dev": true, 976 | "dependencies": { 977 | "delayed-stream": "~1.0.0" 978 | }, 979 | "engines": { 980 | "node": ">= 0.8" 981 | } 982 | }, 983 | "node_modules/commander": { 984 | "version": "4.1.1", 985 | "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", 986 | "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", 987 | "dev": true, 988 | "engines": { 989 | "node": ">= 6" 990 | } 991 | }, 992 | "node_modules/concat-map": { 993 | "version": "0.0.1", 994 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 995 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", 996 | "dev": true 997 | }, 998 | "node_modules/cross-spawn": { 999 | "version": "6.0.5", 1000 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", 1001 | "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", 1002 | "dev": true, 1003 | "dependencies": { 1004 | "nice-try": "^1.0.4", 1005 | "path-key": "^2.0.1", 1006 | "semver": "^5.5.0", 1007 | "shebang-command": "^1.2.0", 1008 | "which": "^1.2.9" 1009 | }, 1010 | "engines": { 1011 | "node": ">=4.8" 1012 | } 1013 | }, 1014 | "node_modules/css-tree": { 1015 | "version": "2.3.1", 1016 | "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", 1017 | "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", 1018 | "dev": true, 1019 | "dependencies": { 1020 | "mdn-data": "2.0.30", 1021 | "source-map-js": "^1.0.1" 1022 | }, 1023 | "engines": { 1024 | "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" 1025 | } 1026 | }, 1027 | "node_modules/cssesc": { 1028 | "version": "3.0.0", 1029 | "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", 1030 | "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", 1031 | "dev": true, 1032 | "bin": { 1033 | "cssesc": "bin/cssesc" 1034 | }, 1035 | "engines": { 1036 | "node": ">=4" 1037 | } 1038 | }, 1039 | "node_modules/defaults": { 1040 | "version": "1.0.4", 1041 | "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", 1042 | "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", 1043 | "dev": true, 1044 | "dependencies": { 1045 | "clone": "^1.0.2" 1046 | }, 1047 | "funding": { 1048 | "url": "https://github.com/sponsors/sindresorhus" 1049 | } 1050 | }, 1051 | "node_modules/define-data-property": { 1052 | "version": "1.1.1", 1053 | "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", 1054 | "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", 1055 | "dev": true, 1056 | "dependencies": { 1057 | "get-intrinsic": "^1.2.1", 1058 | "gopd": "^1.0.1", 1059 | "has-property-descriptors": "^1.0.0" 1060 | }, 1061 | "engines": { 1062 | "node": ">= 0.4" 1063 | } 1064 | }, 1065 | "node_modules/define-properties": { 1066 | "version": "1.2.1", 1067 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", 1068 | "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", 1069 | "dev": true, 1070 | "dependencies": { 1071 | "define-data-property": "^1.0.1", 1072 | "has-property-descriptors": "^1.0.0", 1073 | "object-keys": "^1.1.1" 1074 | }, 1075 | "engines": { 1076 | "node": ">= 0.4" 1077 | }, 1078 | "funding": { 1079 | "url": "https://github.com/sponsors/ljharb" 1080 | } 1081 | }, 1082 | "node_modules/delayed-stream": { 1083 | "version": "1.0.0", 1084 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 1085 | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", 1086 | "dev": true, 1087 | "engines": { 1088 | "node": ">=0.4.0" 1089 | } 1090 | }, 1091 | "node_modules/didyoumean": { 1092 | "version": "1.2.2", 1093 | "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", 1094 | "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", 1095 | "dev": true 1096 | }, 1097 | "node_modules/dlv": { 1098 | "version": "1.1.3", 1099 | "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", 1100 | "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", 1101 | "dev": true 1102 | }, 1103 | "node_modules/eastasianwidth": { 1104 | "version": "0.2.0", 1105 | "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", 1106 | "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", 1107 | "dev": true 1108 | }, 1109 | "node_modules/electron-to-chromium": { 1110 | "version": "1.4.643", 1111 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.643.tgz", 1112 | "integrity": "sha512-QHscvvS7gt155PtoRC0dR2ilhL8E9LHhfTQEq1uD5AL0524rBLAwpAREFH06f87/e45B9XkR6Ki5dbhbCsVEIg==", 1113 | "dev": true 1114 | }, 1115 | "node_modules/emoji-regex": { 1116 | "version": "9.2.2", 1117 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", 1118 | "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", 1119 | "dev": true 1120 | }, 1121 | "node_modules/error-ex": { 1122 | "version": "1.3.2", 1123 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", 1124 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", 1125 | "dev": true, 1126 | "dependencies": { 1127 | "is-arrayish": "^0.2.1" 1128 | } 1129 | }, 1130 | "node_modules/es-abstract": { 1131 | "version": "1.22.3", 1132 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", 1133 | "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", 1134 | "dev": true, 1135 | "dependencies": { 1136 | "array-buffer-byte-length": "^1.0.0", 1137 | "arraybuffer.prototype.slice": "^1.0.2", 1138 | "available-typed-arrays": "^1.0.5", 1139 | "call-bind": "^1.0.5", 1140 | "es-set-tostringtag": "^2.0.1", 1141 | "es-to-primitive": "^1.2.1", 1142 | "function.prototype.name": "^1.1.6", 1143 | "get-intrinsic": "^1.2.2", 1144 | "get-symbol-description": "^1.0.0", 1145 | "globalthis": "^1.0.3", 1146 | "gopd": "^1.0.1", 1147 | "has-property-descriptors": "^1.0.0", 1148 | "has-proto": "^1.0.1", 1149 | "has-symbols": "^1.0.3", 1150 | "hasown": "^2.0.0", 1151 | "internal-slot": "^1.0.5", 1152 | "is-array-buffer": "^3.0.2", 1153 | "is-callable": "^1.2.7", 1154 | "is-negative-zero": "^2.0.2", 1155 | "is-regex": "^1.1.4", 1156 | "is-shared-array-buffer": "^1.0.2", 1157 | "is-string": "^1.0.7", 1158 | "is-typed-array": "^1.1.12", 1159 | "is-weakref": "^1.0.2", 1160 | "object-inspect": "^1.13.1", 1161 | "object-keys": "^1.1.1", 1162 | "object.assign": "^4.1.4", 1163 | "regexp.prototype.flags": "^1.5.1", 1164 | "safe-array-concat": "^1.0.1", 1165 | "safe-regex-test": "^1.0.0", 1166 | "string.prototype.trim": "^1.2.8", 1167 | "string.prototype.trimend": "^1.0.7", 1168 | "string.prototype.trimstart": "^1.0.7", 1169 | "typed-array-buffer": "^1.0.0", 1170 | "typed-array-byte-length": "^1.0.0", 1171 | "typed-array-byte-offset": "^1.0.0", 1172 | "typed-array-length": "^1.0.4", 1173 | "unbox-primitive": "^1.0.2", 1174 | "which-typed-array": "^1.1.13" 1175 | }, 1176 | "engines": { 1177 | "node": ">= 0.4" 1178 | }, 1179 | "funding": { 1180 | "url": "https://github.com/sponsors/ljharb" 1181 | } 1182 | }, 1183 | "node_modules/es-set-tostringtag": { 1184 | "version": "2.0.2", 1185 | "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", 1186 | "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", 1187 | "dev": true, 1188 | "dependencies": { 1189 | "get-intrinsic": "^1.2.2", 1190 | "has-tostringtag": "^1.0.0", 1191 | "hasown": "^2.0.0" 1192 | }, 1193 | "engines": { 1194 | "node": ">= 0.4" 1195 | } 1196 | }, 1197 | "node_modules/es-to-primitive": { 1198 | "version": "1.2.1", 1199 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", 1200 | "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", 1201 | "dev": true, 1202 | "dependencies": { 1203 | "is-callable": "^1.1.4", 1204 | "is-date-object": "^1.0.1", 1205 | "is-symbol": "^1.0.2" 1206 | }, 1207 | "engines": { 1208 | "node": ">= 0.4" 1209 | }, 1210 | "funding": { 1211 | "url": "https://github.com/sponsors/ljharb" 1212 | } 1213 | }, 1214 | "node_modules/esbuild": { 1215 | "version": "0.19.12", 1216 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", 1217 | "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", 1218 | "dev": true, 1219 | "hasInstallScript": true, 1220 | "bin": { 1221 | "esbuild": "bin/esbuild" 1222 | }, 1223 | "engines": { 1224 | "node": ">=12" 1225 | }, 1226 | "optionalDependencies": { 1227 | "@esbuild/aix-ppc64": "0.19.12", 1228 | "@esbuild/android-arm": "0.19.12", 1229 | "@esbuild/android-arm64": "0.19.12", 1230 | "@esbuild/android-x64": "0.19.12", 1231 | "@esbuild/darwin-arm64": "0.19.12", 1232 | "@esbuild/darwin-x64": "0.19.12", 1233 | "@esbuild/freebsd-arm64": "0.19.12", 1234 | "@esbuild/freebsd-x64": "0.19.12", 1235 | "@esbuild/linux-arm": "0.19.12", 1236 | "@esbuild/linux-arm64": "0.19.12", 1237 | "@esbuild/linux-ia32": "0.19.12", 1238 | "@esbuild/linux-loong64": "0.19.12", 1239 | "@esbuild/linux-mips64el": "0.19.12", 1240 | "@esbuild/linux-ppc64": "0.19.12", 1241 | "@esbuild/linux-riscv64": "0.19.12", 1242 | "@esbuild/linux-s390x": "0.19.12", 1243 | "@esbuild/linux-x64": "0.19.12", 1244 | "@esbuild/netbsd-x64": "0.19.12", 1245 | "@esbuild/openbsd-x64": "0.19.12", 1246 | "@esbuild/sunos-x64": "0.19.12", 1247 | "@esbuild/win32-arm64": "0.19.12", 1248 | "@esbuild/win32-ia32": "0.19.12", 1249 | "@esbuild/win32-x64": "0.19.12" 1250 | } 1251 | }, 1252 | "node_modules/escalade": { 1253 | "version": "3.1.1", 1254 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", 1255 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", 1256 | "dev": true, 1257 | "engines": { 1258 | "node": ">=6" 1259 | } 1260 | }, 1261 | "node_modules/escape-string-regexp": { 1262 | "version": "1.0.5", 1263 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1264 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", 1265 | "dev": true, 1266 | "engines": { 1267 | "node": ">=0.8.0" 1268 | } 1269 | }, 1270 | "node_modules/fast-glob": { 1271 | "version": "3.3.2", 1272 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", 1273 | "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", 1274 | "dev": true, 1275 | "dependencies": { 1276 | "@nodelib/fs.stat": "^2.0.2", 1277 | "@nodelib/fs.walk": "^1.2.3", 1278 | "glob-parent": "^5.1.2", 1279 | "merge2": "^1.3.0", 1280 | "micromatch": "^4.0.4" 1281 | }, 1282 | "engines": { 1283 | "node": ">=8.6.0" 1284 | } 1285 | }, 1286 | "node_modules/fast-glob/node_modules/glob-parent": { 1287 | "version": "5.1.2", 1288 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 1289 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 1290 | "dev": true, 1291 | "dependencies": { 1292 | "is-glob": "^4.0.1" 1293 | }, 1294 | "engines": { 1295 | "node": ">= 6" 1296 | } 1297 | }, 1298 | "node_modules/fastq": { 1299 | "version": "1.16.0", 1300 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", 1301 | "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", 1302 | "dev": true, 1303 | "dependencies": { 1304 | "reusify": "^1.0.4" 1305 | } 1306 | }, 1307 | "node_modules/fill-range": { 1308 | "version": "7.0.1", 1309 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", 1310 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", 1311 | "dev": true, 1312 | "dependencies": { 1313 | "to-regex-range": "^5.0.1" 1314 | }, 1315 | "engines": { 1316 | "node": ">=8" 1317 | } 1318 | }, 1319 | "node_modules/follow-redirects": { 1320 | "version": "1.15.5", 1321 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", 1322 | "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", 1323 | "dev": true, 1324 | "funding": [ 1325 | { 1326 | "type": "individual", 1327 | "url": "https://github.com/sponsors/RubenVerborgh" 1328 | } 1329 | ], 1330 | "engines": { 1331 | "node": ">=4.0" 1332 | }, 1333 | "peerDependenciesMeta": { 1334 | "debug": { 1335 | "optional": true 1336 | } 1337 | } 1338 | }, 1339 | "node_modules/for-each": { 1340 | "version": "0.3.3", 1341 | "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", 1342 | "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", 1343 | "dev": true, 1344 | "dependencies": { 1345 | "is-callable": "^1.1.3" 1346 | } 1347 | }, 1348 | "node_modules/foreground-child": { 1349 | "version": "3.1.1", 1350 | "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", 1351 | "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", 1352 | "dev": true, 1353 | "dependencies": { 1354 | "cross-spawn": "^7.0.0", 1355 | "signal-exit": "^4.0.1" 1356 | }, 1357 | "engines": { 1358 | "node": ">=14" 1359 | }, 1360 | "funding": { 1361 | "url": "https://github.com/sponsors/isaacs" 1362 | } 1363 | }, 1364 | "node_modules/foreground-child/node_modules/cross-spawn": { 1365 | "version": "7.0.3", 1366 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", 1367 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", 1368 | "dev": true, 1369 | "dependencies": { 1370 | "path-key": "^3.1.0", 1371 | "shebang-command": "^2.0.0", 1372 | "which": "^2.0.1" 1373 | }, 1374 | "engines": { 1375 | "node": ">= 8" 1376 | } 1377 | }, 1378 | "node_modules/foreground-child/node_modules/path-key": { 1379 | "version": "3.1.1", 1380 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 1381 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 1382 | "dev": true, 1383 | "engines": { 1384 | "node": ">=8" 1385 | } 1386 | }, 1387 | "node_modules/foreground-child/node_modules/shebang-command": { 1388 | "version": "2.0.0", 1389 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 1390 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 1391 | "dev": true, 1392 | "dependencies": { 1393 | "shebang-regex": "^3.0.0" 1394 | }, 1395 | "engines": { 1396 | "node": ">=8" 1397 | } 1398 | }, 1399 | "node_modules/foreground-child/node_modules/shebang-regex": { 1400 | "version": "3.0.0", 1401 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 1402 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 1403 | "dev": true, 1404 | "engines": { 1405 | "node": ">=8" 1406 | } 1407 | }, 1408 | "node_modules/foreground-child/node_modules/signal-exit": { 1409 | "version": "4.1.0", 1410 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", 1411 | "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", 1412 | "dev": true, 1413 | "engines": { 1414 | "node": ">=14" 1415 | }, 1416 | "funding": { 1417 | "url": "https://github.com/sponsors/isaacs" 1418 | } 1419 | }, 1420 | "node_modules/foreground-child/node_modules/which": { 1421 | "version": "2.0.2", 1422 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 1423 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 1424 | "dev": true, 1425 | "dependencies": { 1426 | "isexe": "^2.0.0" 1427 | }, 1428 | "bin": { 1429 | "node-which": "bin/node-which" 1430 | }, 1431 | "engines": { 1432 | "node": ">= 8" 1433 | } 1434 | }, 1435 | "node_modules/form-data": { 1436 | "version": "4.0.0", 1437 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", 1438 | "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", 1439 | "dev": true, 1440 | "dependencies": { 1441 | "asynckit": "^0.4.0", 1442 | "combined-stream": "^1.0.8", 1443 | "mime-types": "^2.1.12" 1444 | }, 1445 | "engines": { 1446 | "node": ">= 6" 1447 | } 1448 | }, 1449 | "node_modules/fraction.js": { 1450 | "version": "4.3.7", 1451 | "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", 1452 | "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", 1453 | "dev": true, 1454 | "engines": { 1455 | "node": "*" 1456 | }, 1457 | "funding": { 1458 | "type": "patreon", 1459 | "url": "https://github.com/sponsors/rawify" 1460 | } 1461 | }, 1462 | "node_modules/fsevents": { 1463 | "version": "2.3.3", 1464 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", 1465 | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", 1466 | "dev": true, 1467 | "hasInstallScript": true, 1468 | "optional": true, 1469 | "os": [ 1470 | "darwin" 1471 | ], 1472 | "engines": { 1473 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 1474 | } 1475 | }, 1476 | "node_modules/function-bind": { 1477 | "version": "1.1.2", 1478 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", 1479 | "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", 1480 | "dev": true, 1481 | "funding": { 1482 | "url": "https://github.com/sponsors/ljharb" 1483 | } 1484 | }, 1485 | "node_modules/function.prototype.name": { 1486 | "version": "1.1.6", 1487 | "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", 1488 | "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", 1489 | "dev": true, 1490 | "dependencies": { 1491 | "call-bind": "^1.0.2", 1492 | "define-properties": "^1.2.0", 1493 | "es-abstract": "^1.22.1", 1494 | "functions-have-names": "^1.2.3" 1495 | }, 1496 | "engines": { 1497 | "node": ">= 0.4" 1498 | }, 1499 | "funding": { 1500 | "url": "https://github.com/sponsors/ljharb" 1501 | } 1502 | }, 1503 | "node_modules/functions-have-names": { 1504 | "version": "1.2.3", 1505 | "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", 1506 | "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", 1507 | "dev": true, 1508 | "funding": { 1509 | "url": "https://github.com/sponsors/ljharb" 1510 | } 1511 | }, 1512 | "node_modules/get-intrinsic": { 1513 | "version": "1.2.2", 1514 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", 1515 | "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", 1516 | "dev": true, 1517 | "dependencies": { 1518 | "function-bind": "^1.1.2", 1519 | "has-proto": "^1.0.1", 1520 | "has-symbols": "^1.0.3", 1521 | "hasown": "^2.0.0" 1522 | }, 1523 | "funding": { 1524 | "url": "https://github.com/sponsors/ljharb" 1525 | } 1526 | }, 1527 | "node_modules/get-symbol-description": { 1528 | "version": "1.0.0", 1529 | "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", 1530 | "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", 1531 | "dev": true, 1532 | "dependencies": { 1533 | "call-bind": "^1.0.2", 1534 | "get-intrinsic": "^1.1.1" 1535 | }, 1536 | "engines": { 1537 | "node": ">= 0.4" 1538 | }, 1539 | "funding": { 1540 | "url": "https://github.com/sponsors/ljharb" 1541 | } 1542 | }, 1543 | "node_modules/glob": { 1544 | "version": "10.3.10", 1545 | "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", 1546 | "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", 1547 | "dev": true, 1548 | "dependencies": { 1549 | "foreground-child": "^3.1.0", 1550 | "jackspeak": "^2.3.5", 1551 | "minimatch": "^9.0.1", 1552 | "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", 1553 | "path-scurry": "^1.10.1" 1554 | }, 1555 | "bin": { 1556 | "glob": "dist/esm/bin.mjs" 1557 | }, 1558 | "engines": { 1559 | "node": ">=16 || 14 >=14.17" 1560 | }, 1561 | "funding": { 1562 | "url": "https://github.com/sponsors/isaacs" 1563 | } 1564 | }, 1565 | "node_modules/glob-parent": { 1566 | "version": "6.0.2", 1567 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", 1568 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", 1569 | "dev": true, 1570 | "dependencies": { 1571 | "is-glob": "^4.0.3" 1572 | }, 1573 | "engines": { 1574 | "node": ">=10.13.0" 1575 | } 1576 | }, 1577 | "node_modules/glob/node_modules/brace-expansion": { 1578 | "version": "2.0.1", 1579 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", 1580 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", 1581 | "dev": true, 1582 | "dependencies": { 1583 | "balanced-match": "^1.0.0" 1584 | } 1585 | }, 1586 | "node_modules/glob/node_modules/minimatch": { 1587 | "version": "9.0.3", 1588 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", 1589 | "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", 1590 | "dev": true, 1591 | "dependencies": { 1592 | "brace-expansion": "^2.0.1" 1593 | }, 1594 | "engines": { 1595 | "node": ">=16 || 14 >=14.17" 1596 | }, 1597 | "funding": { 1598 | "url": "https://github.com/sponsors/isaacs" 1599 | } 1600 | }, 1601 | "node_modules/globalthis": { 1602 | "version": "1.0.3", 1603 | "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", 1604 | "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", 1605 | "dev": true, 1606 | "dependencies": { 1607 | "define-properties": "^1.1.3" 1608 | }, 1609 | "engines": { 1610 | "node": ">= 0.4" 1611 | }, 1612 | "funding": { 1613 | "url": "https://github.com/sponsors/ljharb" 1614 | } 1615 | }, 1616 | "node_modules/gopd": { 1617 | "version": "1.0.1", 1618 | "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", 1619 | "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", 1620 | "dev": true, 1621 | "dependencies": { 1622 | "get-intrinsic": "^1.1.3" 1623 | }, 1624 | "funding": { 1625 | "url": "https://github.com/sponsors/ljharb" 1626 | } 1627 | }, 1628 | "node_modules/graceful-fs": { 1629 | "version": "4.2.11", 1630 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", 1631 | "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", 1632 | "dev": true 1633 | }, 1634 | "node_modules/has-bigints": { 1635 | "version": "1.0.2", 1636 | "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", 1637 | "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", 1638 | "dev": true, 1639 | "funding": { 1640 | "url": "https://github.com/sponsors/ljharb" 1641 | } 1642 | }, 1643 | "node_modules/has-flag": { 1644 | "version": "3.0.0", 1645 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 1646 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", 1647 | "dev": true, 1648 | "engines": { 1649 | "node": ">=4" 1650 | } 1651 | }, 1652 | "node_modules/has-property-descriptors": { 1653 | "version": "1.0.1", 1654 | "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", 1655 | "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", 1656 | "dev": true, 1657 | "dependencies": { 1658 | "get-intrinsic": "^1.2.2" 1659 | }, 1660 | "funding": { 1661 | "url": "https://github.com/sponsors/ljharb" 1662 | } 1663 | }, 1664 | "node_modules/has-proto": { 1665 | "version": "1.0.1", 1666 | "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", 1667 | "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", 1668 | "dev": true, 1669 | "engines": { 1670 | "node": ">= 0.4" 1671 | }, 1672 | "funding": { 1673 | "url": "https://github.com/sponsors/ljharb" 1674 | } 1675 | }, 1676 | "node_modules/has-symbols": { 1677 | "version": "1.0.3", 1678 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", 1679 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", 1680 | "dev": true, 1681 | "engines": { 1682 | "node": ">= 0.4" 1683 | }, 1684 | "funding": { 1685 | "url": "https://github.com/sponsors/ljharb" 1686 | } 1687 | }, 1688 | "node_modules/has-tostringtag": { 1689 | "version": "1.0.0", 1690 | "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", 1691 | "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", 1692 | "dev": true, 1693 | "dependencies": { 1694 | "has-symbols": "^1.0.2" 1695 | }, 1696 | "engines": { 1697 | "node": ">= 0.4" 1698 | }, 1699 | "funding": { 1700 | "url": "https://github.com/sponsors/ljharb" 1701 | } 1702 | }, 1703 | "node_modules/hasown": { 1704 | "version": "2.0.0", 1705 | "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", 1706 | "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", 1707 | "dev": true, 1708 | "dependencies": { 1709 | "function-bind": "^1.1.2" 1710 | }, 1711 | "engines": { 1712 | "node": ">= 0.4" 1713 | } 1714 | }, 1715 | "node_modules/hosted-git-info": { 1716 | "version": "2.8.9", 1717 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", 1718 | "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", 1719 | "dev": true 1720 | }, 1721 | "node_modules/ieee754": { 1722 | "version": "1.2.1", 1723 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", 1724 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", 1725 | "dev": true, 1726 | "funding": [ 1727 | { 1728 | "type": "github", 1729 | "url": "https://github.com/sponsors/feross" 1730 | }, 1731 | { 1732 | "type": "patreon", 1733 | "url": "https://www.patreon.com/feross" 1734 | }, 1735 | { 1736 | "type": "consulting", 1737 | "url": "https://feross.org/support" 1738 | } 1739 | ] 1740 | }, 1741 | "node_modules/inherits": { 1742 | "version": "2.0.4", 1743 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1744 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 1745 | "dev": true 1746 | }, 1747 | "node_modules/internal-slot": { 1748 | "version": "1.0.6", 1749 | "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", 1750 | "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", 1751 | "dev": true, 1752 | "dependencies": { 1753 | "get-intrinsic": "^1.2.2", 1754 | "hasown": "^2.0.0", 1755 | "side-channel": "^1.0.4" 1756 | }, 1757 | "engines": { 1758 | "node": ">= 0.4" 1759 | } 1760 | }, 1761 | "node_modules/is-array-buffer": { 1762 | "version": "3.0.2", 1763 | "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", 1764 | "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", 1765 | "dev": true, 1766 | "dependencies": { 1767 | "call-bind": "^1.0.2", 1768 | "get-intrinsic": "^1.2.0", 1769 | "is-typed-array": "^1.1.10" 1770 | }, 1771 | "funding": { 1772 | "url": "https://github.com/sponsors/ljharb" 1773 | } 1774 | }, 1775 | "node_modules/is-arrayish": { 1776 | "version": "0.2.1", 1777 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 1778 | "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", 1779 | "dev": true 1780 | }, 1781 | "node_modules/is-bigint": { 1782 | "version": "1.0.4", 1783 | "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", 1784 | "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", 1785 | "dev": true, 1786 | "dependencies": { 1787 | "has-bigints": "^1.0.1" 1788 | }, 1789 | "funding": { 1790 | "url": "https://github.com/sponsors/ljharb" 1791 | } 1792 | }, 1793 | "node_modules/is-binary-path": { 1794 | "version": "2.1.0", 1795 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 1796 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 1797 | "dev": true, 1798 | "dependencies": { 1799 | "binary-extensions": "^2.0.0" 1800 | }, 1801 | "engines": { 1802 | "node": ">=8" 1803 | } 1804 | }, 1805 | "node_modules/is-boolean-object": { 1806 | "version": "1.1.2", 1807 | "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", 1808 | "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", 1809 | "dev": true, 1810 | "dependencies": { 1811 | "call-bind": "^1.0.2", 1812 | "has-tostringtag": "^1.0.0" 1813 | }, 1814 | "engines": { 1815 | "node": ">= 0.4" 1816 | }, 1817 | "funding": { 1818 | "url": "https://github.com/sponsors/ljharb" 1819 | } 1820 | }, 1821 | "node_modules/is-callable": { 1822 | "version": "1.2.7", 1823 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", 1824 | "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", 1825 | "dev": true, 1826 | "engines": { 1827 | "node": ">= 0.4" 1828 | }, 1829 | "funding": { 1830 | "url": "https://github.com/sponsors/ljharb" 1831 | } 1832 | }, 1833 | "node_modules/is-core-module": { 1834 | "version": "2.13.1", 1835 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", 1836 | "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", 1837 | "dev": true, 1838 | "dependencies": { 1839 | "hasown": "^2.0.0" 1840 | }, 1841 | "funding": { 1842 | "url": "https://github.com/sponsors/ljharb" 1843 | } 1844 | }, 1845 | "node_modules/is-date-object": { 1846 | "version": "1.0.5", 1847 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", 1848 | "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", 1849 | "dev": true, 1850 | "dependencies": { 1851 | "has-tostringtag": "^1.0.0" 1852 | }, 1853 | "engines": { 1854 | "node": ">= 0.4" 1855 | }, 1856 | "funding": { 1857 | "url": "https://github.com/sponsors/ljharb" 1858 | } 1859 | }, 1860 | "node_modules/is-extglob": { 1861 | "version": "2.1.1", 1862 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 1863 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 1864 | "dev": true, 1865 | "engines": { 1866 | "node": ">=0.10.0" 1867 | } 1868 | }, 1869 | "node_modules/is-fullwidth-code-point": { 1870 | "version": "3.0.0", 1871 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 1872 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 1873 | "dev": true, 1874 | "engines": { 1875 | "node": ">=8" 1876 | } 1877 | }, 1878 | "node_modules/is-glob": { 1879 | "version": "4.0.3", 1880 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 1881 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 1882 | "dev": true, 1883 | "dependencies": { 1884 | "is-extglob": "^2.1.1" 1885 | }, 1886 | "engines": { 1887 | "node": ">=0.10.0" 1888 | } 1889 | }, 1890 | "node_modules/is-interactive": { 1891 | "version": "2.0.0", 1892 | "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", 1893 | "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", 1894 | "dev": true, 1895 | "engines": { 1896 | "node": ">=12" 1897 | }, 1898 | "funding": { 1899 | "url": "https://github.com/sponsors/sindresorhus" 1900 | } 1901 | }, 1902 | "node_modules/is-negative-zero": { 1903 | "version": "2.0.2", 1904 | "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", 1905 | "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", 1906 | "dev": true, 1907 | "engines": { 1908 | "node": ">= 0.4" 1909 | }, 1910 | "funding": { 1911 | "url": "https://github.com/sponsors/ljharb" 1912 | } 1913 | }, 1914 | "node_modules/is-number": { 1915 | "version": "7.0.0", 1916 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 1917 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 1918 | "dev": true, 1919 | "engines": { 1920 | "node": ">=0.12.0" 1921 | } 1922 | }, 1923 | "node_modules/is-number-object": { 1924 | "version": "1.0.7", 1925 | "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", 1926 | "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", 1927 | "dev": true, 1928 | "dependencies": { 1929 | "has-tostringtag": "^1.0.0" 1930 | }, 1931 | "engines": { 1932 | "node": ">= 0.4" 1933 | }, 1934 | "funding": { 1935 | "url": "https://github.com/sponsors/ljharb" 1936 | } 1937 | }, 1938 | "node_modules/is-regex": { 1939 | "version": "1.1.4", 1940 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", 1941 | "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", 1942 | "dev": true, 1943 | "dependencies": { 1944 | "call-bind": "^1.0.2", 1945 | "has-tostringtag": "^1.0.0" 1946 | }, 1947 | "engines": { 1948 | "node": ">= 0.4" 1949 | }, 1950 | "funding": { 1951 | "url": "https://github.com/sponsors/ljharb" 1952 | } 1953 | }, 1954 | "node_modules/is-shared-array-buffer": { 1955 | "version": "1.0.2", 1956 | "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", 1957 | "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", 1958 | "dev": true, 1959 | "dependencies": { 1960 | "call-bind": "^1.0.2" 1961 | }, 1962 | "funding": { 1963 | "url": "https://github.com/sponsors/ljharb" 1964 | } 1965 | }, 1966 | "node_modules/is-string": { 1967 | "version": "1.0.7", 1968 | "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", 1969 | "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", 1970 | "dev": true, 1971 | "dependencies": { 1972 | "has-tostringtag": "^1.0.0" 1973 | }, 1974 | "engines": { 1975 | "node": ">= 0.4" 1976 | }, 1977 | "funding": { 1978 | "url": "https://github.com/sponsors/ljharb" 1979 | } 1980 | }, 1981 | "node_modules/is-symbol": { 1982 | "version": "1.0.4", 1983 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", 1984 | "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", 1985 | "dev": true, 1986 | "dependencies": { 1987 | "has-symbols": "^1.0.2" 1988 | }, 1989 | "engines": { 1990 | "node": ">= 0.4" 1991 | }, 1992 | "funding": { 1993 | "url": "https://github.com/sponsors/ljharb" 1994 | } 1995 | }, 1996 | "node_modules/is-typed-array": { 1997 | "version": "1.1.12", 1998 | "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", 1999 | "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", 2000 | "dev": true, 2001 | "dependencies": { 2002 | "which-typed-array": "^1.1.11" 2003 | }, 2004 | "engines": { 2005 | "node": ">= 0.4" 2006 | }, 2007 | "funding": { 2008 | "url": "https://github.com/sponsors/ljharb" 2009 | } 2010 | }, 2011 | "node_modules/is-unicode-supported": { 2012 | "version": "1.3.0", 2013 | "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", 2014 | "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", 2015 | "dev": true, 2016 | "engines": { 2017 | "node": ">=12" 2018 | }, 2019 | "funding": { 2020 | "url": "https://github.com/sponsors/sindresorhus" 2021 | } 2022 | }, 2023 | "node_modules/is-weakref": { 2024 | "version": "1.0.2", 2025 | "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", 2026 | "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", 2027 | "dev": true, 2028 | "dependencies": { 2029 | "call-bind": "^1.0.2" 2030 | }, 2031 | "funding": { 2032 | "url": "https://github.com/sponsors/ljharb" 2033 | } 2034 | }, 2035 | "node_modules/isarray": { 2036 | "version": "2.0.5", 2037 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", 2038 | "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", 2039 | "dev": true 2040 | }, 2041 | "node_modules/isexe": { 2042 | "version": "2.0.0", 2043 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 2044 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", 2045 | "dev": true 2046 | }, 2047 | "node_modules/jackspeak": { 2048 | "version": "2.3.6", 2049 | "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", 2050 | "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", 2051 | "dev": true, 2052 | "dependencies": { 2053 | "@isaacs/cliui": "^8.0.2" 2054 | }, 2055 | "engines": { 2056 | "node": ">=14" 2057 | }, 2058 | "funding": { 2059 | "url": "https://github.com/sponsors/isaacs" 2060 | }, 2061 | "optionalDependencies": { 2062 | "@pkgjs/parseargs": "^0.11.0" 2063 | } 2064 | }, 2065 | "node_modules/jiti": { 2066 | "version": "1.21.0", 2067 | "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", 2068 | "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", 2069 | "dev": true, 2070 | "bin": { 2071 | "jiti": "bin/jiti.js" 2072 | } 2073 | }, 2074 | "node_modules/json-parse-better-errors": { 2075 | "version": "1.0.2", 2076 | "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", 2077 | "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", 2078 | "dev": true 2079 | }, 2080 | "node_modules/lilconfig": { 2081 | "version": "2.1.0", 2082 | "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", 2083 | "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", 2084 | "dev": true, 2085 | "engines": { 2086 | "node": ">=10" 2087 | } 2088 | }, 2089 | "node_modules/lines-and-columns": { 2090 | "version": "1.2.4", 2091 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", 2092 | "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", 2093 | "dev": true 2094 | }, 2095 | "node_modules/load-json-file": { 2096 | "version": "4.0.0", 2097 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", 2098 | "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", 2099 | "dev": true, 2100 | "dependencies": { 2101 | "graceful-fs": "^4.1.2", 2102 | "parse-json": "^4.0.0", 2103 | "pify": "^3.0.0", 2104 | "strip-bom": "^3.0.0" 2105 | }, 2106 | "engines": { 2107 | "node": ">=4" 2108 | } 2109 | }, 2110 | "node_modules/load-json-file/node_modules/pify": { 2111 | "version": "3.0.0", 2112 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", 2113 | "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", 2114 | "dev": true, 2115 | "engines": { 2116 | "node": ">=4" 2117 | } 2118 | }, 2119 | "node_modules/lodash.castarray": { 2120 | "version": "4.4.0", 2121 | "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz", 2122 | "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==", 2123 | "dev": true 2124 | }, 2125 | "node_modules/lodash.isplainobject": { 2126 | "version": "4.0.6", 2127 | "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", 2128 | "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", 2129 | "dev": true 2130 | }, 2131 | "node_modules/lodash.merge": { 2132 | "version": "4.6.2", 2133 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", 2134 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", 2135 | "dev": true 2136 | }, 2137 | "node_modules/log-symbols": { 2138 | "version": "5.1.0", 2139 | "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz", 2140 | "integrity": "sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==", 2141 | "dev": true, 2142 | "dependencies": { 2143 | "chalk": "^5.0.0", 2144 | "is-unicode-supported": "^1.1.0" 2145 | }, 2146 | "engines": { 2147 | "node": ">=12" 2148 | }, 2149 | "funding": { 2150 | "url": "https://github.com/sponsors/sindresorhus" 2151 | } 2152 | }, 2153 | "node_modules/lru-cache": { 2154 | "version": "10.1.0", 2155 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", 2156 | "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", 2157 | "dev": true, 2158 | "engines": { 2159 | "node": "14 || >=16.14" 2160 | } 2161 | }, 2162 | "node_modules/mdn-data": { 2163 | "version": "2.0.30", 2164 | "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", 2165 | "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", 2166 | "dev": true 2167 | }, 2168 | "node_modules/memorystream": { 2169 | "version": "0.3.1", 2170 | "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", 2171 | "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", 2172 | "dev": true, 2173 | "engines": { 2174 | "node": ">= 0.10.0" 2175 | } 2176 | }, 2177 | "node_modules/merge2": { 2178 | "version": "1.4.1", 2179 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 2180 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 2181 | "dev": true, 2182 | "engines": { 2183 | "node": ">= 8" 2184 | } 2185 | }, 2186 | "node_modules/micromatch": { 2187 | "version": "4.0.5", 2188 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", 2189 | "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", 2190 | "dev": true, 2191 | "dependencies": { 2192 | "braces": "^3.0.2", 2193 | "picomatch": "^2.3.1" 2194 | }, 2195 | "engines": { 2196 | "node": ">=8.6" 2197 | } 2198 | }, 2199 | "node_modules/mime-db": { 2200 | "version": "1.52.0", 2201 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", 2202 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", 2203 | "dev": true, 2204 | "engines": { 2205 | "node": ">= 0.6" 2206 | } 2207 | }, 2208 | "node_modules/mime-types": { 2209 | "version": "2.1.35", 2210 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", 2211 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", 2212 | "dev": true, 2213 | "dependencies": { 2214 | "mime-db": "1.52.0" 2215 | }, 2216 | "engines": { 2217 | "node": ">= 0.6" 2218 | } 2219 | }, 2220 | "node_modules/mimic-fn": { 2221 | "version": "2.1.0", 2222 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", 2223 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", 2224 | "dev": true, 2225 | "engines": { 2226 | "node": ">=6" 2227 | } 2228 | }, 2229 | "node_modules/mini-svg-data-uri": { 2230 | "version": "1.4.4", 2231 | "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", 2232 | "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==", 2233 | "dev": true, 2234 | "bin": { 2235 | "mini-svg-data-uri": "cli.js" 2236 | } 2237 | }, 2238 | "node_modules/minimatch": { 2239 | "version": "3.1.2", 2240 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 2241 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 2242 | "dev": true, 2243 | "dependencies": { 2244 | "brace-expansion": "^1.1.7" 2245 | }, 2246 | "engines": { 2247 | "node": "*" 2248 | } 2249 | }, 2250 | "node_modules/minipass": { 2251 | "version": "7.0.4", 2252 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", 2253 | "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", 2254 | "dev": true, 2255 | "engines": { 2256 | "node": ">=16 || 14 >=14.17" 2257 | } 2258 | }, 2259 | "node_modules/mz": { 2260 | "version": "2.7.0", 2261 | "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", 2262 | "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", 2263 | "dev": true, 2264 | "dependencies": { 2265 | "any-promise": "^1.0.0", 2266 | "object-assign": "^4.0.1", 2267 | "thenify-all": "^1.0.0" 2268 | } 2269 | }, 2270 | "node_modules/nanoid": { 2271 | "version": "3.3.7", 2272 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", 2273 | "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", 2274 | "dev": true, 2275 | "funding": [ 2276 | { 2277 | "type": "github", 2278 | "url": "https://github.com/sponsors/ai" 2279 | } 2280 | ], 2281 | "bin": { 2282 | "nanoid": "bin/nanoid.cjs" 2283 | }, 2284 | "engines": { 2285 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 2286 | } 2287 | }, 2288 | "node_modules/nice-try": { 2289 | "version": "1.0.5", 2290 | "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", 2291 | "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", 2292 | "dev": true 2293 | }, 2294 | "node_modules/node-releases": { 2295 | "version": "2.0.14", 2296 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", 2297 | "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", 2298 | "dev": true 2299 | }, 2300 | "node_modules/normalize-package-data": { 2301 | "version": "2.5.0", 2302 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", 2303 | "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", 2304 | "dev": true, 2305 | "dependencies": { 2306 | "hosted-git-info": "^2.1.4", 2307 | "resolve": "^1.10.0", 2308 | "semver": "2 || 3 || 4 || 5", 2309 | "validate-npm-package-license": "^3.0.1" 2310 | } 2311 | }, 2312 | "node_modules/normalize-path": { 2313 | "version": "3.0.0", 2314 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 2315 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 2316 | "dev": true, 2317 | "engines": { 2318 | "node": ">=0.10.0" 2319 | } 2320 | }, 2321 | "node_modules/normalize-range": { 2322 | "version": "0.1.2", 2323 | "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", 2324 | "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", 2325 | "dev": true, 2326 | "engines": { 2327 | "node": ">=0.10.0" 2328 | } 2329 | }, 2330 | "node_modules/npm-run-all": { 2331 | "version": "4.1.5", 2332 | "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", 2333 | "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", 2334 | "dev": true, 2335 | "dependencies": { 2336 | "ansi-styles": "^3.2.1", 2337 | "chalk": "^2.4.1", 2338 | "cross-spawn": "^6.0.5", 2339 | "memorystream": "^0.3.1", 2340 | "minimatch": "^3.0.4", 2341 | "pidtree": "^0.3.0", 2342 | "read-pkg": "^3.0.0", 2343 | "shell-quote": "^1.6.1", 2344 | "string.prototype.padend": "^3.0.0" 2345 | }, 2346 | "bin": { 2347 | "npm-run-all": "bin/npm-run-all/index.js", 2348 | "run-p": "bin/run-p/index.js", 2349 | "run-s": "bin/run-s/index.js" 2350 | }, 2351 | "engines": { 2352 | "node": ">= 4" 2353 | } 2354 | }, 2355 | "node_modules/npm-run-all/node_modules/chalk": { 2356 | "version": "2.4.2", 2357 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 2358 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 2359 | "dev": true, 2360 | "dependencies": { 2361 | "ansi-styles": "^3.2.1", 2362 | "escape-string-regexp": "^1.0.5", 2363 | "supports-color": "^5.3.0" 2364 | }, 2365 | "engines": { 2366 | "node": ">=4" 2367 | } 2368 | }, 2369 | "node_modules/object-assign": { 2370 | "version": "4.1.1", 2371 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 2372 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", 2373 | "dev": true, 2374 | "engines": { 2375 | "node": ">=0.10.0" 2376 | } 2377 | }, 2378 | "node_modules/object-hash": { 2379 | "version": "3.0.0", 2380 | "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", 2381 | "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", 2382 | "dev": true, 2383 | "engines": { 2384 | "node": ">= 6" 2385 | } 2386 | }, 2387 | "node_modules/object-inspect": { 2388 | "version": "1.13.1", 2389 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", 2390 | "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", 2391 | "dev": true, 2392 | "funding": { 2393 | "url": "https://github.com/sponsors/ljharb" 2394 | } 2395 | }, 2396 | "node_modules/object-keys": { 2397 | "version": "1.1.1", 2398 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", 2399 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", 2400 | "dev": true, 2401 | "engines": { 2402 | "node": ">= 0.4" 2403 | } 2404 | }, 2405 | "node_modules/object.assign": { 2406 | "version": "4.1.5", 2407 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", 2408 | "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", 2409 | "dev": true, 2410 | "dependencies": { 2411 | "call-bind": "^1.0.5", 2412 | "define-properties": "^1.2.1", 2413 | "has-symbols": "^1.0.3", 2414 | "object-keys": "^1.1.1" 2415 | }, 2416 | "engines": { 2417 | "node": ">= 0.4" 2418 | }, 2419 | "funding": { 2420 | "url": "https://github.com/sponsors/ljharb" 2421 | } 2422 | }, 2423 | "node_modules/onetime": { 2424 | "version": "5.1.2", 2425 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", 2426 | "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", 2427 | "dev": true, 2428 | "dependencies": { 2429 | "mimic-fn": "^2.1.0" 2430 | }, 2431 | "engines": { 2432 | "node": ">=6" 2433 | }, 2434 | "funding": { 2435 | "url": "https://github.com/sponsors/sindresorhus" 2436 | } 2437 | }, 2438 | "node_modules/ora": { 2439 | "version": "6.3.1", 2440 | "resolved": "https://registry.npmjs.org/ora/-/ora-6.3.1.tgz", 2441 | "integrity": "sha512-ERAyNnZOfqM+Ao3RAvIXkYh5joP220yf59gVe2X/cI6SiCxIdi4c9HZKZD8R6q/RDXEje1THBju6iExiSsgJaQ==", 2442 | "dev": true, 2443 | "dependencies": { 2444 | "chalk": "^5.0.0", 2445 | "cli-cursor": "^4.0.0", 2446 | "cli-spinners": "^2.6.1", 2447 | "is-interactive": "^2.0.0", 2448 | "is-unicode-supported": "^1.1.0", 2449 | "log-symbols": "^5.1.0", 2450 | "stdin-discarder": "^0.1.0", 2451 | "strip-ansi": "^7.0.1", 2452 | "wcwidth": "^1.0.1" 2453 | }, 2454 | "engines": { 2455 | "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 2456 | }, 2457 | "funding": { 2458 | "url": "https://github.com/sponsors/sindresorhus" 2459 | } 2460 | }, 2461 | "node_modules/parse-json": { 2462 | "version": "4.0.0", 2463 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", 2464 | "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", 2465 | "dev": true, 2466 | "dependencies": { 2467 | "error-ex": "^1.3.1", 2468 | "json-parse-better-errors": "^1.0.1" 2469 | }, 2470 | "engines": { 2471 | "node": ">=4" 2472 | } 2473 | }, 2474 | "node_modules/path-key": { 2475 | "version": "2.0.1", 2476 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", 2477 | "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", 2478 | "dev": true, 2479 | "engines": { 2480 | "node": ">=4" 2481 | } 2482 | }, 2483 | "node_modules/path-parse": { 2484 | "version": "1.0.7", 2485 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 2486 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 2487 | "dev": true 2488 | }, 2489 | "node_modules/path-scurry": { 2490 | "version": "1.10.1", 2491 | "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", 2492 | "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", 2493 | "dev": true, 2494 | "dependencies": { 2495 | "lru-cache": "^9.1.1 || ^10.0.0", 2496 | "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" 2497 | }, 2498 | "engines": { 2499 | "node": ">=16 || 14 >=14.17" 2500 | }, 2501 | "funding": { 2502 | "url": "https://github.com/sponsors/isaacs" 2503 | } 2504 | }, 2505 | "node_modules/path-type": { 2506 | "version": "3.0.0", 2507 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", 2508 | "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", 2509 | "dev": true, 2510 | "dependencies": { 2511 | "pify": "^3.0.0" 2512 | }, 2513 | "engines": { 2514 | "node": ">=4" 2515 | } 2516 | }, 2517 | "node_modules/path-type/node_modules/pify": { 2518 | "version": "3.0.0", 2519 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", 2520 | "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", 2521 | "dev": true, 2522 | "engines": { 2523 | "node": ">=4" 2524 | } 2525 | }, 2526 | "node_modules/picocolors": { 2527 | "version": "1.0.0", 2528 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 2529 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", 2530 | "dev": true 2531 | }, 2532 | "node_modules/picomatch": { 2533 | "version": "2.3.1", 2534 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 2535 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 2536 | "dev": true, 2537 | "engines": { 2538 | "node": ">=8.6" 2539 | }, 2540 | "funding": { 2541 | "url": "https://github.com/sponsors/jonschlinkert" 2542 | } 2543 | }, 2544 | "node_modules/pidtree": { 2545 | "version": "0.3.1", 2546 | "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", 2547 | "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", 2548 | "dev": true, 2549 | "bin": { 2550 | "pidtree": "bin/pidtree.js" 2551 | }, 2552 | "engines": { 2553 | "node": ">=0.10" 2554 | } 2555 | }, 2556 | "node_modules/pify": { 2557 | "version": "2.3.0", 2558 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 2559 | "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", 2560 | "dev": true, 2561 | "engines": { 2562 | "node": ">=0.10.0" 2563 | } 2564 | }, 2565 | "node_modules/pirates": { 2566 | "version": "4.0.6", 2567 | "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", 2568 | "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", 2569 | "dev": true, 2570 | "engines": { 2571 | "node": ">= 6" 2572 | } 2573 | }, 2574 | "node_modules/postcss": { 2575 | "version": "8.4.33", 2576 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", 2577 | "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", 2578 | "dev": true, 2579 | "funding": [ 2580 | { 2581 | "type": "opencollective", 2582 | "url": "https://opencollective.com/postcss/" 2583 | }, 2584 | { 2585 | "type": "tidelift", 2586 | "url": "https://tidelift.com/funding/github/npm/postcss" 2587 | }, 2588 | { 2589 | "type": "github", 2590 | "url": "https://github.com/sponsors/ai" 2591 | } 2592 | ], 2593 | "dependencies": { 2594 | "nanoid": "^3.3.7", 2595 | "picocolors": "^1.0.0", 2596 | "source-map-js": "^1.0.2" 2597 | }, 2598 | "engines": { 2599 | "node": "^10 || ^12 || >=14" 2600 | } 2601 | }, 2602 | "node_modules/postcss-import": { 2603 | "version": "15.1.0", 2604 | "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", 2605 | "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", 2606 | "dev": true, 2607 | "dependencies": { 2608 | "postcss-value-parser": "^4.0.0", 2609 | "read-cache": "^1.0.0", 2610 | "resolve": "^1.1.7" 2611 | }, 2612 | "engines": { 2613 | "node": ">=14.0.0" 2614 | }, 2615 | "peerDependencies": { 2616 | "postcss": "^8.0.0" 2617 | } 2618 | }, 2619 | "node_modules/postcss-js": { 2620 | "version": "4.0.1", 2621 | "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", 2622 | "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", 2623 | "dev": true, 2624 | "dependencies": { 2625 | "camelcase-css": "^2.0.1" 2626 | }, 2627 | "engines": { 2628 | "node": "^12 || ^14 || >= 16" 2629 | }, 2630 | "funding": { 2631 | "type": "opencollective", 2632 | "url": "https://opencollective.com/postcss/" 2633 | }, 2634 | "peerDependencies": { 2635 | "postcss": "^8.4.21" 2636 | } 2637 | }, 2638 | "node_modules/postcss-load-config": { 2639 | "version": "4.0.2", 2640 | "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", 2641 | "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", 2642 | "dev": true, 2643 | "funding": [ 2644 | { 2645 | "type": "opencollective", 2646 | "url": "https://opencollective.com/postcss/" 2647 | }, 2648 | { 2649 | "type": "github", 2650 | "url": "https://github.com/sponsors/ai" 2651 | } 2652 | ], 2653 | "dependencies": { 2654 | "lilconfig": "^3.0.0", 2655 | "yaml": "^2.3.4" 2656 | }, 2657 | "engines": { 2658 | "node": ">= 14" 2659 | }, 2660 | "peerDependencies": { 2661 | "postcss": ">=8.0.9", 2662 | "ts-node": ">=9.0.0" 2663 | }, 2664 | "peerDependenciesMeta": { 2665 | "postcss": { 2666 | "optional": true 2667 | }, 2668 | "ts-node": { 2669 | "optional": true 2670 | } 2671 | } 2672 | }, 2673 | "node_modules/postcss-load-config/node_modules/lilconfig": { 2674 | "version": "3.0.0", 2675 | "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", 2676 | "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", 2677 | "dev": true, 2678 | "engines": { 2679 | "node": ">=14" 2680 | } 2681 | }, 2682 | "node_modules/postcss-nested": { 2683 | "version": "6.0.1", 2684 | "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", 2685 | "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", 2686 | "dev": true, 2687 | "dependencies": { 2688 | "postcss-selector-parser": "^6.0.11" 2689 | }, 2690 | "engines": { 2691 | "node": ">=12.0" 2692 | }, 2693 | "funding": { 2694 | "type": "opencollective", 2695 | "url": "https://opencollective.com/postcss/" 2696 | }, 2697 | "peerDependencies": { 2698 | "postcss": "^8.2.14" 2699 | } 2700 | }, 2701 | "node_modules/postcss-nested/node_modules/postcss-selector-parser": { 2702 | "version": "6.0.15", 2703 | "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", 2704 | "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", 2705 | "dev": true, 2706 | "dependencies": { 2707 | "cssesc": "^3.0.0", 2708 | "util-deprecate": "^1.0.2" 2709 | }, 2710 | "engines": { 2711 | "node": ">=4" 2712 | } 2713 | }, 2714 | "node_modules/postcss-selector-parser": { 2715 | "version": "6.0.10", 2716 | "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", 2717 | "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", 2718 | "dev": true, 2719 | "dependencies": { 2720 | "cssesc": "^3.0.0", 2721 | "util-deprecate": "^1.0.2" 2722 | }, 2723 | "engines": { 2724 | "node": ">=4" 2725 | } 2726 | }, 2727 | "node_modules/postcss-value-parser": { 2728 | "version": "4.2.0", 2729 | "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", 2730 | "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", 2731 | "dev": true 2732 | }, 2733 | "node_modules/prettier": { 2734 | "version": "2.8.8", 2735 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", 2736 | "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", 2737 | "dev": true, 2738 | "bin": { 2739 | "prettier": "bin-prettier.js" 2740 | }, 2741 | "engines": { 2742 | "node": ">=10.13.0" 2743 | }, 2744 | "funding": { 2745 | "url": "https://github.com/prettier/prettier?sponsor=1" 2746 | } 2747 | }, 2748 | "node_modules/prettier-plugin-tailwindcss": { 2749 | "version": "0.1.13", 2750 | "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.1.13.tgz", 2751 | "integrity": "sha512-/EKQURUrxLu66CMUg4+1LwGdxnz8of7IDvrSLqEtDqhLH61SAlNNUSr90UTvZaemujgl3OH/VHg+fyGltrNixw==", 2752 | "dev": true, 2753 | "engines": { 2754 | "node": ">=12.17.0" 2755 | }, 2756 | "peerDependencies": { 2757 | "prettier": ">=2.2.0" 2758 | } 2759 | }, 2760 | "node_modules/proxy-from-env": { 2761 | "version": "1.1.0", 2762 | "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", 2763 | "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", 2764 | "dev": true 2765 | }, 2766 | "node_modules/queue-microtask": { 2767 | "version": "1.2.3", 2768 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 2769 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 2770 | "dev": true, 2771 | "funding": [ 2772 | { 2773 | "type": "github", 2774 | "url": "https://github.com/sponsors/feross" 2775 | }, 2776 | { 2777 | "type": "patreon", 2778 | "url": "https://www.patreon.com/feross" 2779 | }, 2780 | { 2781 | "type": "consulting", 2782 | "url": "https://feross.org/support" 2783 | } 2784 | ] 2785 | }, 2786 | "node_modules/read-cache": { 2787 | "version": "1.0.0", 2788 | "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", 2789 | "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", 2790 | "dev": true, 2791 | "dependencies": { 2792 | "pify": "^2.3.0" 2793 | } 2794 | }, 2795 | "node_modules/read-pkg": { 2796 | "version": "3.0.0", 2797 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", 2798 | "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", 2799 | "dev": true, 2800 | "dependencies": { 2801 | "load-json-file": "^4.0.0", 2802 | "normalize-package-data": "^2.3.2", 2803 | "path-type": "^3.0.0" 2804 | }, 2805 | "engines": { 2806 | "node": ">=4" 2807 | } 2808 | }, 2809 | "node_modules/readable-stream": { 2810 | "version": "3.6.2", 2811 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", 2812 | "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", 2813 | "dev": true, 2814 | "dependencies": { 2815 | "inherits": "^2.0.3", 2816 | "string_decoder": "^1.1.1", 2817 | "util-deprecate": "^1.0.1" 2818 | }, 2819 | "engines": { 2820 | "node": ">= 6" 2821 | } 2822 | }, 2823 | "node_modules/readdirp": { 2824 | "version": "3.6.0", 2825 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", 2826 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 2827 | "dev": true, 2828 | "dependencies": { 2829 | "picomatch": "^2.2.1" 2830 | }, 2831 | "engines": { 2832 | "node": ">=8.10.0" 2833 | } 2834 | }, 2835 | "node_modules/regexp.prototype.flags": { 2836 | "version": "1.5.1", 2837 | "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", 2838 | "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", 2839 | "dev": true, 2840 | "dependencies": { 2841 | "call-bind": "^1.0.2", 2842 | "define-properties": "^1.2.0", 2843 | "set-function-name": "^2.0.0" 2844 | }, 2845 | "engines": { 2846 | "node": ">= 0.4" 2847 | }, 2848 | "funding": { 2849 | "url": "https://github.com/sponsors/ljharb" 2850 | } 2851 | }, 2852 | "node_modules/resolve": { 2853 | "version": "1.22.8", 2854 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", 2855 | "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", 2856 | "dev": true, 2857 | "dependencies": { 2858 | "is-core-module": "^2.13.0", 2859 | "path-parse": "^1.0.7", 2860 | "supports-preserve-symlinks-flag": "^1.0.0" 2861 | }, 2862 | "bin": { 2863 | "resolve": "bin/resolve" 2864 | }, 2865 | "funding": { 2866 | "url": "https://github.com/sponsors/ljharb" 2867 | } 2868 | }, 2869 | "node_modules/restore-cursor": { 2870 | "version": "4.0.0", 2871 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", 2872 | "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", 2873 | "dev": true, 2874 | "dependencies": { 2875 | "onetime": "^5.1.0", 2876 | "signal-exit": "^3.0.2" 2877 | }, 2878 | "engines": { 2879 | "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 2880 | }, 2881 | "funding": { 2882 | "url": "https://github.com/sponsors/sindresorhus" 2883 | } 2884 | }, 2885 | "node_modules/reusify": { 2886 | "version": "1.0.4", 2887 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 2888 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 2889 | "dev": true, 2890 | "engines": { 2891 | "iojs": ">=1.0.0", 2892 | "node": ">=0.10.0" 2893 | } 2894 | }, 2895 | "node_modules/run-parallel": { 2896 | "version": "1.2.0", 2897 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 2898 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 2899 | "dev": true, 2900 | "funding": [ 2901 | { 2902 | "type": "github", 2903 | "url": "https://github.com/sponsors/feross" 2904 | }, 2905 | { 2906 | "type": "patreon", 2907 | "url": "https://www.patreon.com/feross" 2908 | }, 2909 | { 2910 | "type": "consulting", 2911 | "url": "https://feross.org/support" 2912 | } 2913 | ], 2914 | "dependencies": { 2915 | "queue-microtask": "^1.2.2" 2916 | } 2917 | }, 2918 | "node_modules/safe-array-concat": { 2919 | "version": "1.1.0", 2920 | "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz", 2921 | "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==", 2922 | "dev": true, 2923 | "dependencies": { 2924 | "call-bind": "^1.0.5", 2925 | "get-intrinsic": "^1.2.2", 2926 | "has-symbols": "^1.0.3", 2927 | "isarray": "^2.0.5" 2928 | }, 2929 | "engines": { 2930 | "node": ">=0.4" 2931 | }, 2932 | "funding": { 2933 | "url": "https://github.com/sponsors/ljharb" 2934 | } 2935 | }, 2936 | "node_modules/safe-buffer": { 2937 | "version": "5.2.1", 2938 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 2939 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 2940 | "dev": true, 2941 | "funding": [ 2942 | { 2943 | "type": "github", 2944 | "url": "https://github.com/sponsors/feross" 2945 | }, 2946 | { 2947 | "type": "patreon", 2948 | "url": "https://www.patreon.com/feross" 2949 | }, 2950 | { 2951 | "type": "consulting", 2952 | "url": "https://feross.org/support" 2953 | } 2954 | ] 2955 | }, 2956 | "node_modules/safe-regex-test": { 2957 | "version": "1.0.2", 2958 | "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.2.tgz", 2959 | "integrity": "sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ==", 2960 | "dev": true, 2961 | "dependencies": { 2962 | "call-bind": "^1.0.5", 2963 | "get-intrinsic": "^1.2.2", 2964 | "is-regex": "^1.1.4" 2965 | }, 2966 | "engines": { 2967 | "node": ">= 0.4" 2968 | }, 2969 | "funding": { 2970 | "url": "https://github.com/sponsors/ljharb" 2971 | } 2972 | }, 2973 | "node_modules/semver": { 2974 | "version": "5.7.2", 2975 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", 2976 | "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", 2977 | "dev": true, 2978 | "bin": { 2979 | "semver": "bin/semver" 2980 | } 2981 | }, 2982 | "node_modules/set-function-length": { 2983 | "version": "1.2.0", 2984 | "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.0.tgz", 2985 | "integrity": "sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==", 2986 | "dev": true, 2987 | "dependencies": { 2988 | "define-data-property": "^1.1.1", 2989 | "function-bind": "^1.1.2", 2990 | "get-intrinsic": "^1.2.2", 2991 | "gopd": "^1.0.1", 2992 | "has-property-descriptors": "^1.0.1" 2993 | }, 2994 | "engines": { 2995 | "node": ">= 0.4" 2996 | } 2997 | }, 2998 | "node_modules/set-function-name": { 2999 | "version": "2.0.1", 3000 | "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", 3001 | "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", 3002 | "dev": true, 3003 | "dependencies": { 3004 | "define-data-property": "^1.0.1", 3005 | "functions-have-names": "^1.2.3", 3006 | "has-property-descriptors": "^1.0.0" 3007 | }, 3008 | "engines": { 3009 | "node": ">= 0.4" 3010 | } 3011 | }, 3012 | "node_modules/shebang-command": { 3013 | "version": "1.2.0", 3014 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 3015 | "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", 3016 | "dev": true, 3017 | "dependencies": { 3018 | "shebang-regex": "^1.0.0" 3019 | }, 3020 | "engines": { 3021 | "node": ">=0.10.0" 3022 | } 3023 | }, 3024 | "node_modules/shebang-regex": { 3025 | "version": "1.0.0", 3026 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 3027 | "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", 3028 | "dev": true, 3029 | "engines": { 3030 | "node": ">=0.10.0" 3031 | } 3032 | }, 3033 | "node_modules/shell-quote": { 3034 | "version": "1.8.1", 3035 | "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", 3036 | "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", 3037 | "dev": true, 3038 | "funding": { 3039 | "url": "https://github.com/sponsors/ljharb" 3040 | } 3041 | }, 3042 | "node_modules/side-channel": { 3043 | "version": "1.0.4", 3044 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", 3045 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", 3046 | "dev": true, 3047 | "dependencies": { 3048 | "call-bind": "^1.0.0", 3049 | "get-intrinsic": "^1.0.2", 3050 | "object-inspect": "^1.9.0" 3051 | }, 3052 | "funding": { 3053 | "url": "https://github.com/sponsors/ljharb" 3054 | } 3055 | }, 3056 | "node_modules/signal-exit": { 3057 | "version": "3.0.7", 3058 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", 3059 | "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", 3060 | "dev": true 3061 | }, 3062 | "node_modules/source-map-js": { 3063 | "version": "1.0.2", 3064 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 3065 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", 3066 | "dev": true, 3067 | "engines": { 3068 | "node": ">=0.10.0" 3069 | } 3070 | }, 3071 | "node_modules/spdx-correct": { 3072 | "version": "3.2.0", 3073 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", 3074 | "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", 3075 | "dev": true, 3076 | "dependencies": { 3077 | "spdx-expression-parse": "^3.0.0", 3078 | "spdx-license-ids": "^3.0.0" 3079 | } 3080 | }, 3081 | "node_modules/spdx-exceptions": { 3082 | "version": "2.3.0", 3083 | "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", 3084 | "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", 3085 | "dev": true 3086 | }, 3087 | "node_modules/spdx-expression-parse": { 3088 | "version": "3.0.1", 3089 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", 3090 | "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", 3091 | "dev": true, 3092 | "dependencies": { 3093 | "spdx-exceptions": "^2.1.0", 3094 | "spdx-license-ids": "^3.0.0" 3095 | } 3096 | }, 3097 | "node_modules/spdx-license-ids": { 3098 | "version": "3.0.16", 3099 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", 3100 | "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", 3101 | "dev": true 3102 | }, 3103 | "node_modules/stdin-discarder": { 3104 | "version": "0.1.0", 3105 | "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.1.0.tgz", 3106 | "integrity": "sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==", 3107 | "dev": true, 3108 | "dependencies": { 3109 | "bl": "^5.0.0" 3110 | }, 3111 | "engines": { 3112 | "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 3113 | }, 3114 | "funding": { 3115 | "url": "https://github.com/sponsors/sindresorhus" 3116 | } 3117 | }, 3118 | "node_modules/string_decoder": { 3119 | "version": "1.3.0", 3120 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", 3121 | "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", 3122 | "dev": true, 3123 | "dependencies": { 3124 | "safe-buffer": "~5.2.0" 3125 | } 3126 | }, 3127 | "node_modules/string-width": { 3128 | "version": "5.1.2", 3129 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", 3130 | "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", 3131 | "dev": true, 3132 | "dependencies": { 3133 | "eastasianwidth": "^0.2.0", 3134 | "emoji-regex": "^9.2.2", 3135 | "strip-ansi": "^7.0.1" 3136 | }, 3137 | "engines": { 3138 | "node": ">=12" 3139 | }, 3140 | "funding": { 3141 | "url": "https://github.com/sponsors/sindresorhus" 3142 | } 3143 | }, 3144 | "node_modules/string-width-cjs": { 3145 | "name": "string-width", 3146 | "version": "4.2.3", 3147 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 3148 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 3149 | "dev": true, 3150 | "dependencies": { 3151 | "emoji-regex": "^8.0.0", 3152 | "is-fullwidth-code-point": "^3.0.0", 3153 | "strip-ansi": "^6.0.1" 3154 | }, 3155 | "engines": { 3156 | "node": ">=8" 3157 | } 3158 | }, 3159 | "node_modules/string-width-cjs/node_modules/ansi-regex": { 3160 | "version": "5.0.1", 3161 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 3162 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 3163 | "dev": true, 3164 | "engines": { 3165 | "node": ">=8" 3166 | } 3167 | }, 3168 | "node_modules/string-width-cjs/node_modules/emoji-regex": { 3169 | "version": "8.0.0", 3170 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 3171 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 3172 | "dev": true 3173 | }, 3174 | "node_modules/string-width-cjs/node_modules/strip-ansi": { 3175 | "version": "6.0.1", 3176 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 3177 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 3178 | "dev": true, 3179 | "dependencies": { 3180 | "ansi-regex": "^5.0.1" 3181 | }, 3182 | "engines": { 3183 | "node": ">=8" 3184 | } 3185 | }, 3186 | "node_modules/string.prototype.padend": { 3187 | "version": "3.1.5", 3188 | "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.5.tgz", 3189 | "integrity": "sha512-DOB27b/2UTTD+4myKUFh+/fXWcu/UDyASIXfg+7VzoCNNGOfWvoyU/x5pvVHr++ztyt/oSYI1BcWBBG/hmlNjA==", 3190 | "dev": true, 3191 | "dependencies": { 3192 | "call-bind": "^1.0.2", 3193 | "define-properties": "^1.2.0", 3194 | "es-abstract": "^1.22.1" 3195 | }, 3196 | "engines": { 3197 | "node": ">= 0.4" 3198 | }, 3199 | "funding": { 3200 | "url": "https://github.com/sponsors/ljharb" 3201 | } 3202 | }, 3203 | "node_modules/string.prototype.trim": { 3204 | "version": "1.2.8", 3205 | "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", 3206 | "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", 3207 | "dev": true, 3208 | "dependencies": { 3209 | "call-bind": "^1.0.2", 3210 | "define-properties": "^1.2.0", 3211 | "es-abstract": "^1.22.1" 3212 | }, 3213 | "engines": { 3214 | "node": ">= 0.4" 3215 | }, 3216 | "funding": { 3217 | "url": "https://github.com/sponsors/ljharb" 3218 | } 3219 | }, 3220 | "node_modules/string.prototype.trimend": { 3221 | "version": "1.0.7", 3222 | "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", 3223 | "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", 3224 | "dev": true, 3225 | "dependencies": { 3226 | "call-bind": "^1.0.2", 3227 | "define-properties": "^1.2.0", 3228 | "es-abstract": "^1.22.1" 3229 | }, 3230 | "funding": { 3231 | "url": "https://github.com/sponsors/ljharb" 3232 | } 3233 | }, 3234 | "node_modules/string.prototype.trimstart": { 3235 | "version": "1.0.7", 3236 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", 3237 | "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", 3238 | "dev": true, 3239 | "dependencies": { 3240 | "call-bind": "^1.0.2", 3241 | "define-properties": "^1.2.0", 3242 | "es-abstract": "^1.22.1" 3243 | }, 3244 | "funding": { 3245 | "url": "https://github.com/sponsors/ljharb" 3246 | } 3247 | }, 3248 | "node_modules/strip-ansi": { 3249 | "version": "7.1.0", 3250 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", 3251 | "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 3252 | "dev": true, 3253 | "dependencies": { 3254 | "ansi-regex": "^6.0.1" 3255 | }, 3256 | "engines": { 3257 | "node": ">=12" 3258 | }, 3259 | "funding": { 3260 | "url": "https://github.com/chalk/strip-ansi?sponsor=1" 3261 | } 3262 | }, 3263 | "node_modules/strip-ansi-cjs": { 3264 | "name": "strip-ansi", 3265 | "version": "6.0.1", 3266 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 3267 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 3268 | "dev": true, 3269 | "dependencies": { 3270 | "ansi-regex": "^5.0.1" 3271 | }, 3272 | "engines": { 3273 | "node": ">=8" 3274 | } 3275 | }, 3276 | "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { 3277 | "version": "5.0.1", 3278 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 3279 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 3280 | "dev": true, 3281 | "engines": { 3282 | "node": ">=8" 3283 | } 3284 | }, 3285 | "node_modules/strip-bom": { 3286 | "version": "3.0.0", 3287 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", 3288 | "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", 3289 | "dev": true, 3290 | "engines": { 3291 | "node": ">=4" 3292 | } 3293 | }, 3294 | "node_modules/sucrase": { 3295 | "version": "3.35.0", 3296 | "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", 3297 | "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", 3298 | "dev": true, 3299 | "dependencies": { 3300 | "@jridgewell/gen-mapping": "^0.3.2", 3301 | "commander": "^4.0.0", 3302 | "glob": "^10.3.10", 3303 | "lines-and-columns": "^1.1.6", 3304 | "mz": "^2.7.0", 3305 | "pirates": "^4.0.1", 3306 | "ts-interface-checker": "^0.1.9" 3307 | }, 3308 | "bin": { 3309 | "sucrase": "bin/sucrase", 3310 | "sucrase-node": "bin/sucrase-node" 3311 | }, 3312 | "engines": { 3313 | "node": ">=16 || 14 >=14.17" 3314 | } 3315 | }, 3316 | "node_modules/supports-color": { 3317 | "version": "5.5.0", 3318 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 3319 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 3320 | "dev": true, 3321 | "dependencies": { 3322 | "has-flag": "^3.0.0" 3323 | }, 3324 | "engines": { 3325 | "node": ">=4" 3326 | } 3327 | }, 3328 | "node_modules/supports-preserve-symlinks-flag": { 3329 | "version": "1.0.0", 3330 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", 3331 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", 3332 | "dev": true, 3333 | "engines": { 3334 | "node": ">= 0.4" 3335 | }, 3336 | "funding": { 3337 | "url": "https://github.com/sponsors/ljharb" 3338 | } 3339 | }, 3340 | "node_modules/tailwindcss": { 3341 | "version": "3.4.1", 3342 | "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.1.tgz", 3343 | "integrity": "sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==", 3344 | "dev": true, 3345 | "dependencies": { 3346 | "@alloc/quick-lru": "^5.2.0", 3347 | "arg": "^5.0.2", 3348 | "chokidar": "^3.5.3", 3349 | "didyoumean": "^1.2.2", 3350 | "dlv": "^1.1.3", 3351 | "fast-glob": "^3.3.0", 3352 | "glob-parent": "^6.0.2", 3353 | "is-glob": "^4.0.3", 3354 | "jiti": "^1.19.1", 3355 | "lilconfig": "^2.1.0", 3356 | "micromatch": "^4.0.5", 3357 | "normalize-path": "^3.0.0", 3358 | "object-hash": "^3.0.0", 3359 | "picocolors": "^1.0.0", 3360 | "postcss": "^8.4.23", 3361 | "postcss-import": "^15.1.0", 3362 | "postcss-js": "^4.0.1", 3363 | "postcss-load-config": "^4.0.1", 3364 | "postcss-nested": "^6.0.1", 3365 | "postcss-selector-parser": "^6.0.11", 3366 | "resolve": "^1.22.2", 3367 | "sucrase": "^3.32.0" 3368 | }, 3369 | "bin": { 3370 | "tailwind": "lib/cli.js", 3371 | "tailwindcss": "lib/cli.js" 3372 | }, 3373 | "engines": { 3374 | "node": ">=14.0.0" 3375 | } 3376 | }, 3377 | "node_modules/tailwindcss/node_modules/postcss-selector-parser": { 3378 | "version": "6.0.15", 3379 | "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", 3380 | "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", 3381 | "dev": true, 3382 | "dependencies": { 3383 | "cssesc": "^3.0.0", 3384 | "util-deprecate": "^1.0.2" 3385 | }, 3386 | "engines": { 3387 | "node": ">=4" 3388 | } 3389 | }, 3390 | "node_modules/thenify": { 3391 | "version": "3.3.1", 3392 | "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", 3393 | "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", 3394 | "dev": true, 3395 | "dependencies": { 3396 | "any-promise": "^1.0.0" 3397 | } 3398 | }, 3399 | "node_modules/thenify-all": { 3400 | "version": "1.6.0", 3401 | "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", 3402 | "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", 3403 | "dev": true, 3404 | "dependencies": { 3405 | "thenify": ">= 3.1.0 < 4" 3406 | }, 3407 | "engines": { 3408 | "node": ">=0.8" 3409 | } 3410 | }, 3411 | "node_modules/to-regex-range": { 3412 | "version": "5.0.1", 3413 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 3414 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 3415 | "dev": true, 3416 | "dependencies": { 3417 | "is-number": "^7.0.0" 3418 | }, 3419 | "engines": { 3420 | "node": ">=8.0" 3421 | } 3422 | }, 3423 | "node_modules/ts-interface-checker": { 3424 | "version": "0.1.13", 3425 | "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", 3426 | "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", 3427 | "dev": true 3428 | }, 3429 | "node_modules/typed-array-buffer": { 3430 | "version": "1.0.0", 3431 | "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", 3432 | "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", 3433 | "dev": true, 3434 | "dependencies": { 3435 | "call-bind": "^1.0.2", 3436 | "get-intrinsic": "^1.2.1", 3437 | "is-typed-array": "^1.1.10" 3438 | }, 3439 | "engines": { 3440 | "node": ">= 0.4" 3441 | } 3442 | }, 3443 | "node_modules/typed-array-byte-length": { 3444 | "version": "1.0.0", 3445 | "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", 3446 | "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", 3447 | "dev": true, 3448 | "dependencies": { 3449 | "call-bind": "^1.0.2", 3450 | "for-each": "^0.3.3", 3451 | "has-proto": "^1.0.1", 3452 | "is-typed-array": "^1.1.10" 3453 | }, 3454 | "engines": { 3455 | "node": ">= 0.4" 3456 | }, 3457 | "funding": { 3458 | "url": "https://github.com/sponsors/ljharb" 3459 | } 3460 | }, 3461 | "node_modules/typed-array-byte-offset": { 3462 | "version": "1.0.0", 3463 | "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", 3464 | "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", 3465 | "dev": true, 3466 | "dependencies": { 3467 | "available-typed-arrays": "^1.0.5", 3468 | "call-bind": "^1.0.2", 3469 | "for-each": "^0.3.3", 3470 | "has-proto": "^1.0.1", 3471 | "is-typed-array": "^1.1.10" 3472 | }, 3473 | "engines": { 3474 | "node": ">= 0.4" 3475 | }, 3476 | "funding": { 3477 | "url": "https://github.com/sponsors/ljharb" 3478 | } 3479 | }, 3480 | "node_modules/typed-array-length": { 3481 | "version": "1.0.4", 3482 | "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", 3483 | "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", 3484 | "dev": true, 3485 | "dependencies": { 3486 | "call-bind": "^1.0.2", 3487 | "for-each": "^0.3.3", 3488 | "is-typed-array": "^1.1.9" 3489 | }, 3490 | "funding": { 3491 | "url": "https://github.com/sponsors/ljharb" 3492 | } 3493 | }, 3494 | "node_modules/unbox-primitive": { 3495 | "version": "1.0.2", 3496 | "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", 3497 | "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", 3498 | "dev": true, 3499 | "dependencies": { 3500 | "call-bind": "^1.0.2", 3501 | "has-bigints": "^1.0.2", 3502 | "has-symbols": "^1.0.3", 3503 | "which-boxed-primitive": "^1.0.2" 3504 | }, 3505 | "funding": { 3506 | "url": "https://github.com/sponsors/ljharb" 3507 | } 3508 | }, 3509 | "node_modules/update-browserslist-db": { 3510 | "version": "1.0.13", 3511 | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", 3512 | "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", 3513 | "dev": true, 3514 | "funding": [ 3515 | { 3516 | "type": "opencollective", 3517 | "url": "https://opencollective.com/browserslist" 3518 | }, 3519 | { 3520 | "type": "tidelift", 3521 | "url": "https://tidelift.com/funding/github/npm/browserslist" 3522 | }, 3523 | { 3524 | "type": "github", 3525 | "url": "https://github.com/sponsors/ai" 3526 | } 3527 | ], 3528 | "dependencies": { 3529 | "escalade": "^3.1.1", 3530 | "picocolors": "^1.0.0" 3531 | }, 3532 | "bin": { 3533 | "update-browserslist-db": "cli.js" 3534 | }, 3535 | "peerDependencies": { 3536 | "browserslist": ">= 4.21.0" 3537 | } 3538 | }, 3539 | "node_modules/util-deprecate": { 3540 | "version": "1.0.2", 3541 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 3542 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", 3543 | "dev": true 3544 | }, 3545 | "node_modules/validate-npm-package-license": { 3546 | "version": "3.0.4", 3547 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", 3548 | "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", 3549 | "dev": true, 3550 | "dependencies": { 3551 | "spdx-correct": "^3.0.0", 3552 | "spdx-expression-parse": "^3.0.0" 3553 | } 3554 | }, 3555 | "node_modules/wcwidth": { 3556 | "version": "1.0.1", 3557 | "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", 3558 | "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", 3559 | "dev": true, 3560 | "dependencies": { 3561 | "defaults": "^1.0.3" 3562 | } 3563 | }, 3564 | "node_modules/which": { 3565 | "version": "1.3.1", 3566 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 3567 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", 3568 | "dev": true, 3569 | "dependencies": { 3570 | "isexe": "^2.0.0" 3571 | }, 3572 | "bin": { 3573 | "which": "bin/which" 3574 | } 3575 | }, 3576 | "node_modules/which-boxed-primitive": { 3577 | "version": "1.0.2", 3578 | "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", 3579 | "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", 3580 | "dev": true, 3581 | "dependencies": { 3582 | "is-bigint": "^1.0.1", 3583 | "is-boolean-object": "^1.1.0", 3584 | "is-number-object": "^1.0.4", 3585 | "is-string": "^1.0.5", 3586 | "is-symbol": "^1.0.3" 3587 | }, 3588 | "funding": { 3589 | "url": "https://github.com/sponsors/ljharb" 3590 | } 3591 | }, 3592 | "node_modules/which-typed-array": { 3593 | "version": "1.1.13", 3594 | "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", 3595 | "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", 3596 | "dev": true, 3597 | "dependencies": { 3598 | "available-typed-arrays": "^1.0.5", 3599 | "call-bind": "^1.0.4", 3600 | "for-each": "^0.3.3", 3601 | "gopd": "^1.0.1", 3602 | "has-tostringtag": "^1.0.0" 3603 | }, 3604 | "engines": { 3605 | "node": ">= 0.4" 3606 | }, 3607 | "funding": { 3608 | "url": "https://github.com/sponsors/ljharb" 3609 | } 3610 | }, 3611 | "node_modules/wrap-ansi": { 3612 | "version": "8.1.0", 3613 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", 3614 | "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", 3615 | "dev": true, 3616 | "dependencies": { 3617 | "ansi-styles": "^6.1.0", 3618 | "string-width": "^5.0.1", 3619 | "strip-ansi": "^7.0.1" 3620 | }, 3621 | "engines": { 3622 | "node": ">=12" 3623 | }, 3624 | "funding": { 3625 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 3626 | } 3627 | }, 3628 | "node_modules/wrap-ansi-cjs": { 3629 | "name": "wrap-ansi", 3630 | "version": "7.0.0", 3631 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", 3632 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", 3633 | "dev": true, 3634 | "dependencies": { 3635 | "ansi-styles": "^4.0.0", 3636 | "string-width": "^4.1.0", 3637 | "strip-ansi": "^6.0.0" 3638 | }, 3639 | "engines": { 3640 | "node": ">=10" 3641 | }, 3642 | "funding": { 3643 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 3644 | } 3645 | }, 3646 | "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { 3647 | "version": "5.0.1", 3648 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 3649 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 3650 | "dev": true, 3651 | "engines": { 3652 | "node": ">=8" 3653 | } 3654 | }, 3655 | "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { 3656 | "version": "4.3.0", 3657 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 3658 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 3659 | "dev": true, 3660 | "dependencies": { 3661 | "color-convert": "^2.0.1" 3662 | }, 3663 | "engines": { 3664 | "node": ">=8" 3665 | }, 3666 | "funding": { 3667 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 3668 | } 3669 | }, 3670 | "node_modules/wrap-ansi-cjs/node_modules/color-convert": { 3671 | "version": "2.0.1", 3672 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 3673 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 3674 | "dev": true, 3675 | "dependencies": { 3676 | "color-name": "~1.1.4" 3677 | }, 3678 | "engines": { 3679 | "node": ">=7.0.0" 3680 | } 3681 | }, 3682 | "node_modules/wrap-ansi-cjs/node_modules/color-name": { 3683 | "version": "1.1.4", 3684 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 3685 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 3686 | "dev": true 3687 | }, 3688 | "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { 3689 | "version": "8.0.0", 3690 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 3691 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 3692 | "dev": true 3693 | }, 3694 | "node_modules/wrap-ansi-cjs/node_modules/string-width": { 3695 | "version": "4.2.3", 3696 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 3697 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 3698 | "dev": true, 3699 | "dependencies": { 3700 | "emoji-regex": "^8.0.0", 3701 | "is-fullwidth-code-point": "^3.0.0", 3702 | "strip-ansi": "^6.0.1" 3703 | }, 3704 | "engines": { 3705 | "node": ">=8" 3706 | } 3707 | }, 3708 | "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { 3709 | "version": "6.0.1", 3710 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 3711 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 3712 | "dev": true, 3713 | "dependencies": { 3714 | "ansi-regex": "^5.0.1" 3715 | }, 3716 | "engines": { 3717 | "node": ">=8" 3718 | } 3719 | }, 3720 | "node_modules/wrap-ansi/node_modules/ansi-styles": { 3721 | "version": "6.2.1", 3722 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", 3723 | "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", 3724 | "dev": true, 3725 | "engines": { 3726 | "node": ">=12" 3727 | }, 3728 | "funding": { 3729 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 3730 | } 3731 | }, 3732 | "node_modules/yaml": { 3733 | "version": "2.3.4", 3734 | "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", 3735 | "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", 3736 | "dev": true, 3737 | "engines": { 3738 | "node": ">= 14" 3739 | } 3740 | } 3741 | } 3742 | } 3743 | -------------------------------------------------------------------------------- /postcss.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | "postcss-import": {}, 4 | "tailwindcss/nesting": {}, 5 | tailwindcss: {}, 6 | autoprefixer: {}, 7 | }, 8 | } 9 | -------------------------------------------------------------------------------- /resources/css/index.css: -------------------------------------------------------------------------------- 1 | @import '../../vendor/filament/filament/resources/css/theme.css'; 2 | -------------------------------------------------------------------------------- /resources/dist/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rupadana/filament-announce/cf67e337eb5b400f426588f1344002f6ce878811/resources/dist/.gitkeep -------------------------------------------------------------------------------- /resources/views/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rupadana/filament-announce/cf67e337eb5b400f426588f1344002f6ce878811/resources/views/.gitkeep -------------------------------------------------------------------------------- /resources/views/announcement-wrapper.blade.php: -------------------------------------------------------------------------------- 1 |
getPollingInterval()) 3 | wire:poll.{{ $pollingInterval }} 4 | @endif 5 | > 6 | @foreach ($this->getUnreadNotificationsData() as $item) 7 | {{-- todo: use blade component instead of @include --}} 8 | @include('filament-announce::announcement', [ 9 | 'notification' => $this->getNotification($item), 10 | ]) 11 | @endforeach 12 |
13 | -------------------------------------------------------------------------------- /resources/views/announcement.blade.php: -------------------------------------------------------------------------------- 1 | @php 2 | use Filament\Support\Enums\Alignment; 3 | 4 | $titleAlignment = $notification->getTitleAlignment(); 5 | $bodyAlignment = $notification->getBodyAlignment(); 6 | $title = $notification->getTitle(); 7 | $body = $notification->getBody(); 8 | $actions = $notification->getActions(); 9 | $color = $notification->getColor(); 10 | 11 | if (! $titleAlignment instanceof Alignment) { 12 | $titleAlignment = filled($titleAlignment) ? (Alignment::tryFrom($titleAlignment) ?? $titleAlignment) : null; 13 | } 14 | 15 | if (! $bodyAlignment instanceof Alignment) { 16 | $bodyAlignment = filled($bodyAlignment) ? (Alignment::tryFrom($bodyAlignment) ?? $bodyAlignment) : null; 17 | } 18 | 19 | $colorClasses = \Illuminate\Support\Arr::toCssClasses(['flex items-center border border-transparent px-6 py-2 gap-4', 'bg-white text-gray-950 dark:bg-white/5 dark:text-white' => $color === 'gray', 'bg-custom-600 text-white dark:bg-custom-500' => $color !== 'gray']); 20 | 21 | $colorStyles = \Illuminate\Support\Arr::toCssStyles([ 22 | \Filament\Support\get_color_css_variables($color, shades: [400, 500, 600]) => $color !== 'gray', 23 | ]); 24 | 25 | if (gettype($color) == 'string') { 26 | $colorStyles = "--c-400:$color;--c-500:$color;--c-600:$color;"; 27 | } 28 | 29 | @endphp 30 | 31 |
32 | @if ($icon = $notification->getIcon()) 33 |
34 | 35 |
36 | @endif 37 |
40 | @if ($title && ! $body && $actions) 41 |
'justify-start', 45 | Alignment::Center => 'justify-center', 46 | Alignment::End, Alignment::Right => 'justify-end', 47 | Alignment::Between, Alignment::Justify => 'justify-between', 48 | default => $titleAlignment, 49 | }, 50 | ])> 51 |
{{ $title }}
52 | 53 | 54 |
55 | @elseif (! $title && $body && $actions) 56 |
'justify-start', 60 | Alignment::Center => 'justify-center', 61 | Alignment::End, Alignment::Right => 'justify-end', 62 | Alignment::Between, Alignment::Justify => 'justify-between', 63 | default => $bodyAlignment, 64 | }, 65 | ])> 66 | {{ $body }} 67 | 68 | 69 |
70 | @else 71 |
'text-start', 74 | Alignment::Center => 'text-center', 75 | Alignment::End => 'text-end', 76 | Alignment::Left => 'text-left', 77 | Alignment::Right => 'text-right', 78 | Alignment::Justify, Alignment::Between => 'text-justify', 79 | default => $titleAlignment, 80 | }, 81 | ])> 82 |
{{ $title }}
83 |
84 |
'justify-start', 88 | Alignment::Center => 'justify-center', 89 | Alignment::End, Alignment::Right => 'justify-end', 90 | Alignment::Between, Alignment::Justify => 'justify-between', 91 | default => $bodyAlignment, 92 | }, 93 | ])> 94 | {{ $body }} 95 | 96 | @if ($actions) 97 | 98 | @endif 99 |
100 | @endif 101 |
102 | 103 | 104 | @if ($notification->isClosable()) 105 |
106 | 108 |
109 | @endif 110 |
111 | -------------------------------------------------------------------------------- /src/Announce.php: -------------------------------------------------------------------------------- 1 | getColor()) { 29 | $this->color(app(FilamentAnnounce::class)->getColor()); 30 | } 31 | 32 | if (! is_iterable($users)) { 33 | $users = [$users]; 34 | } 35 | 36 | foreach ($users as $user) { 37 | $data = $this->getDatabaseMessage(); 38 | 39 | if ($this->metadata) { 40 | $data['metadata'] = $this->metadata; 41 | } 42 | 43 | $notification = new AnnounceNotification($data); 44 | 45 | $user->notify($notification); 46 | } 47 | } 48 | 49 | public function metadata(array $metadata): static 50 | { 51 | if (count($metadata) > 0) { 52 | $this->metadata = $metadata; 53 | } 54 | 55 | return $this; 56 | } 57 | 58 | public function disableCloseButton(bool | Closure $condition = true): static 59 | { 60 | $this->closeButton = ! $condition; 61 | 62 | return $this; 63 | } 64 | 65 | public function titleAlignment(Alignment | string | Closure | null $alignment): static 66 | { 67 | $this->titleAlignment = $alignment; 68 | 69 | return $this; 70 | } 71 | 72 | public function bodyAlignment(Alignment | string | Closure | null $alignment): static 73 | { 74 | $this->bodyAlignment = $alignment; 75 | 76 | return $this; 77 | } 78 | 79 | public function toArray(): array 80 | { 81 | return [ 82 | ...parent::toArray(), 83 | 'closeButton' => $this->isClosable(), 84 | 'titleAlignment' => $this->getTitleAlignment(), 85 | 'bodyAlignment' => $this->getBodyAlignment(), 86 | ]; 87 | } 88 | 89 | public static function fromArray(array $data): static 90 | { 91 | $static = parent::fromArray($data); 92 | 93 | $static->disableCloseButton(! $data['closeButton']); 94 | $static->titleAlignment($data['titleAlignment'] ?? null); 95 | $static->bodyAlignment($data['bodyAlignment'] ?? null); 96 | 97 | return $static; 98 | } 99 | 100 | public function isClosable(): bool 101 | { 102 | return (bool) $this->evaluate($this->closeButton); 103 | } 104 | 105 | public function getTitleAlignment() 106 | { 107 | return $this->evaluate($this->titleAlignment ?? $this->alignment); 108 | } 109 | 110 | public function getBodyAlignment() 111 | { 112 | return $this->evaluate($this->bodyAlignment ?? $this->alignment); 113 | } 114 | } 115 | -------------------------------------------------------------------------------- /src/Components/Announcement.php: -------------------------------------------------------------------------------- 1 | user()) { 26 | return []; 27 | } 28 | 29 | return $this->getUnreadNotificationsQuery()->get(); 30 | } 31 | 32 | public function getNotification(DatabaseNotification $notification): Announce 33 | { 34 | return Announce::fromDatabase($notification); 35 | } 36 | 37 | #[On('markedAnnouncementAsRead')] 38 | public function markNotificationAsRead(string $id): void 39 | { 40 | $this->getNotificationsQuery() 41 | ->where('id', $id) 42 | ->update(['read_at' => now()]); 43 | } 44 | 45 | public function getNotifications(): DatabaseNotificationCollection 46 | { 47 | return $this->getNotificationsQuery()->get(); 48 | } 49 | 50 | public function getNotificationsQuery(): Builder | Relation 51 | { 52 | /** @phpstan-ignore-next-line */ 53 | return $this 54 | ->getUser() 55 | ->notifications() 56 | ->where('type', AnnounceNotification::class); 57 | } 58 | 59 | public function getUnreadNotificationsQuery(): Builder | Relation 60 | { 61 | /** @phpstan-ignore-next-line */ 62 | return $this->getNotificationsQuery()->unread(); 63 | } 64 | 65 | public function getUnreadNotificationsCount(): int 66 | { 67 | return $this->getUnreadNotificationsQuery()->count(); 68 | } 69 | 70 | public function getPollingInterval(): ?string 71 | { 72 | return app(FilamentAnnounce::class)->getPollingInterval(); 73 | } 74 | 75 | public function getUser(): Model | Authenticatable | null 76 | { 77 | return auth(static::$authGuard)->user(); 78 | } 79 | 80 | public function render() 81 | { 82 | return static::$view; 83 | } 84 | } 85 | -------------------------------------------------------------------------------- /src/Facades/FilamentAnnounce.php: -------------------------------------------------------------------------------- 1 | pollingInterval; 19 | } 20 | 21 | /** 22 | * Set the value of pollingInterval 23 | * 24 | * @return self 25 | */ 26 | public function pollingInterval(string $pollingInterval) 27 | { 28 | $this->pollingInterval = $pollingInterval; 29 | 30 | return $this; 31 | } 32 | 33 | /** 34 | * @param string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | Closure | null $color 35 | */ 36 | public function color(string | array | Closure | null $color): static 37 | { 38 | $this->color = $color; 39 | 40 | return $this; 41 | } 42 | 43 | /** 44 | * @return string | array{50: string, 100: string, 200: string, 300: string, 400: string, 500: string, 600: string, 700: string, 800: string, 900: string, 950: string} | null 45 | */ 46 | public function getColor(): string | array | null 47 | { 48 | return $this->color; 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /src/FilamentAnnouncePlugin.php: -------------------------------------------------------------------------------- 1 | resource = $resource; 26 | 27 | return $this; 28 | } 29 | 30 | public function register(Panel $panel): void 31 | { 32 | $panel 33 | ->renderHook( 34 | PanelsRenderHook::BODY_START, 35 | fn (): string => Blade::render('@livewire(\'filament-announce\')'), 36 | ) 37 | ->resources([ 38 | $this->resource, 39 | ]); 40 | } 41 | 42 | public function boot(Panel $panel): void 43 | { 44 | Livewire::component('filament-announce', Announcement::class); 45 | } 46 | 47 | public static function make(): static 48 | { 49 | return app(static::class) 50 | ->defaultColor('primary'); 51 | } 52 | 53 | public function pollingInterval(?string $interval) 54 | { 55 | app(FilamentAnnounce::class)->pollingInterval($interval); 56 | 57 | return $this; 58 | } 59 | 60 | public function defaultColor(string | array | Closure | null $color) 61 | { 62 | app(FilamentAnnounce::class)->color($color); 63 | 64 | return $this; 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /src/FilamentAnnounceServiceProvider.php: -------------------------------------------------------------------------------- 1 | name(static::$name) 23 | ->hasViews('filament-announce') 24 | ->hasConfigFile('filament-announce'); 25 | 26 | if (app()->runningInConsole()) { 27 | $this->loadMigrationsFrom(__DIR__ . '/../database/migrations'); 28 | 29 | $this->publishes([ 30 | __DIR__ . '/Resources' => app_path('/Filament/Resources'), 31 | ], 'filament-announce-resource'); 32 | } 33 | 34 | } 35 | 36 | public function packageRegistered(): void 37 | { 38 | $this->app->singleton(FilamentAnnounce::class, function () { 39 | return new FilamentAnnounce; 40 | }); 41 | 42 | FilamentAsset::register($this->getAssets(), $this->getAssetPackageName()); 43 | } 44 | 45 | /** 46 | * @return array 47 | */ 48 | protected function getAssets(): array 49 | { 50 | return []; 51 | } 52 | 53 | protected function getAssetPackageName(): ?string 54 | { 55 | return 'rupadana/filament-announce'; 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /src/Models/Announcement.php: -------------------------------------------------------------------------------- 1 | 'array', 24 | ]; 25 | } 26 | -------------------------------------------------------------------------------- /src/Notifications/AnnounceNotification.php: -------------------------------------------------------------------------------- 1 | schema([ 32 | TextInput::make('name') 33 | ->minLength(5) 34 | ->required() 35 | ->translateLabel(), 36 | TextInput::make('title') 37 | ->minLength(5) 38 | ->required() 39 | ->translateLabel(), 40 | Textarea::make('body') 41 | ->minLength(20) 42 | ->required() 43 | ->translateLabel(), 44 | IconPicker::make('icon'), 45 | Select::make('color') 46 | ->options([ 47 | ...collect(FilamentColor::getColors())->map(fn ($value, $key) => ucfirst($key))->toArray(), 48 | 'custom' => 'Custom', 49 | ]) 50 | ->translateLabel() 51 | ->live(), 52 | ColorPicker::make('custom_color') 53 | ->hidden(fn (Get $get) => $get('color') != 'custom') 54 | ->requiredIf('color', 'custom') 55 | ->rgb() 56 | ->translateLabel(), 57 | 58 | Select::make('users') 59 | ->options(['all' => 'all'] + User::all()->pluck('name', 'id')->toArray()) 60 | ->multiple() 61 | ->translateLabel() 62 | ->required(), 63 | ]); 64 | } 65 | 66 | public static function table(Table $table): Table 67 | { 68 | return $table 69 | ->columns([ 70 | TextColumn::make('name') 71 | ->translateLabel(), 72 | TextColumn::make('title') 73 | ->translateLabel(), 74 | TextColumn::make('body') 75 | ->translateLabel(), 76 | IconColumn::make('icon') 77 | ->translateLabel(), 78 | ]) 79 | ->actions([ 80 | Tables\Actions\ViewAction::make(), 81 | ]) 82 | ->bulkActions([ 83 | Tables\Actions\BulkActionGroup::make([ 84 | Tables\Actions\DeleteBulkAction::make(), 85 | ]), 86 | ]); 87 | } 88 | 89 | public static function getPages(): array 90 | { 91 | return [ 92 | 'index' => Pages\ListAnnouncements::route('/'), 93 | 'create' => Pages\CreateAnnouncement::route('/create'), 94 | 'view' => Pages\ViewAnnouncement::route('/{record}'), 95 | ]; 96 | } 97 | 98 | public static function getNavigationGroup(): ?string 99 | { 100 | return config('filament-announce.navigation.group'); 101 | } 102 | 103 | public static function canAccess(): bool 104 | { 105 | if (method_exists(auth()->user(), 'hasRole')) { 106 | return auth()->user()->hasRole(config('filament-announce.can_access.role') ?? []); 107 | } 108 | 109 | return true; 110 | } 111 | 112 | public static function getNavigationSort(): ?int 113 | { 114 | return config('filament-announce.navigation.sort') ?? -1; 115 | } 116 | } 117 | -------------------------------------------------------------------------------- /src/Resources/AnnouncementResource/Pages/CreateAnnouncement.php: -------------------------------------------------------------------------------- 1 | getRecord(); 23 | 24 | $color = $record->color; 25 | $custom_color = $record->custom_color; 26 | $icon = $record->icon; 27 | $title = $record->title; 28 | $body = $record->body; 29 | 30 | $isNotifyToAll = in_array('all', $record->users); 31 | 32 | $users = $isNotifyToAll ? User::all() : User::query()->whereIn('id', $record->users)->get(); 33 | 34 | $announce = Announce::make(); 35 | 36 | if ($title) { 37 | $announce->title($title); 38 | } 39 | if ($body) { 40 | $announce->body($body); 41 | } 42 | if ($icon) { 43 | $announce->icon($icon); 44 | } 45 | 46 | if ($color && $color == 'custom') { 47 | $announce->color(str($custom_color)->remove('rgb(')->remove(')')); 48 | } else { 49 | $announce->color(FilamentColor::getColors()[$color]['500']); 50 | } 51 | 52 | $announce->announceTo($users); 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /src/Resources/AnnouncementResource/Pages/ListAnnouncements.php: -------------------------------------------------------------------------------- 1 |