├── src ├── index.js └── suno.js ├── .gitignore ├── webpack.config.js ├── package.json ├── LICENSE ├── example └── main.js ├── README-zh.md ├── README.md └── pnpm-lock.yaml /src/index.js: -------------------------------------------------------------------------------- 1 | const SunoAI = require('./suno'); 2 | 3 | module.exports = { 4 | SunoAI 5 | }; 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Node modules 2 | node_modules/ 3 | 4 | # Compiled output 5 | dist/ 6 | output/ 7 | example/test.js 8 | 9 | # Logs 10 | *.log 11 | 12 | # Environment variables 13 | .env 14 | 15 | # Editor directories and files 16 | .vscode/ 17 | *.sublime-project 18 | *.sublime-workspace 19 | 20 | # macOS 21 | .DS_Store 22 | -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | 3 | module.exports = { 4 | // 入口文件 5 | entry: './src/index.js', 6 | 7 | // 输出配置 8 | output: { 9 | path: path.resolve(__dirname, 'dist'), 10 | filename: 'index.js', 11 | libraryTarget: 'commonjs2', 12 | }, 13 | 14 | // 模块配置 15 | module: { 16 | rules: [ 17 | { 18 | test: /\.js$/, 19 | exclude: /node_modules/, 20 | use: { 21 | loader: 'babel-loader', 22 | options: { 23 | presets: ['@babel/preset-env'], 24 | }, 25 | }, 26 | }, 27 | ], 28 | }, 29 | 30 | // 目标环境 31 | target: 'node', 32 | 33 | // 模式 34 | mode: 'production', 35 | }; 36 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "suno-ai", 3 | "version": "1.0.0", 4 | "description": "Creat high quality songs from suno.ai by Javascript API.", 5 | "main": "dist/index.js", 6 | "scripts": { 7 | "build": "webpack --mode=production", 8 | "test": "node dist/main.js" 9 | }, 10 | "keywords": [ 11 | "suno", 12 | "ai", 13 | "song", 14 | "music", 15 | "generate", 16 | "suno-ai", 17 | "suno.ai", 18 | "sunoai" 19 | ], 20 | "author": "hissin'", 21 | "license": "MIT", 22 | "dependencies": { 23 | "axios": "^1.6.8" 24 | }, 25 | "devDependencies": { 26 | "@babel/core": "^7.18.9", 27 | "@babel/preset-env": "^7.18.9", 28 | "babel-loader": "^8.2.5", 29 | "webpack": "^5.73.0", 30 | "webpack-cli": "^4.10.0" 31 | }, 32 | "repository": { 33 | "type": "git", 34 | "url": "https://github.com/hissincn/suno-ai.git" 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 hissincn 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 all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 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 THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /example/main.js: -------------------------------------------------------------------------------- 1 | const { SunoAI } = require('../src'); 2 | 3 | async function main() { 4 | try { 5 | 6 | // Initialize the sunoAI class with the cookie 7 | const cookie = '__client=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNsaWVudF8yZURxYWpiYVljakN2clVWT3hGOWxvc0pWeW8iLCJyb3RhdGluZ190b2tlbiI6ImplbTQ1YjNmNmwzM21vaTR4OTZtN3h4Mm5vaDExYTdyczY1MDNweGsifQ.i5mmF1WRGOZ_QsTG0Eym22T7PJ_Yp_XDLNW4FCCh907NiF01avVhP-z0chrGnclS25Pv-hHZOCnquhlGBRzFCxi3rqRafmool-QUtNx-PtGtyRXmL9krfrMrdRz8qivhcfuDeL6qvMKPTrsQHtDXY_aOSiALTjNWF5B2k_0AITQptVgPQ5QLeX9zleh3k5bWhy-Yy_C8o6yTyLCFVvPTtO96fMwjhSfmvwJvstZJd8dw3UFJE_9K0WSJSpj2iocWs2rykGd7zGmiw_Oib-kTnbzZ-ZJ4-4AOxr_uKntaHzmwN2bNCSN7oUcR5W556xW7aJDCIDQvQYwhVgOs6mO2iA; __client_uat=1711450962; _cfuvid=fy29oUsNDZy1qsgveu7cmy04BTUxH1DdFkC9V0M_SIE-1711513617632-0.0.1.1-604800000; __cf_bm=jZUFOHmM53ZqCcVzx44mAR_2wTjyJwpnvG6f4pQTm0s-1711554925-1.0.1.1-drEc.b6dVdTXlJ4U1goVJ74MSaudYGVdpV6sdJSBHRG_mN2926yzLhBvRVgDBZJEfRFO449XKFCoamFwaNiakg; mp_26ced217328f4737497bd6ba6641ca1c_mixpanel=%7B%22distinct_id%22%3A%20%22%24device%3A18e7a5752c9cd8-033ae672ea81fb-7e433c49-157188-18e7a5752c9cd8%22%2C%22%24device_id%22%3A%20%2218e7a5752c9cd8-033ae672ea81fb-7e433c49-157188-18e7a5752c9cd8%22%2C%22%24initial_referrer%22%3A%20%22%24direct%22%2C%22%24initial_referring_domain%22%3A%20%22%24direct%22%7D'; 8 | const suno = new SunoAI(cookie); 9 | 10 | //You must call init() before any other methods using async/await 11 | await suno.init(); 12 | 13 | // Get the number of requests left 14 | let limit = await suno.getLimitLeft(); 15 | console.log(`${limit} songs left`); 16 | 17 | /* 18 | Some example payloads: 19 | 20 | 1. Generate a song with a prompt 21 | { 22 | "gpt_description_prompt": "a syncopated blues song about how you're always there for me", 23 | "mv": "chirp-v3-0", 24 | "prompt": "", 25 | "make_instrumental": false 26 | } 27 | or a pure song 28 | { 29 | "gpt_description_prompt":"a syncopated funk song about dancing with you for the last time", 30 | "mv":"chirp-v3-0", 31 | "prompt":"", 32 | "make_instrumental":true 33 | } 34 | 35 | 2. Generate a song with your own lyrics 36 | { 37 | "prompt": "the first line\nthe secound line\nthe third line", 38 | "tags": "dreamy kids music", 39 | "mv": "chirp-v3-0", 40 | "title": "Lines", 41 | "make_instrumental": false, 42 | "continue_clip_id": null, 43 | "continue_at": null 44 | } 45 | 46 | 3. Continue to generate a song from a specific point in a song 47 | { 48 | "prompt":"", 49 | "tags":"futuristic jazz", 50 | "mv":"chirp-v3-0", 51 | "title":"", 52 | "continue_clip_id":"d55b5269-6bad-4f61-a8f5-871fb124044d", 53 | "continue_at":109 54 | } 55 | or remix it and continue 56 | { 57 | "prompt":"[Verse]\nWalking down the street, nobody takes a second glance\nLost in the crowd, I'm just a faceless passerby (oh-oh-oh)\nBut I refuse to blend in, I won't fade into the grey\nGonna paint this town with vibrant colors, watch me fly high\n\n[Verse 2]\nIn a world of trends and fashion, I stick out like a sore thumb\nBut I'm proud to be different, I won't apologize (oh-oh-oh)\nI'm not gonna play the game, I won't follow the rules\nGonna carve my own path, let my spirit rise\n\n[Chorus]\nHey world, take a look at me now (look at me now)\nI'm the one you overlooked, but now I'm breaking out (oh-oh-oh)\nI'm gonna dance to my own beat, gonna sing my own song (sing it loud)\nI won't be lost in the shuffle for too long (too long)", 58 | "tags":"electronic hip hop", 59 | "mv":"chirp-v3-0", 60 | "title":"Lost in the Shuffle", 61 | "continue_clip_id":"62ed33cb-f802-47d3-a233-9a7f3fc804a3", 62 | "continue_at":90.36 63 | } 64 | */ 65 | const payload = { 66 | gpt_description_prompt: null,// Use this prompt to generate lyrics 67 | prompt: null, // Your own lyrics 68 | tags: null, // style 69 | make_instrumental: false,// is pure music (without lyrics) 70 | title: null, // title 71 | mv: 'chirp-v3-0',// video style, option("chirp-v2-xxl-alpha") 72 | continue_clip_id: null,// Continue to generate song id 73 | continue_at: null// Continue generation from this seconds 74 | }; 75 | 76 | // Generated songs with payload 77 | let songInfo = await suno.generateSongs(payload); 78 | 79 | // OR Separate requests 80 | let requestIds = await suno.getRequestIds(payload); 81 | let songInfoB = await suno.getMetadata(requestIds);// Equivalent to songInfo 82 | 83 | // Save the generated songs 84 | const outputDir = './output'; 85 | await suno.saveSongs(songInfo, outputDir); 86 | 87 | // Get the specified songs 88 | const ids = ['79742cdf-86c9-432f-81f2-8c2126de42d9', 'ae5ccb5-f4f8-49c9-8f5c-192e43ed9b0c', '0bba671e-b071-4da8-99e7-361b4c69f8b3']; 89 | const anySongs = await suno.getMetadata(ids); 90 | 91 | // Get all the generated songs 92 | const allSongs = await suno.getAllSongs(); 93 | const allSongsB = await suno.getMetadata(); // Equivalent to allSongs 94 | 95 | // AI generate lyrics with prompt 96 | let lyrics = await suno.generateLyrics("hissin in the kitchen"); 97 | console.log(lyrics); 98 | 99 | } catch (error) { 100 | console.error('Error:', error); 101 | } 102 | } 103 | 104 | main(); 105 | 106 | -------------------------------------------------------------------------------- /README-zh.md: -------------------------------------------------------------------------------- 1 | # suno-ai 2 | 3 | suno-ai 是一个 Node.js 库,用于与 Suno AI 音乐生成服务进行交互。它提供了一系列方法来生成歌曲、获取元数据、保存生成的歌曲等功能。 4 | 5 | [English](README.md) 6 | 7 | ## 安装 8 | 9 | ```bash 10 | npm install suno-ai 11 | ``` 12 | 13 | ## 使用 14 | 15 | 1. 导入库并初始化 SunoAI 实例: 16 | 17 | ```javascript 18 | const { SunoAI } = require('suno-ai'); 19 | const cookie = '你的 cookie'; 20 | const suno = new SunoAI(cookie); 21 | await suno.init(); 22 | ``` 23 | 24 | 2. 生成歌曲: 25 | 26 | ```javascript 27 | const payload = { 28 | gpt_description_prompt: '一首关于永远陪伴在你身边的蓝调歌曲', 29 | mv: 'chirp-v3-0', 30 | prompt: '', 31 | make_instrumental: false 32 | }; 33 | 34 | const songInfo = await suno.generateSongs(payload); 35 | ``` 36 | 37 | 3. 保存生成的歌曲: 38 | 39 | ```javascript 40 | const outputDir = './output'; 41 | await suno.saveSongs(songInfo, outputDir); 42 | ``` 43 | 44 | 4. 获取元数据: 45 | 46 | ```javascript 47 | const ids = ['79742cdf-86c9-432f-81f2-8c2126de42d9', 'ae5ccb5-f4f8-49c9-8f5c-192e43ed9b0c']; 48 | const songs = await suno.getMetadata(ids); 49 | ``` 50 | 51 | 5. 获取所有生成的歌曲: 52 | 53 | ```javascript 54 | const allSongs = await suno.getAllSongs(); 55 | ``` 56 | 57 | 6. 生成歌词: 58 | 59 | ```javascript 60 | const lyrics = await suno.generateLyrics('hissin in the kitchen'); 61 | console.log(lyrics); 62 | ``` 63 | 64 | ## API 65 | 66 | ### `SunoAI(cookie)` 67 | 68 | - `cookie` (string): Suno AI 服务的 cookie。 69 | 70 | ### `init()` 71 | 72 | 初始化 SunoAI 实例。必须在使用其他方法之前调用。 73 | 74 | ### `generateSongs(payload)` 75 | 76 | - `payload` (object): 生成歌曲的参数。 77 | - `gpt_description_prompt` (string): 使用 GPT 生成歌词的提示。 78 | - `prompt` (string): 自定义歌词。 79 | - `tags` (string): 音乐风格标签。 80 | - `make_instrumental` (boolean): 是否生成纯音乐(无歌词)。 81 | - `title` (string): 歌曲标题。 82 | - `mv` (string): 视频风格, 选项 ('chirp-v2-xxl-alpha')。 83 | - `continue_clip_id` (string): 继续生成歌曲的 ID。 84 | - `continue_at` (number): 从指定秒数继续生成。 85 | 86 | 返回生成的歌曲信息。 87 | 88 | ### `getRequestIds(payload)` 89 | 90 | - `payload` (object): 同 `generateSongs` 方法。 91 | 92 | 返回请求 ID 列表。 93 | 94 | ### `getMetadata(ids = [])` 95 | 96 | - `ids` (string[]): 歌曲 ID 列表。如果为空则返回所有歌曲。 97 | 98 | 返回指定歌曲的元数据。 99 | 100 | ### `getAllSongs()` 101 | 102 | 返回所有生成的歌曲元数据。 103 | 104 | ### `saveSongs(songInfo, outputDir)` 105 | 106 | - `songInfo` (object): 歌曲信息对象。 107 | - `outputDir` (string): 输出目录路径。 108 | 109 | 将生成的歌曲保存到指定目录。 110 | 111 | ### `generateLyrics(prompt)` 112 | 113 | - `prompt` (string): 生成歌词的提示。 114 | 115 | 返回生成的歌词。 116 | 117 | ### `getLimitLeft()` 118 | 119 | 返回剩余的请求次数。 120 | 121 | ## 示例 122 | 123 | 下面是一个完整的示例,展示了如何使用 suno-ai 库生成和保存歌曲: 124 | 125 | ```javascript 126 | const { SunoAI } = require('suno-ai'); 127 | 128 | async function main() { 129 | try { 130 | const cookie = '你的 cookie'; 131 | const suno = new SunoAI(cookie); 132 | await suno.init(); 133 | 134 | const payload = { 135 | gpt_description_prompt: '一首关于永远陪伴在你身边的蓝调歌曲', 136 | mv: 'chirp-v3-0', 137 | prompt: '', 138 | make_instrumental: false 139 | }; 140 | 141 | const songInfo = await suno.generateSongs(payload); 142 | const outputDir = './output'; 143 | await suno.saveSongs(songInfo, outputDir); 144 | 145 | const ids = ['79742cdf-86c9-432f-81f2-8c2126de42d9', 'ae5ccb5-f4f8-49c9-8f5c-192e43ed9b0c']; 146 | const songs = await suno.getMetadata(ids); 147 | 148 | const allSongs = await suno.getAllSongs(); 149 | 150 | const lyrics = await suno.generateLyrics('hissin in the kitchen'); 151 | console.log(lyrics); 152 | 153 | } catch (error) { 154 | console.error('Error:', error); 155 | } 156 | } 157 | 158 | main(); 159 | ``` 160 | 161 | ## 注意事项 162 | 163 | - 在使用任何其他方法之前,必须先调用 `init()` 方法初始化 SunoAI 实例。 164 | - 请确保提供有效的 cookie,否则无法与 Suno AI 服务进行交互。 165 | - 生成歌曲需要一些时间,请耐心等待。 166 | - 本库仅用于学习和研究目的,请勿将生成的歌曲用于任何商业用途。 167 | 168 | ## 以下是一些常用的 payload 示例: 169 | 170 | 1. **使用 GPT 生成歌词并生成带歌词的歌曲** 171 | 172 | ```javascript 173 | const payload = { 174 | gpt_description_prompt: "一首关于永远陪伴在你身边的蓝调歌曲", 175 | mv: "chirp-v3-0", 176 | prompt: "", 177 | make_instrumental: false 178 | }; 179 | ``` 180 | 181 | 2. **生成纯音乐(无歌词)歌曲** 182 | 183 | ```javascript 184 | const payload = { 185 | gpt_description_prompt: "一首关于跳舞的放克风格纯音乐", 186 | mv: "chirp-v3-0", 187 | prompt: "", 188 | make_instrumental: true 189 | }; 190 | ``` 191 | 192 | 3. **使用自定义歌词生成歌曲** 193 | 194 | ```javascript 195 | const payload = { 196 | prompt: "第一行歌词\n第二行歌词\n第三行歌词", 197 | tags: "梦幻 儿童音乐", 198 | mv: "chirp-v3-0", 199 | title: "歌曲标题", 200 | make_instrumental: false, 201 | continue_clip_id: null, 202 | continue_at: null 203 | }; 204 | ``` 205 | 206 | 4. **从指定位置继续生成歌曲** 207 | 208 | ```javascript 209 | const payload = { 210 | prompt: "", 211 | tags: "未来爵士风", 212 | mv: "chirp-v3-0", 213 | title: "", 214 | continue_clip_id: "d55b5269-6bad-4f61-a8f5-871fb124044d", 215 | continue_at: 109 216 | }; 217 | ``` 218 | 219 | 5. **remix 并继续生成歌曲** 220 | 221 | ```javascript 222 | const payload = { 223 | prompt: "[Verse]\n行走在街头,无人侧目\n融入人群中,只是个陌生人 (oh-oh-oh)\n但我不愿混同化灰,我要绽放色彩\n要在这座城市里翱翔高飞\n\n[Verse 2]\n在潮流时尚的世界里,我格格不入\n但我为自己与众不同而自豪,无需道歉 (oh-oh-oh)\n我不会遵循游戏规则,我要自己走出一条路\n让我的灵魂自由飞翔\n\n[Chorus]\n嘿,世界,看看我 (看看我)\n你曾无视的我,现在正绽放光芒 (oh-oh-oh)\n我要跳着自己的舞步,唱着自己的歌曲 (大声唱)\n我不会在人群中太久就被遗忘 (遗忘)", 224 | tags: "电子嘻哈", 225 | mv: "chirp-v3-0", 226 | title: "Lost in the Shuffle", 227 | continue_clip_id: "62ed33cb-f802-47d3-a233-9a7f3fc804a3", 228 | continue_at: 90.36 229 | }; 230 | ``` 231 | 232 | 这些示例涵盖了使用 GPT 生成歌词、生成纯音乐、使用自定义歌词、从特定位置继续生成以及 remix 并继续生成等多种情况。您可以根据需求修改 payload 中的参数来满足不同的需求。 -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # suno-ai 2 | 3 | suno-ai is a Node.js library for interacting with the Suno AI music generation service. It provides a set of methods for generating songs, retrieving metadata, saving generated songs, and more. 4 | 5 | [简体中文](README-zh.md) 6 | 7 | ## Installation 8 | 9 | ```bash 10 | npm install suno-ai 11 | ``` 12 | 13 | ## Usage 14 | 15 | 1. Import the library and initialize the SunoAI instance: 16 | 17 | ```javascript 18 | const { SunoAI } = require('suno-ai'); 19 | const cookie = 'your cookie'; 20 | const suno = new SunoAI(cookie); 21 | await suno.init(); 22 | ``` 23 | 24 | 2. Generate songs: 25 | 26 | ```javascript 27 | const payload = { 28 | gpt_description_prompt: 'a blues song about always being by your side', 29 | mv: 'chirp-v3-0', 30 | prompt: '', 31 | make_instrumental: false 32 | }; 33 | 34 | const songInfo = await suno.generateSongs(payload); 35 | ``` 36 | 37 | 3. Save generated songs: 38 | 39 | ```javascript 40 | const outputDir = './output'; 41 | await suno.saveSongs(songInfo, outputDir); 42 | ``` 43 | 44 | 4. Get metadata: 45 | 46 | ```javascript 47 | const ids = ['79742cdf-86c9-432f-81f2-8c2126de42d9', 'ae5ccb5-f4f8-49c9-8f5c-192e43ed9b0c']; 48 | const songs = await suno.getMetadata(ids); 49 | ``` 50 | 51 | 5. Get all generated songs: 52 | 53 | ```javascript 54 | const allSongs = await suno.getAllSongs(); 55 | ``` 56 | 57 | 6. Generate lyrics: 58 | 59 | ```javascript 60 | const lyrics = await suno.generateLyrics('hissin in the kitchen'); 61 | console.log(lyrics); 62 | ``` 63 | 64 | ## API 65 | 66 | ### `SunoAI(cookie)` 67 | 68 | - `cookie` (string): The cookie for the Suno AI service. 69 | 70 | ### `init()` 71 | 72 | Initializes the SunoAI instance. Must be called before using any other methods. 73 | 74 | ### `generateSongs(payload)` 75 | 76 | - `payload` (object): Parameters for generating songs. 77 | - `gpt_description_prompt` (string): Prompt for generating lyrics with GPT. 78 | - `prompt` (string): Custom lyrics. 79 | - `tags` (string): Music genre tags. 80 | - `make_instrumental` (boolean): Whether to generate instrumental music (no lyrics). 81 | - `title` (string): Song title. 82 | - `mv` (string): Video style, options: ('chirp-v2-xxl-alpha'). 83 | - `continue_clip_id` (string): ID for continuing song generation. 84 | - `continue_at` (number): Seconds to continue generation from. 85 | 86 | Returns information about the generated songs. 87 | 88 | ### `getRequestIds(payload)` 89 | 90 | - `payload` (object): Same as `generateSongs` method. 91 | 92 | Returns a list of request IDs. 93 | 94 | ### `getMetadata(ids = [])` 95 | 96 | - `ids` (string[]): List of song IDs. If empty, returns all songs. 97 | 98 | Returns metadata for the specified songs. 99 | 100 | ### `getAllSongs()` 101 | 102 | Returns metadata for all generated songs. 103 | 104 | ### `saveSongs(songInfo, outputDir)` 105 | 106 | - `songInfo` (object): Song information object. 107 | - `outputDir` (string): Output directory path. 108 | 109 | Saves the generated songs to the specified directory. 110 | 111 | ### `generateLyrics(prompt)` 112 | 113 | - `prompt` (string): Prompt for generating lyrics. 114 | 115 | Returns the generated lyrics. 116 | 117 | ### `getLimitLeft()` 118 | 119 | Returns the remaining request limit. 120 | 121 | ## Example 122 | 123 | Here's a complete example demonstrating how to use the suno-ai library to generate and save songs: 124 | 125 | ```javascript 126 | const { SunoAI } = require('suno-ai'); 127 | 128 | async function main() { 129 | try { 130 | const cookie = 'your cookie'; 131 | const suno = new SunoAI(cookie); 132 | await suno.init(); 133 | 134 | const payload = { 135 | gpt_description_prompt: 'a blues song about always being by your side', 136 | mv: 'chirp-v3-0', 137 | prompt: '', 138 | make_instrumental: false 139 | }; 140 | 141 | const songInfo = await suno.generateSongs(payload); 142 | const outputDir = './output'; 143 | await suno.saveSongs(songInfo, outputDir); 144 | 145 | const ids = ['79742cdf-86c9-432f-81f2-8c2126de42d9', 'ae5ccb5-f4f8-49c9-8f5c-192e43ed9b0c']; 146 | const songs = await suno.getMetadata(ids); 147 | 148 | const allSongs = await suno.getAllSongs(); 149 | 150 | const lyrics = await suno.generateLyrics('hissin in the kitchen'); 151 | console.log(lyrics); 152 | 153 | } catch (error) { 154 | console.error('Error:', error); 155 | } 156 | } 157 | 158 | main(); 159 | ``` 160 | 161 | ## Notes 162 | 163 | - You must call the `init()` method to initialize the SunoAI instance before using any other methods. 164 | - Make sure to provide a valid cookie, otherwise you won't be able to interact with the Suno AI service. 165 | - Generating songs takes some time, please be patient. 166 | - This library is for learning and research purposes only. Please do not use the generated songs for any commercial purposes. 167 | 168 | ## Here are some common payload examples: 169 | 170 | 1. **Generate lyrics with GPT and generate a song with lyrics** 171 | 172 | ```javascript 173 | const payload = { 174 | gpt_description_prompt: "a blues song about always being by your side", 175 | mv: "chirp-v3-0", 176 | prompt: "", 177 | make_instrumental: false 178 | }; 179 | ``` 180 | 181 | 2. **Generate instrumental music (no lyrics)** 182 | 183 | ```javascript 184 | const payload = { 185 | gpt_description_prompt: "a funky instrumental song about dancing", 186 | mv: "chirp-v3-0", 187 | prompt: "", 188 | make_instrumental: true 189 | }; 190 | ``` 191 | 192 | 3. **Generate a song with custom lyrics** 193 | 194 | ```javascript 195 | const payload = { 196 | prompt: "First line of lyrics\nSecond line of lyrics\nThird line of lyrics", 197 | tags: "dreamy children's music", 198 | mv: "chirp-v3-0", 199 | title: "Song Title", 200 | make_instrumental: false, 201 | continue_clip_id: null, 202 | continue_at: null 203 | }; 204 | ``` 205 | 206 | 4. **Continue generating a song from a specific point** 207 | 208 | ```javascript 209 | const payload = { 210 | prompt: "", 211 | tags: "futuristic jazz", 212 | mv: "chirp-v3-0", 213 | title: "", 214 | continue_clip_id: "d55b5269-6bad-4f61-a8f5-871fb124044d", 215 | continue_at: 109 216 | }; 217 | ``` 218 | 219 | 5. **Remix and continue generating a song** 220 | 221 | ```javascript 222 | const payload = { 223 | prompt: "[Verse]\nWalking down the street, no one takes a glance\nBlending in the crowd, just another stranger (oh-oh-oh)\nBut I don't wanna fade into the gray, I wanna burst with color\nI wanna soar high in this city\n\n[Verse 2]\nIn the world of trends and fashion, I don't fit in\nBut I'm proud to be different, no need to apologize (oh-oh-oh)\nI won't follow the game's rules, I'll pave my own way\nLet my soul fly free\n\n[Chorus]\nHey world, look at me (look at me)\nThe one you once ignored, now shining bright (oh-oh-oh)\nI'll dance to my own beat, sing my own song (sing it loud)\nI won't be forgotten in the crowd for long (forgotten)", 224 | tags: "electronic hip hop", 225 | mv: "chirp-v3-0", 226 | title: "Lost in the Shuffle", 227 | continue_clip_id: "62ed33cb-f802-47d3-a233-9a7f3fc804a3", 228 | continue_at: 90.36 229 | }; 230 | ``` 231 | 232 | These examples cover using GPT to generate lyrics, generating instrumental music, using custom lyrics, continuing generation from a specific point, and remixing and continuing generation. You can modify the parameters in the payload object to suit your needs. -------------------------------------------------------------------------------- /src/suno.js: -------------------------------------------------------------------------------- 1 | const axios = require('axios'); 2 | const fs = require('fs'); 3 | const path = require('path'); 4 | 5 | const baseUrl = 'https://studio-api.suno.ai'; 6 | const maxRetryTimes = 5; 7 | 8 | class SunoAI { 9 | constructor(sid, cookie) { 10 | this.cookie = cookie; 11 | this.headers = { 12 | "Accept-Encoding": "gzip, deflate, br", 13 | "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3", 14 | "Cookie": cookie 15 | }; 16 | this.sid = sid; 17 | this.retryTime = 0; 18 | 19 | // Keep the token fresh 20 | this.authUpdateTime = null; 21 | axios.interceptors.request.use(async (config) => { 22 | if (this.retryTime > maxRetryTimes) { 23 | throw new Error('Fail to retry because of too many times.'); 24 | } 25 | if (config.url.startsWith(baseUrl)) { 26 | if (!this.authUpdateTime || Date.now() - this.authUpdateTime > 45000) { 27 | await this._renew(); 28 | } 29 | config.headers = this.headers; 30 | } 31 | return config; 32 | }); 33 | axios.interceptors.response.use( 34 | async (response) => { 35 | if (response.config.url.startsWith(baseUrl) && response.data?.detail === 'Unauthorized') { 36 | this.retryTime += 1; 37 | response = await axios.request(response.config); 38 | } 39 | else { 40 | this.retryTime = 0; 41 | } 42 | return response; 43 | }, 44 | async (error) => { 45 | if (error.config.url.startsWith(baseUrl) && error.response?.status === 401) { 46 | this.retryTime += 1; 47 | error.response = await axios.request(error.config); 48 | } 49 | else { 50 | this.retryTime = 0; 51 | } 52 | return error.response; 53 | } 54 | ); 55 | } 56 | 57 | async init() { 58 | try { 59 | await this._renew(); 60 | } 61 | catch (e) { 62 | console.error(e); 63 | throw e; 64 | } 65 | } 66 | 67 | // For every session, authorization token is valid for 60s. 68 | async _renew() { 69 | try { 70 | const tokenResponse = await axios.request({ 71 | method: 'POST', 72 | url: `https://clerk.suno.com/v1/client/sessions/${this.sid}/tokens?_clerk_js_version=5.24.0`, 73 | headers: { 74 | Cookie: this.cookie 75 | } 76 | }) 77 | const tokenData = tokenResponse.data; 78 | const token = tokenData?.jwt; 79 | this.headers.Authorization = `Bearer ${token}`; 80 | this.authUpdateTime = Date.now(); 81 | } 82 | catch (e) { 83 | console.error(e); 84 | throw e; 85 | } 86 | } 87 | 88 | async getLimitLeft() { 89 | const response = await axios.request({ 90 | method: 'GET', 91 | url: `${baseUrl}/api/billing/info/` 92 | }) 93 | const data = response.data; 94 | return Math.floor(data.total_credits_left / 10); 95 | } 96 | 97 | async getRequestIds(payload) { 98 | if (!payload) { 99 | throw new Error('Payload is required'); 100 | } 101 | try { 102 | const response = await axios.post(`${baseUrl}/api/generate/v2/`, payload); 103 | if (response.status !== 200) { 104 | console.error(response.statusText); 105 | throw new Error(`Error response ${response.status}`); 106 | } 107 | 108 | const responseBody = response.data; 109 | const songsMetaInfo = responseBody.clips; 110 | const requestIds = songsMetaInfo.map(info => info.id); 111 | console.log(requestIds); 112 | 113 | return requestIds; 114 | } catch (e) { 115 | console.error(e); 116 | throw e; 117 | } 118 | } 119 | 120 | async getMetadata(ids) { 121 | try { 122 | // Retry if the song is not generated 123 | let retryTimes = 0; 124 | const maxRetryTimes = 20; 125 | 126 | let params = {}; 127 | if (ids && ids.length > 0) { 128 | params.ids = ids.join(','); 129 | } 130 | 131 | while (true) { 132 | const response = await axios.request({ 133 | method: 'GET', 134 | url: `${baseUrl}/api/feed/`, 135 | params 136 | }); 137 | 138 | let data = response?.data; 139 | 140 | if (data[0]?.audio_url && data[1]?.audio_url) { 141 | return data; 142 | } 143 | else { 144 | if (retryTimes > maxRetryTimes) { 145 | throw new Error('Failed to generating song'); 146 | } 147 | else { 148 | console.log('Retrying...'); 149 | await new Promise(resolve => setTimeout(resolve, 5000)); 150 | retryTimes += 1; 151 | } 152 | } 153 | } 154 | } catch (e) { 155 | console.error(e); 156 | } 157 | } 158 | 159 | async generateSongs(payload) { 160 | try { 161 | const requestIds = await this.getRequestIds(payload); 162 | const songsInfo = await this.getMetadata(requestIds); 163 | return songsInfo; 164 | } catch (e) { 165 | console.error(e); 166 | throw e; 167 | } 168 | } 169 | 170 | async saveSongs(songsInfo, outputDir) { 171 | try { 172 | // Create the output directory if it does not exist 173 | if (!fs.existsSync(outputDir)) { 174 | fs.mkdirSync(outputDir, { recursive: true }); 175 | } 176 | 177 | for (let i = 0; i < songsInfo.length; i++) { 178 | let songInfo = songsInfo[i]; 179 | let title = songInfo.title; 180 | let lyric = songInfo.metadata.prompt.replace(/\[.*?\]/g, ''); 181 | let audio_url = songInfo.audio_url; 182 | let image_large_url = songInfo.image_large_url; 183 | let fileName = `${title.replace(/ /g, '_')}_${i}`; 184 | 185 | console.log(`Saving ${fileName}`); 186 | 187 | const jsonPath = path.join(outputDir, `${fileName}.json`); 188 | const mp3Path = path.join(outputDir, `${fileName}.mp3`); 189 | const lrcPath = path.join(outputDir, `${fileName}.lrc`); 190 | const imagePath = path.join(outputDir, `${fileName}.png`); 191 | 192 | // Save the info 193 | fs.writeFileSync(jsonPath, JSON.stringify(songInfo, null, 2), 'utf-8'); 194 | console.log("Info downloaded"); 195 | 196 | // Save the lyric 197 | // !!!!!!!waiting for processing 198 | fs.writeFileSync(lrcPath, `${title}\n\n${lyric}`, 'utf-8'); 199 | console.log("Lyric downloaded"); 200 | 201 | // Save the cover image 202 | const imageResponse = await axios.get(image_large_url, { responseType: 'stream' }); 203 | if (imageResponse.status !== 200) { 204 | throw new Error('Could not download image'); 205 | } 206 | const imageFileStream = fs.createWriteStream(imagePath); 207 | imageResponse.data.pipe(imageFileStream); 208 | await new Promise((resolve, reject) => { 209 | imageFileStream.on('finish', resolve); 210 | imageFileStream.on('error', reject); 211 | }); 212 | console.log("Cover image downloaded"); 213 | 214 | // Download the song 215 | console.log("Song downloading..."); 216 | const response = await axios.get(audio_url, { responseType: 'stream' }); 217 | if (response.status !== 200) { 218 | throw new Error('Could not download song'); 219 | } 220 | const fileStream = fs.createWriteStream(mp3Path); 221 | response.data.pipe(fileStream); 222 | await new Promise((resolve, reject) => { 223 | fileStream.on('finish', resolve); 224 | fileStream.on('error', reject); 225 | }); 226 | console.log("Song downloaded"); 227 | } 228 | } catch (e) { 229 | console.error(e); 230 | throw e; 231 | } 232 | } 233 | 234 | async getAllSongs() { 235 | try { 236 | const data = await this.getMetadata(); 237 | return data; 238 | } catch (e) { 239 | console.error(e); 240 | throw e; 241 | } 242 | } 243 | 244 | async generateLyrics(prompt) { 245 | try { 246 | const requestId = await axios.request({ 247 | method: 'POST', 248 | url: `${baseUrl}/api/generate/lyrics/`, 249 | data: { prompt } 250 | }) 251 | let id = requestId?.data?.id; 252 | while (true) { 253 | const response = await axios.request({ 254 | method: 'GET', 255 | url: `${baseUrl}/api/generate/lyrics/${id}`, 256 | }) 257 | let data = response?.data; 258 | if (data?.status==='complete') { 259 | return data; 260 | } 261 | else { 262 | // console.log('Retrying...'); 263 | await new Promise(resolve => setTimeout(resolve, 300)); 264 | } 265 | } 266 | } catch (e) { 267 | console.error(e); 268 | throw e; 269 | } 270 | } 271 | 272 | } 273 | 274 | module.exports = SunoAI; 275 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | dependencies: 8 | axios: 9 | specifier: ^1.6.8 10 | version: 1.6.8 11 | 12 | devDependencies: 13 | '@babel/core': 14 | specifier: ^7.18.9 15 | version: 7.24.3 16 | '@babel/preset-env': 17 | specifier: ^7.18.9 18 | version: 7.24.3(@babel/core@7.24.3) 19 | babel-loader: 20 | specifier: ^8.2.5 21 | version: 8.3.0(@babel/core@7.24.3)(webpack@5.91.0) 22 | webpack: 23 | specifier: ^5.73.0 24 | version: 5.91.0(webpack-cli@4.10.0) 25 | webpack-cli: 26 | specifier: ^4.10.0 27 | version: 4.10.0(webpack@5.91.0) 28 | 29 | packages: 30 | 31 | /@ampproject/remapping@2.3.0: 32 | resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} 33 | engines: {node: '>=6.0.0'} 34 | dependencies: 35 | '@jridgewell/gen-mapping': 0.3.5 36 | '@jridgewell/trace-mapping': 0.3.25 37 | dev: true 38 | 39 | /@babel/code-frame@7.24.2: 40 | resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} 41 | engines: {node: '>=6.9.0'} 42 | dependencies: 43 | '@babel/highlight': 7.24.2 44 | picocolors: 1.0.0 45 | dev: true 46 | 47 | /@babel/compat-data@7.24.1: 48 | resolution: {integrity: sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==} 49 | engines: {node: '>=6.9.0'} 50 | dev: true 51 | 52 | /@babel/core@7.24.3: 53 | resolution: {integrity: sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==} 54 | engines: {node: '>=6.9.0'} 55 | dependencies: 56 | '@ampproject/remapping': 2.3.0 57 | '@babel/code-frame': 7.24.2 58 | '@babel/generator': 7.24.1 59 | '@babel/helper-compilation-targets': 7.23.6 60 | '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) 61 | '@babel/helpers': 7.24.1 62 | '@babel/parser': 7.24.1 63 | '@babel/template': 7.24.0 64 | '@babel/traverse': 7.24.1 65 | '@babel/types': 7.24.0 66 | convert-source-map: 2.0.0 67 | debug: 4.3.4 68 | gensync: 1.0.0-beta.2 69 | json5: 2.2.3 70 | semver: 6.3.1 71 | transitivePeerDependencies: 72 | - supports-color 73 | dev: true 74 | 75 | /@babel/generator@7.24.1: 76 | resolution: {integrity: sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==} 77 | engines: {node: '>=6.9.0'} 78 | dependencies: 79 | '@babel/types': 7.24.0 80 | '@jridgewell/gen-mapping': 0.3.5 81 | '@jridgewell/trace-mapping': 0.3.25 82 | jsesc: 2.5.2 83 | dev: true 84 | 85 | /@babel/helper-annotate-as-pure@7.22.5: 86 | resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} 87 | engines: {node: '>=6.9.0'} 88 | dependencies: 89 | '@babel/types': 7.24.0 90 | dev: true 91 | 92 | /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: 93 | resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} 94 | engines: {node: '>=6.9.0'} 95 | dependencies: 96 | '@babel/types': 7.24.0 97 | dev: true 98 | 99 | /@babel/helper-compilation-targets@7.23.6: 100 | resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} 101 | engines: {node: '>=6.9.0'} 102 | dependencies: 103 | '@babel/compat-data': 7.24.1 104 | '@babel/helper-validator-option': 7.23.5 105 | browserslist: 4.23.0 106 | lru-cache: 5.1.1 107 | semver: 6.3.1 108 | dev: true 109 | 110 | /@babel/helper-create-class-features-plugin@7.24.1(@babel/core@7.24.3): 111 | resolution: {integrity: sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==} 112 | engines: {node: '>=6.9.0'} 113 | peerDependencies: 114 | '@babel/core': ^7.0.0 115 | dependencies: 116 | '@babel/core': 7.24.3 117 | '@babel/helper-annotate-as-pure': 7.22.5 118 | '@babel/helper-environment-visitor': 7.22.20 119 | '@babel/helper-function-name': 7.23.0 120 | '@babel/helper-member-expression-to-functions': 7.23.0 121 | '@babel/helper-optimise-call-expression': 7.22.5 122 | '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.3) 123 | '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 124 | '@babel/helper-split-export-declaration': 7.22.6 125 | semver: 6.3.1 126 | dev: true 127 | 128 | /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.3): 129 | resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} 130 | engines: {node: '>=6.9.0'} 131 | peerDependencies: 132 | '@babel/core': ^7.0.0 133 | dependencies: 134 | '@babel/core': 7.24.3 135 | '@babel/helper-annotate-as-pure': 7.22.5 136 | regexpu-core: 5.3.2 137 | semver: 6.3.1 138 | dev: true 139 | 140 | /@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.3): 141 | resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==} 142 | peerDependencies: 143 | '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 144 | dependencies: 145 | '@babel/core': 7.24.3 146 | '@babel/helper-compilation-targets': 7.23.6 147 | '@babel/helper-plugin-utils': 7.24.0 148 | debug: 4.3.4 149 | lodash.debounce: 4.0.8 150 | resolve: 1.22.8 151 | transitivePeerDependencies: 152 | - supports-color 153 | dev: true 154 | 155 | /@babel/helper-environment-visitor@7.22.20: 156 | resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} 157 | engines: {node: '>=6.9.0'} 158 | dev: true 159 | 160 | /@babel/helper-function-name@7.23.0: 161 | resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} 162 | engines: {node: '>=6.9.0'} 163 | dependencies: 164 | '@babel/template': 7.24.0 165 | '@babel/types': 7.24.0 166 | dev: true 167 | 168 | /@babel/helper-hoist-variables@7.22.5: 169 | resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} 170 | engines: {node: '>=6.9.0'} 171 | dependencies: 172 | '@babel/types': 7.24.0 173 | dev: true 174 | 175 | /@babel/helper-member-expression-to-functions@7.23.0: 176 | resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} 177 | engines: {node: '>=6.9.0'} 178 | dependencies: 179 | '@babel/types': 7.24.0 180 | dev: true 181 | 182 | /@babel/helper-module-imports@7.24.3: 183 | resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} 184 | engines: {node: '>=6.9.0'} 185 | dependencies: 186 | '@babel/types': 7.24.0 187 | dev: true 188 | 189 | /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.3): 190 | resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} 191 | engines: {node: '>=6.9.0'} 192 | peerDependencies: 193 | '@babel/core': ^7.0.0 194 | dependencies: 195 | '@babel/core': 7.24.3 196 | '@babel/helper-environment-visitor': 7.22.20 197 | '@babel/helper-module-imports': 7.24.3 198 | '@babel/helper-simple-access': 7.22.5 199 | '@babel/helper-split-export-declaration': 7.22.6 200 | '@babel/helper-validator-identifier': 7.22.20 201 | dev: true 202 | 203 | /@babel/helper-optimise-call-expression@7.22.5: 204 | resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} 205 | engines: {node: '>=6.9.0'} 206 | dependencies: 207 | '@babel/types': 7.24.0 208 | dev: true 209 | 210 | /@babel/helper-plugin-utils@7.24.0: 211 | resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} 212 | engines: {node: '>=6.9.0'} 213 | dev: true 214 | 215 | /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.3): 216 | resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} 217 | engines: {node: '>=6.9.0'} 218 | peerDependencies: 219 | '@babel/core': ^7.0.0 220 | dependencies: 221 | '@babel/core': 7.24.3 222 | '@babel/helper-annotate-as-pure': 7.22.5 223 | '@babel/helper-environment-visitor': 7.22.20 224 | '@babel/helper-wrap-function': 7.22.20 225 | dev: true 226 | 227 | /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.3): 228 | resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} 229 | engines: {node: '>=6.9.0'} 230 | peerDependencies: 231 | '@babel/core': ^7.0.0 232 | dependencies: 233 | '@babel/core': 7.24.3 234 | '@babel/helper-environment-visitor': 7.22.20 235 | '@babel/helper-member-expression-to-functions': 7.23.0 236 | '@babel/helper-optimise-call-expression': 7.22.5 237 | dev: true 238 | 239 | /@babel/helper-simple-access@7.22.5: 240 | resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} 241 | engines: {node: '>=6.9.0'} 242 | dependencies: 243 | '@babel/types': 7.24.0 244 | dev: true 245 | 246 | /@babel/helper-skip-transparent-expression-wrappers@7.22.5: 247 | resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} 248 | engines: {node: '>=6.9.0'} 249 | dependencies: 250 | '@babel/types': 7.24.0 251 | dev: true 252 | 253 | /@babel/helper-split-export-declaration@7.22.6: 254 | resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} 255 | engines: {node: '>=6.9.0'} 256 | dependencies: 257 | '@babel/types': 7.24.0 258 | dev: true 259 | 260 | /@babel/helper-string-parser@7.24.1: 261 | resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} 262 | engines: {node: '>=6.9.0'} 263 | dev: true 264 | 265 | /@babel/helper-validator-identifier@7.22.20: 266 | resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} 267 | engines: {node: '>=6.9.0'} 268 | dev: true 269 | 270 | /@babel/helper-validator-option@7.23.5: 271 | resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} 272 | engines: {node: '>=6.9.0'} 273 | dev: true 274 | 275 | /@babel/helper-wrap-function@7.22.20: 276 | resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} 277 | engines: {node: '>=6.9.0'} 278 | dependencies: 279 | '@babel/helper-function-name': 7.23.0 280 | '@babel/template': 7.24.0 281 | '@babel/types': 7.24.0 282 | dev: true 283 | 284 | /@babel/helpers@7.24.1: 285 | resolution: {integrity: sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==} 286 | engines: {node: '>=6.9.0'} 287 | dependencies: 288 | '@babel/template': 7.24.0 289 | '@babel/traverse': 7.24.1 290 | '@babel/types': 7.24.0 291 | transitivePeerDependencies: 292 | - supports-color 293 | dev: true 294 | 295 | /@babel/highlight@7.24.2: 296 | resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} 297 | engines: {node: '>=6.9.0'} 298 | dependencies: 299 | '@babel/helper-validator-identifier': 7.22.20 300 | chalk: 2.4.2 301 | js-tokens: 4.0.0 302 | picocolors: 1.0.0 303 | dev: true 304 | 305 | /@babel/parser@7.24.1: 306 | resolution: {integrity: sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==} 307 | engines: {node: '>=6.0.0'} 308 | hasBin: true 309 | dependencies: 310 | '@babel/types': 7.24.0 311 | dev: true 312 | 313 | /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.3): 314 | resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==} 315 | engines: {node: '>=6.9.0'} 316 | peerDependencies: 317 | '@babel/core': ^7.0.0 318 | dependencies: 319 | '@babel/core': 7.24.3 320 | '@babel/helper-plugin-utils': 7.24.0 321 | dev: true 322 | 323 | /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.3): 324 | resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==} 325 | engines: {node: '>=6.9.0'} 326 | peerDependencies: 327 | '@babel/core': ^7.13.0 328 | dependencies: 329 | '@babel/core': 7.24.3 330 | '@babel/helper-plugin-utils': 7.24.0 331 | '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 332 | '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.3) 333 | dev: true 334 | 335 | /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.3): 336 | resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==} 337 | engines: {node: '>=6.9.0'} 338 | peerDependencies: 339 | '@babel/core': ^7.0.0 340 | dependencies: 341 | '@babel/core': 7.24.3 342 | '@babel/helper-environment-visitor': 7.22.20 343 | '@babel/helper-plugin-utils': 7.24.0 344 | dev: true 345 | 346 | /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.3): 347 | resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} 348 | engines: {node: '>=6.9.0'} 349 | peerDependencies: 350 | '@babel/core': ^7.0.0-0 351 | dependencies: 352 | '@babel/core': 7.24.3 353 | dev: true 354 | 355 | /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.3): 356 | resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} 357 | peerDependencies: 358 | '@babel/core': ^7.0.0-0 359 | dependencies: 360 | '@babel/core': 7.24.3 361 | '@babel/helper-plugin-utils': 7.24.0 362 | dev: true 363 | 364 | /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.3): 365 | resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} 366 | peerDependencies: 367 | '@babel/core': ^7.0.0-0 368 | dependencies: 369 | '@babel/core': 7.24.3 370 | '@babel/helper-plugin-utils': 7.24.0 371 | dev: true 372 | 373 | /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.3): 374 | resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} 375 | engines: {node: '>=6.9.0'} 376 | peerDependencies: 377 | '@babel/core': ^7.0.0-0 378 | dependencies: 379 | '@babel/core': 7.24.3 380 | '@babel/helper-plugin-utils': 7.24.0 381 | dev: true 382 | 383 | /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.3): 384 | resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} 385 | peerDependencies: 386 | '@babel/core': ^7.0.0-0 387 | dependencies: 388 | '@babel/core': 7.24.3 389 | '@babel/helper-plugin-utils': 7.24.0 390 | dev: true 391 | 392 | /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.3): 393 | resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} 394 | peerDependencies: 395 | '@babel/core': ^7.0.0-0 396 | dependencies: 397 | '@babel/core': 7.24.3 398 | '@babel/helper-plugin-utils': 7.24.0 399 | dev: true 400 | 401 | /@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.3): 402 | resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==} 403 | engines: {node: '>=6.9.0'} 404 | peerDependencies: 405 | '@babel/core': ^7.0.0-0 406 | dependencies: 407 | '@babel/core': 7.24.3 408 | '@babel/helper-plugin-utils': 7.24.0 409 | dev: true 410 | 411 | /@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.3): 412 | resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==} 413 | engines: {node: '>=6.9.0'} 414 | peerDependencies: 415 | '@babel/core': ^7.0.0-0 416 | dependencies: 417 | '@babel/core': 7.24.3 418 | '@babel/helper-plugin-utils': 7.24.0 419 | dev: true 420 | 421 | /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.3): 422 | resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} 423 | peerDependencies: 424 | '@babel/core': ^7.0.0-0 425 | dependencies: 426 | '@babel/core': 7.24.3 427 | '@babel/helper-plugin-utils': 7.24.0 428 | dev: true 429 | 430 | /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.3): 431 | resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} 432 | peerDependencies: 433 | '@babel/core': ^7.0.0-0 434 | dependencies: 435 | '@babel/core': 7.24.3 436 | '@babel/helper-plugin-utils': 7.24.0 437 | dev: true 438 | 439 | /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.3): 440 | resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} 441 | peerDependencies: 442 | '@babel/core': ^7.0.0-0 443 | dependencies: 444 | '@babel/core': 7.24.3 445 | '@babel/helper-plugin-utils': 7.24.0 446 | dev: true 447 | 448 | /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.3): 449 | resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} 450 | peerDependencies: 451 | '@babel/core': ^7.0.0-0 452 | dependencies: 453 | '@babel/core': 7.24.3 454 | '@babel/helper-plugin-utils': 7.24.0 455 | dev: true 456 | 457 | /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.3): 458 | resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} 459 | peerDependencies: 460 | '@babel/core': ^7.0.0-0 461 | dependencies: 462 | '@babel/core': 7.24.3 463 | '@babel/helper-plugin-utils': 7.24.0 464 | dev: true 465 | 466 | /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.3): 467 | resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} 468 | peerDependencies: 469 | '@babel/core': ^7.0.0-0 470 | dependencies: 471 | '@babel/core': 7.24.3 472 | '@babel/helper-plugin-utils': 7.24.0 473 | dev: true 474 | 475 | /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.3): 476 | resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} 477 | peerDependencies: 478 | '@babel/core': ^7.0.0-0 479 | dependencies: 480 | '@babel/core': 7.24.3 481 | '@babel/helper-plugin-utils': 7.24.0 482 | dev: true 483 | 484 | /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.3): 485 | resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} 486 | peerDependencies: 487 | '@babel/core': ^7.0.0-0 488 | dependencies: 489 | '@babel/core': 7.24.3 490 | '@babel/helper-plugin-utils': 7.24.0 491 | dev: true 492 | 493 | /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.3): 494 | resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} 495 | engines: {node: '>=6.9.0'} 496 | peerDependencies: 497 | '@babel/core': ^7.0.0-0 498 | dependencies: 499 | '@babel/core': 7.24.3 500 | '@babel/helper-plugin-utils': 7.24.0 501 | dev: true 502 | 503 | /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.3): 504 | resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} 505 | engines: {node: '>=6.9.0'} 506 | peerDependencies: 507 | '@babel/core': ^7.0.0-0 508 | dependencies: 509 | '@babel/core': 7.24.3 510 | '@babel/helper-plugin-utils': 7.24.0 511 | dev: true 512 | 513 | /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.3): 514 | resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} 515 | engines: {node: '>=6.9.0'} 516 | peerDependencies: 517 | '@babel/core': ^7.0.0 518 | dependencies: 519 | '@babel/core': 7.24.3 520 | '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) 521 | '@babel/helper-plugin-utils': 7.24.0 522 | dev: true 523 | 524 | /@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.3): 525 | resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==} 526 | engines: {node: '>=6.9.0'} 527 | peerDependencies: 528 | '@babel/core': ^7.0.0-0 529 | dependencies: 530 | '@babel/core': 7.24.3 531 | '@babel/helper-plugin-utils': 7.24.0 532 | dev: true 533 | 534 | /@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.3): 535 | resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==} 536 | engines: {node: '>=6.9.0'} 537 | peerDependencies: 538 | '@babel/core': ^7.0.0-0 539 | dependencies: 540 | '@babel/core': 7.24.3 541 | '@babel/helper-environment-visitor': 7.22.20 542 | '@babel/helper-plugin-utils': 7.24.0 543 | '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.3) 544 | '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.3) 545 | dev: true 546 | 547 | /@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.3): 548 | resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==} 549 | engines: {node: '>=6.9.0'} 550 | peerDependencies: 551 | '@babel/core': ^7.0.0-0 552 | dependencies: 553 | '@babel/core': 7.24.3 554 | '@babel/helper-module-imports': 7.24.3 555 | '@babel/helper-plugin-utils': 7.24.0 556 | '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.3) 557 | dev: true 558 | 559 | /@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.3): 560 | resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==} 561 | engines: {node: '>=6.9.0'} 562 | peerDependencies: 563 | '@babel/core': ^7.0.0-0 564 | dependencies: 565 | '@babel/core': 7.24.3 566 | '@babel/helper-plugin-utils': 7.24.0 567 | dev: true 568 | 569 | /@babel/plugin-transform-block-scoping@7.24.1(@babel/core@7.24.3): 570 | resolution: {integrity: sha512-h71T2QQvDgM2SmT29UYU6ozjMlAt7s7CSs5Hvy8f8cf/GM/Z4a2zMfN+fjVGaieeCrXR3EdQl6C4gQG+OgmbKw==} 571 | engines: {node: '>=6.9.0'} 572 | peerDependencies: 573 | '@babel/core': ^7.0.0-0 574 | dependencies: 575 | '@babel/core': 7.24.3 576 | '@babel/helper-plugin-utils': 7.24.0 577 | dev: true 578 | 579 | /@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.3): 580 | resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==} 581 | engines: {node: '>=6.9.0'} 582 | peerDependencies: 583 | '@babel/core': ^7.0.0-0 584 | dependencies: 585 | '@babel/core': 7.24.3 586 | '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) 587 | '@babel/helper-plugin-utils': 7.24.0 588 | dev: true 589 | 590 | /@babel/plugin-transform-class-static-block@7.24.1(@babel/core@7.24.3): 591 | resolution: {integrity: sha512-FUHlKCn6J3ERiu8Dv+4eoz7w8+kFLSyeVG4vDAikwADGjUCoHw/JHokyGtr8OR4UjpwPVivyF+h8Q5iv/JmrtA==} 592 | engines: {node: '>=6.9.0'} 593 | peerDependencies: 594 | '@babel/core': ^7.12.0 595 | dependencies: 596 | '@babel/core': 7.24.3 597 | '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) 598 | '@babel/helper-plugin-utils': 7.24.0 599 | '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.3) 600 | dev: true 601 | 602 | /@babel/plugin-transform-classes@7.24.1(@babel/core@7.24.3): 603 | resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==} 604 | engines: {node: '>=6.9.0'} 605 | peerDependencies: 606 | '@babel/core': ^7.0.0-0 607 | dependencies: 608 | '@babel/core': 7.24.3 609 | '@babel/helper-annotate-as-pure': 7.22.5 610 | '@babel/helper-compilation-targets': 7.23.6 611 | '@babel/helper-environment-visitor': 7.22.20 612 | '@babel/helper-function-name': 7.23.0 613 | '@babel/helper-plugin-utils': 7.24.0 614 | '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.3) 615 | '@babel/helper-split-export-declaration': 7.22.6 616 | globals: 11.12.0 617 | dev: true 618 | 619 | /@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.3): 620 | resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==} 621 | engines: {node: '>=6.9.0'} 622 | peerDependencies: 623 | '@babel/core': ^7.0.0-0 624 | dependencies: 625 | '@babel/core': 7.24.3 626 | '@babel/helper-plugin-utils': 7.24.0 627 | '@babel/template': 7.24.0 628 | dev: true 629 | 630 | /@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.24.3): 631 | resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==} 632 | engines: {node: '>=6.9.0'} 633 | peerDependencies: 634 | '@babel/core': ^7.0.0-0 635 | dependencies: 636 | '@babel/core': 7.24.3 637 | '@babel/helper-plugin-utils': 7.24.0 638 | dev: true 639 | 640 | /@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.3): 641 | resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==} 642 | engines: {node: '>=6.9.0'} 643 | peerDependencies: 644 | '@babel/core': ^7.0.0-0 645 | dependencies: 646 | '@babel/core': 7.24.3 647 | '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) 648 | '@babel/helper-plugin-utils': 7.24.0 649 | dev: true 650 | 651 | /@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.3): 652 | resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==} 653 | engines: {node: '>=6.9.0'} 654 | peerDependencies: 655 | '@babel/core': ^7.0.0-0 656 | dependencies: 657 | '@babel/core': 7.24.3 658 | '@babel/helper-plugin-utils': 7.24.0 659 | dev: true 660 | 661 | /@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.3): 662 | resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==} 663 | engines: {node: '>=6.9.0'} 664 | peerDependencies: 665 | '@babel/core': ^7.0.0-0 666 | dependencies: 667 | '@babel/core': 7.24.3 668 | '@babel/helper-plugin-utils': 7.24.0 669 | '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.3) 670 | dev: true 671 | 672 | /@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.3): 673 | resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==} 674 | engines: {node: '>=6.9.0'} 675 | peerDependencies: 676 | '@babel/core': ^7.0.0-0 677 | dependencies: 678 | '@babel/core': 7.24.3 679 | '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 680 | '@babel/helper-plugin-utils': 7.24.0 681 | dev: true 682 | 683 | /@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.3): 684 | resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==} 685 | engines: {node: '>=6.9.0'} 686 | peerDependencies: 687 | '@babel/core': ^7.0.0-0 688 | dependencies: 689 | '@babel/core': 7.24.3 690 | '@babel/helper-plugin-utils': 7.24.0 691 | '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.3) 692 | dev: true 693 | 694 | /@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.3): 695 | resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==} 696 | engines: {node: '>=6.9.0'} 697 | peerDependencies: 698 | '@babel/core': ^7.0.0-0 699 | dependencies: 700 | '@babel/core': 7.24.3 701 | '@babel/helper-plugin-utils': 7.24.0 702 | '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 703 | dev: true 704 | 705 | /@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.3): 706 | resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==} 707 | engines: {node: '>=6.9.0'} 708 | peerDependencies: 709 | '@babel/core': ^7.0.0-0 710 | dependencies: 711 | '@babel/core': 7.24.3 712 | '@babel/helper-compilation-targets': 7.23.6 713 | '@babel/helper-function-name': 7.23.0 714 | '@babel/helper-plugin-utils': 7.24.0 715 | dev: true 716 | 717 | /@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.3): 718 | resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==} 719 | engines: {node: '>=6.9.0'} 720 | peerDependencies: 721 | '@babel/core': ^7.0.0-0 722 | dependencies: 723 | '@babel/core': 7.24.3 724 | '@babel/helper-plugin-utils': 7.24.0 725 | '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.3) 726 | dev: true 727 | 728 | /@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.3): 729 | resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==} 730 | engines: {node: '>=6.9.0'} 731 | peerDependencies: 732 | '@babel/core': ^7.0.0-0 733 | dependencies: 734 | '@babel/core': 7.24.3 735 | '@babel/helper-plugin-utils': 7.24.0 736 | dev: true 737 | 738 | /@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.3): 739 | resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==} 740 | engines: {node: '>=6.9.0'} 741 | peerDependencies: 742 | '@babel/core': ^7.0.0-0 743 | dependencies: 744 | '@babel/core': 7.24.3 745 | '@babel/helper-plugin-utils': 7.24.0 746 | '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.3) 747 | dev: true 748 | 749 | /@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.3): 750 | resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==} 751 | engines: {node: '>=6.9.0'} 752 | peerDependencies: 753 | '@babel/core': ^7.0.0-0 754 | dependencies: 755 | '@babel/core': 7.24.3 756 | '@babel/helper-plugin-utils': 7.24.0 757 | dev: true 758 | 759 | /@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.3): 760 | resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==} 761 | engines: {node: '>=6.9.0'} 762 | peerDependencies: 763 | '@babel/core': ^7.0.0-0 764 | dependencies: 765 | '@babel/core': 7.24.3 766 | '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) 767 | '@babel/helper-plugin-utils': 7.24.0 768 | dev: true 769 | 770 | /@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.3): 771 | resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} 772 | engines: {node: '>=6.9.0'} 773 | peerDependencies: 774 | '@babel/core': ^7.0.0-0 775 | dependencies: 776 | '@babel/core': 7.24.3 777 | '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) 778 | '@babel/helper-plugin-utils': 7.24.0 779 | '@babel/helper-simple-access': 7.22.5 780 | dev: true 781 | 782 | /@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.3): 783 | resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==} 784 | engines: {node: '>=6.9.0'} 785 | peerDependencies: 786 | '@babel/core': ^7.0.0-0 787 | dependencies: 788 | '@babel/core': 7.24.3 789 | '@babel/helper-hoist-variables': 7.22.5 790 | '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) 791 | '@babel/helper-plugin-utils': 7.24.0 792 | '@babel/helper-validator-identifier': 7.22.20 793 | dev: true 794 | 795 | /@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.3): 796 | resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==} 797 | engines: {node: '>=6.9.0'} 798 | peerDependencies: 799 | '@babel/core': ^7.0.0-0 800 | dependencies: 801 | '@babel/core': 7.24.3 802 | '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.3) 803 | '@babel/helper-plugin-utils': 7.24.0 804 | dev: true 805 | 806 | /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.3): 807 | resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} 808 | engines: {node: '>=6.9.0'} 809 | peerDependencies: 810 | '@babel/core': ^7.0.0 811 | dependencies: 812 | '@babel/core': 7.24.3 813 | '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) 814 | '@babel/helper-plugin-utils': 7.24.0 815 | dev: true 816 | 817 | /@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.3): 818 | resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==} 819 | engines: {node: '>=6.9.0'} 820 | peerDependencies: 821 | '@babel/core': ^7.0.0-0 822 | dependencies: 823 | '@babel/core': 7.24.3 824 | '@babel/helper-plugin-utils': 7.24.0 825 | dev: true 826 | 827 | /@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.3): 828 | resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==} 829 | engines: {node: '>=6.9.0'} 830 | peerDependencies: 831 | '@babel/core': ^7.0.0-0 832 | dependencies: 833 | '@babel/core': 7.24.3 834 | '@babel/helper-plugin-utils': 7.24.0 835 | '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.3) 836 | dev: true 837 | 838 | /@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.3): 839 | resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==} 840 | engines: {node: '>=6.9.0'} 841 | peerDependencies: 842 | '@babel/core': ^7.0.0-0 843 | dependencies: 844 | '@babel/core': 7.24.3 845 | '@babel/helper-plugin-utils': 7.24.0 846 | '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.3) 847 | dev: true 848 | 849 | /@babel/plugin-transform-object-rest-spread@7.24.1(@babel/core@7.24.3): 850 | resolution: {integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==} 851 | engines: {node: '>=6.9.0'} 852 | peerDependencies: 853 | '@babel/core': ^7.0.0-0 854 | dependencies: 855 | '@babel/core': 7.24.3 856 | '@babel/helper-compilation-targets': 7.23.6 857 | '@babel/helper-plugin-utils': 7.24.0 858 | '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.3) 859 | '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.3) 860 | dev: true 861 | 862 | /@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.3): 863 | resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==} 864 | engines: {node: '>=6.9.0'} 865 | peerDependencies: 866 | '@babel/core': ^7.0.0-0 867 | dependencies: 868 | '@babel/core': 7.24.3 869 | '@babel/helper-plugin-utils': 7.24.0 870 | '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.3) 871 | dev: true 872 | 873 | /@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.3): 874 | resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==} 875 | engines: {node: '>=6.9.0'} 876 | peerDependencies: 877 | '@babel/core': ^7.0.0-0 878 | dependencies: 879 | '@babel/core': 7.24.3 880 | '@babel/helper-plugin-utils': 7.24.0 881 | '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.3) 882 | dev: true 883 | 884 | /@babel/plugin-transform-optional-chaining@7.24.1(@babel/core@7.24.3): 885 | resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==} 886 | engines: {node: '>=6.9.0'} 887 | peerDependencies: 888 | '@babel/core': ^7.0.0-0 889 | dependencies: 890 | '@babel/core': 7.24.3 891 | '@babel/helper-plugin-utils': 7.24.0 892 | '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 893 | '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.3) 894 | dev: true 895 | 896 | /@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.3): 897 | resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==} 898 | engines: {node: '>=6.9.0'} 899 | peerDependencies: 900 | '@babel/core': ^7.0.0-0 901 | dependencies: 902 | '@babel/core': 7.24.3 903 | '@babel/helper-plugin-utils': 7.24.0 904 | dev: true 905 | 906 | /@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.3): 907 | resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==} 908 | engines: {node: '>=6.9.0'} 909 | peerDependencies: 910 | '@babel/core': ^7.0.0-0 911 | dependencies: 912 | '@babel/core': 7.24.3 913 | '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) 914 | '@babel/helper-plugin-utils': 7.24.0 915 | dev: true 916 | 917 | /@babel/plugin-transform-private-property-in-object@7.24.1(@babel/core@7.24.3): 918 | resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==} 919 | engines: {node: '>=6.9.0'} 920 | peerDependencies: 921 | '@babel/core': ^7.0.0-0 922 | dependencies: 923 | '@babel/core': 7.24.3 924 | '@babel/helper-annotate-as-pure': 7.22.5 925 | '@babel/helper-create-class-features-plugin': 7.24.1(@babel/core@7.24.3) 926 | '@babel/helper-plugin-utils': 7.24.0 927 | '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.3) 928 | dev: true 929 | 930 | /@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.3): 931 | resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==} 932 | engines: {node: '>=6.9.0'} 933 | peerDependencies: 934 | '@babel/core': ^7.0.0-0 935 | dependencies: 936 | '@babel/core': 7.24.3 937 | '@babel/helper-plugin-utils': 7.24.0 938 | dev: true 939 | 940 | /@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.3): 941 | resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==} 942 | engines: {node: '>=6.9.0'} 943 | peerDependencies: 944 | '@babel/core': ^7.0.0-0 945 | dependencies: 946 | '@babel/core': 7.24.3 947 | '@babel/helper-plugin-utils': 7.24.0 948 | regenerator-transform: 0.15.2 949 | dev: true 950 | 951 | /@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.3): 952 | resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==} 953 | engines: {node: '>=6.9.0'} 954 | peerDependencies: 955 | '@babel/core': ^7.0.0-0 956 | dependencies: 957 | '@babel/core': 7.24.3 958 | '@babel/helper-plugin-utils': 7.24.0 959 | dev: true 960 | 961 | /@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.3): 962 | resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==} 963 | engines: {node: '>=6.9.0'} 964 | peerDependencies: 965 | '@babel/core': ^7.0.0-0 966 | dependencies: 967 | '@babel/core': 7.24.3 968 | '@babel/helper-plugin-utils': 7.24.0 969 | dev: true 970 | 971 | /@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.3): 972 | resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==} 973 | engines: {node: '>=6.9.0'} 974 | peerDependencies: 975 | '@babel/core': ^7.0.0-0 976 | dependencies: 977 | '@babel/core': 7.24.3 978 | '@babel/helper-plugin-utils': 7.24.0 979 | '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 980 | dev: true 981 | 982 | /@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.3): 983 | resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==} 984 | engines: {node: '>=6.9.0'} 985 | peerDependencies: 986 | '@babel/core': ^7.0.0-0 987 | dependencies: 988 | '@babel/core': 7.24.3 989 | '@babel/helper-plugin-utils': 7.24.0 990 | dev: true 991 | 992 | /@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.3): 993 | resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==} 994 | engines: {node: '>=6.9.0'} 995 | peerDependencies: 996 | '@babel/core': ^7.0.0-0 997 | dependencies: 998 | '@babel/core': 7.24.3 999 | '@babel/helper-plugin-utils': 7.24.0 1000 | dev: true 1001 | 1002 | /@babel/plugin-transform-typeof-symbol@7.24.1(@babel/core@7.24.3): 1003 | resolution: {integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==} 1004 | engines: {node: '>=6.9.0'} 1005 | peerDependencies: 1006 | '@babel/core': ^7.0.0-0 1007 | dependencies: 1008 | '@babel/core': 7.24.3 1009 | '@babel/helper-plugin-utils': 7.24.0 1010 | dev: true 1011 | 1012 | /@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.3): 1013 | resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==} 1014 | engines: {node: '>=6.9.0'} 1015 | peerDependencies: 1016 | '@babel/core': ^7.0.0-0 1017 | dependencies: 1018 | '@babel/core': 7.24.3 1019 | '@babel/helper-plugin-utils': 7.24.0 1020 | dev: true 1021 | 1022 | /@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.3): 1023 | resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==} 1024 | engines: {node: '>=6.9.0'} 1025 | peerDependencies: 1026 | '@babel/core': ^7.0.0-0 1027 | dependencies: 1028 | '@babel/core': 7.24.3 1029 | '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) 1030 | '@babel/helper-plugin-utils': 7.24.0 1031 | dev: true 1032 | 1033 | /@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.3): 1034 | resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==} 1035 | engines: {node: '>=6.9.0'} 1036 | peerDependencies: 1037 | '@babel/core': ^7.0.0-0 1038 | dependencies: 1039 | '@babel/core': 7.24.3 1040 | '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) 1041 | '@babel/helper-plugin-utils': 7.24.0 1042 | dev: true 1043 | 1044 | /@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.3): 1045 | resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==} 1046 | engines: {node: '>=6.9.0'} 1047 | peerDependencies: 1048 | '@babel/core': ^7.0.0 1049 | dependencies: 1050 | '@babel/core': 7.24.3 1051 | '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.3) 1052 | '@babel/helper-plugin-utils': 7.24.0 1053 | dev: true 1054 | 1055 | /@babel/preset-env@7.24.3(@babel/core@7.24.3): 1056 | resolution: {integrity: sha512-fSk430k5c2ff8536JcPvPWK4tZDwehWLGlBp0wrsBUjZVdeQV6lePbwKWZaZfK2vnh/1kQX1PzAJWsnBmVgGJA==} 1057 | engines: {node: '>=6.9.0'} 1058 | peerDependencies: 1059 | '@babel/core': ^7.0.0-0 1060 | dependencies: 1061 | '@babel/compat-data': 7.24.1 1062 | '@babel/core': 7.24.3 1063 | '@babel/helper-compilation-targets': 7.23.6 1064 | '@babel/helper-plugin-utils': 7.24.0 1065 | '@babel/helper-validator-option': 7.23.5 1066 | '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.1(@babel/core@7.24.3) 1067 | '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.1(@babel/core@7.24.3) 1068 | '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.1(@babel/core@7.24.3) 1069 | '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.3) 1070 | '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.3) 1071 | '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.3) 1072 | '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.3) 1073 | '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.3) 1074 | '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.3) 1075 | '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.24.3) 1076 | '@babel/plugin-syntax-import-attributes': 7.24.1(@babel/core@7.24.3) 1077 | '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.3) 1078 | '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.3) 1079 | '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.3) 1080 | '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.3) 1081 | '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.3) 1082 | '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.3) 1083 | '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.3) 1084 | '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.3) 1085 | '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.3) 1086 | '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.3) 1087 | '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.3) 1088 | '@babel/plugin-transform-arrow-functions': 7.24.1(@babel/core@7.24.3) 1089 | '@babel/plugin-transform-async-generator-functions': 7.24.3(@babel/core@7.24.3) 1090 | '@babel/plugin-transform-async-to-generator': 7.24.1(@babel/core@7.24.3) 1091 | '@babel/plugin-transform-block-scoped-functions': 7.24.1(@babel/core@7.24.3) 1092 | '@babel/plugin-transform-block-scoping': 7.24.1(@babel/core@7.24.3) 1093 | '@babel/plugin-transform-class-properties': 7.24.1(@babel/core@7.24.3) 1094 | '@babel/plugin-transform-class-static-block': 7.24.1(@babel/core@7.24.3) 1095 | '@babel/plugin-transform-classes': 7.24.1(@babel/core@7.24.3) 1096 | '@babel/plugin-transform-computed-properties': 7.24.1(@babel/core@7.24.3) 1097 | '@babel/plugin-transform-destructuring': 7.24.1(@babel/core@7.24.3) 1098 | '@babel/plugin-transform-dotall-regex': 7.24.1(@babel/core@7.24.3) 1099 | '@babel/plugin-transform-duplicate-keys': 7.24.1(@babel/core@7.24.3) 1100 | '@babel/plugin-transform-dynamic-import': 7.24.1(@babel/core@7.24.3) 1101 | '@babel/plugin-transform-exponentiation-operator': 7.24.1(@babel/core@7.24.3) 1102 | '@babel/plugin-transform-export-namespace-from': 7.24.1(@babel/core@7.24.3) 1103 | '@babel/plugin-transform-for-of': 7.24.1(@babel/core@7.24.3) 1104 | '@babel/plugin-transform-function-name': 7.24.1(@babel/core@7.24.3) 1105 | '@babel/plugin-transform-json-strings': 7.24.1(@babel/core@7.24.3) 1106 | '@babel/plugin-transform-literals': 7.24.1(@babel/core@7.24.3) 1107 | '@babel/plugin-transform-logical-assignment-operators': 7.24.1(@babel/core@7.24.3) 1108 | '@babel/plugin-transform-member-expression-literals': 7.24.1(@babel/core@7.24.3) 1109 | '@babel/plugin-transform-modules-amd': 7.24.1(@babel/core@7.24.3) 1110 | '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.3) 1111 | '@babel/plugin-transform-modules-systemjs': 7.24.1(@babel/core@7.24.3) 1112 | '@babel/plugin-transform-modules-umd': 7.24.1(@babel/core@7.24.3) 1113 | '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.24.3) 1114 | '@babel/plugin-transform-new-target': 7.24.1(@babel/core@7.24.3) 1115 | '@babel/plugin-transform-nullish-coalescing-operator': 7.24.1(@babel/core@7.24.3) 1116 | '@babel/plugin-transform-numeric-separator': 7.24.1(@babel/core@7.24.3) 1117 | '@babel/plugin-transform-object-rest-spread': 7.24.1(@babel/core@7.24.3) 1118 | '@babel/plugin-transform-object-super': 7.24.1(@babel/core@7.24.3) 1119 | '@babel/plugin-transform-optional-catch-binding': 7.24.1(@babel/core@7.24.3) 1120 | '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.3) 1121 | '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.3) 1122 | '@babel/plugin-transform-private-methods': 7.24.1(@babel/core@7.24.3) 1123 | '@babel/plugin-transform-private-property-in-object': 7.24.1(@babel/core@7.24.3) 1124 | '@babel/plugin-transform-property-literals': 7.24.1(@babel/core@7.24.3) 1125 | '@babel/plugin-transform-regenerator': 7.24.1(@babel/core@7.24.3) 1126 | '@babel/plugin-transform-reserved-words': 7.24.1(@babel/core@7.24.3) 1127 | '@babel/plugin-transform-shorthand-properties': 7.24.1(@babel/core@7.24.3) 1128 | '@babel/plugin-transform-spread': 7.24.1(@babel/core@7.24.3) 1129 | '@babel/plugin-transform-sticky-regex': 7.24.1(@babel/core@7.24.3) 1130 | '@babel/plugin-transform-template-literals': 7.24.1(@babel/core@7.24.3) 1131 | '@babel/plugin-transform-typeof-symbol': 7.24.1(@babel/core@7.24.3) 1132 | '@babel/plugin-transform-unicode-escapes': 7.24.1(@babel/core@7.24.3) 1133 | '@babel/plugin-transform-unicode-property-regex': 7.24.1(@babel/core@7.24.3) 1134 | '@babel/plugin-transform-unicode-regex': 7.24.1(@babel/core@7.24.3) 1135 | '@babel/plugin-transform-unicode-sets-regex': 7.24.1(@babel/core@7.24.3) 1136 | '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.3) 1137 | babel-plugin-polyfill-corejs2: 0.4.10(@babel/core@7.24.3) 1138 | babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.3) 1139 | babel-plugin-polyfill-regenerator: 0.6.1(@babel/core@7.24.3) 1140 | core-js-compat: 3.36.1 1141 | semver: 6.3.1 1142 | transitivePeerDependencies: 1143 | - supports-color 1144 | dev: true 1145 | 1146 | /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.3): 1147 | resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} 1148 | peerDependencies: 1149 | '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 1150 | dependencies: 1151 | '@babel/core': 7.24.3 1152 | '@babel/helper-plugin-utils': 7.24.0 1153 | '@babel/types': 7.24.0 1154 | esutils: 2.0.3 1155 | dev: true 1156 | 1157 | /@babel/regjsgen@0.8.0: 1158 | resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} 1159 | dev: true 1160 | 1161 | /@babel/runtime@7.24.1: 1162 | resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==} 1163 | engines: {node: '>=6.9.0'} 1164 | dependencies: 1165 | regenerator-runtime: 0.14.1 1166 | dev: true 1167 | 1168 | /@babel/template@7.24.0: 1169 | resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} 1170 | engines: {node: '>=6.9.0'} 1171 | dependencies: 1172 | '@babel/code-frame': 7.24.2 1173 | '@babel/parser': 7.24.1 1174 | '@babel/types': 7.24.0 1175 | dev: true 1176 | 1177 | /@babel/traverse@7.24.1: 1178 | resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} 1179 | engines: {node: '>=6.9.0'} 1180 | dependencies: 1181 | '@babel/code-frame': 7.24.2 1182 | '@babel/generator': 7.24.1 1183 | '@babel/helper-environment-visitor': 7.22.20 1184 | '@babel/helper-function-name': 7.23.0 1185 | '@babel/helper-hoist-variables': 7.22.5 1186 | '@babel/helper-split-export-declaration': 7.22.6 1187 | '@babel/parser': 7.24.1 1188 | '@babel/types': 7.24.0 1189 | debug: 4.3.4 1190 | globals: 11.12.0 1191 | transitivePeerDependencies: 1192 | - supports-color 1193 | dev: true 1194 | 1195 | /@babel/types@7.24.0: 1196 | resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} 1197 | engines: {node: '>=6.9.0'} 1198 | dependencies: 1199 | '@babel/helper-string-parser': 7.24.1 1200 | '@babel/helper-validator-identifier': 7.22.20 1201 | to-fast-properties: 2.0.0 1202 | dev: true 1203 | 1204 | /@discoveryjs/json-ext@0.5.7: 1205 | resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} 1206 | engines: {node: '>=10.0.0'} 1207 | dev: true 1208 | 1209 | /@jridgewell/gen-mapping@0.3.5: 1210 | resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} 1211 | engines: {node: '>=6.0.0'} 1212 | dependencies: 1213 | '@jridgewell/set-array': 1.2.1 1214 | '@jridgewell/sourcemap-codec': 1.4.15 1215 | '@jridgewell/trace-mapping': 0.3.25 1216 | dev: true 1217 | 1218 | /@jridgewell/resolve-uri@3.1.2: 1219 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 1220 | engines: {node: '>=6.0.0'} 1221 | dev: true 1222 | 1223 | /@jridgewell/set-array@1.2.1: 1224 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 1225 | engines: {node: '>=6.0.0'} 1226 | dev: true 1227 | 1228 | /@jridgewell/source-map@0.3.6: 1229 | resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} 1230 | dependencies: 1231 | '@jridgewell/gen-mapping': 0.3.5 1232 | '@jridgewell/trace-mapping': 0.3.25 1233 | dev: true 1234 | 1235 | /@jridgewell/sourcemap-codec@1.4.15: 1236 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 1237 | dev: true 1238 | 1239 | /@jridgewell/trace-mapping@0.3.25: 1240 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 1241 | dependencies: 1242 | '@jridgewell/resolve-uri': 3.1.2 1243 | '@jridgewell/sourcemap-codec': 1.4.15 1244 | dev: true 1245 | 1246 | /@types/eslint-scope@3.7.7: 1247 | resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} 1248 | dependencies: 1249 | '@types/eslint': 8.56.6 1250 | '@types/estree': 1.0.5 1251 | dev: true 1252 | 1253 | /@types/eslint@8.56.6: 1254 | resolution: {integrity: sha512-ymwc+qb1XkjT/gfoQwxIeHZ6ixH23A+tCT2ADSA/DPVKzAjwYkTXBMCQ/f6fe4wEa85Lhp26VPeUxI7wMhAi7A==} 1255 | dependencies: 1256 | '@types/estree': 1.0.5 1257 | '@types/json-schema': 7.0.15 1258 | dev: true 1259 | 1260 | /@types/estree@1.0.5: 1261 | resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} 1262 | dev: true 1263 | 1264 | /@types/json-schema@7.0.15: 1265 | resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} 1266 | dev: true 1267 | 1268 | /@types/node@20.11.30: 1269 | resolution: {integrity: sha512-dHM6ZxwlmuZaRmUPfv1p+KrdD1Dci04FbdEm/9wEMouFqxYoFl5aMkt0VMAUtYRQDyYvD41WJLukhq/ha3YuTw==} 1270 | dependencies: 1271 | undici-types: 5.26.5 1272 | dev: true 1273 | 1274 | /@webassemblyjs/ast@1.12.1: 1275 | resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} 1276 | dependencies: 1277 | '@webassemblyjs/helper-numbers': 1.11.6 1278 | '@webassemblyjs/helper-wasm-bytecode': 1.11.6 1279 | dev: true 1280 | 1281 | /@webassemblyjs/floating-point-hex-parser@1.11.6: 1282 | resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} 1283 | dev: true 1284 | 1285 | /@webassemblyjs/helper-api-error@1.11.6: 1286 | resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} 1287 | dev: true 1288 | 1289 | /@webassemblyjs/helper-buffer@1.12.1: 1290 | resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} 1291 | dev: true 1292 | 1293 | /@webassemblyjs/helper-numbers@1.11.6: 1294 | resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} 1295 | dependencies: 1296 | '@webassemblyjs/floating-point-hex-parser': 1.11.6 1297 | '@webassemblyjs/helper-api-error': 1.11.6 1298 | '@xtuc/long': 4.2.2 1299 | dev: true 1300 | 1301 | /@webassemblyjs/helper-wasm-bytecode@1.11.6: 1302 | resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} 1303 | dev: true 1304 | 1305 | /@webassemblyjs/helper-wasm-section@1.12.1: 1306 | resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} 1307 | dependencies: 1308 | '@webassemblyjs/ast': 1.12.1 1309 | '@webassemblyjs/helper-buffer': 1.12.1 1310 | '@webassemblyjs/helper-wasm-bytecode': 1.11.6 1311 | '@webassemblyjs/wasm-gen': 1.12.1 1312 | dev: true 1313 | 1314 | /@webassemblyjs/ieee754@1.11.6: 1315 | resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} 1316 | dependencies: 1317 | '@xtuc/ieee754': 1.2.0 1318 | dev: true 1319 | 1320 | /@webassemblyjs/leb128@1.11.6: 1321 | resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} 1322 | dependencies: 1323 | '@xtuc/long': 4.2.2 1324 | dev: true 1325 | 1326 | /@webassemblyjs/utf8@1.11.6: 1327 | resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} 1328 | dev: true 1329 | 1330 | /@webassemblyjs/wasm-edit@1.12.1: 1331 | resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} 1332 | dependencies: 1333 | '@webassemblyjs/ast': 1.12.1 1334 | '@webassemblyjs/helper-buffer': 1.12.1 1335 | '@webassemblyjs/helper-wasm-bytecode': 1.11.6 1336 | '@webassemblyjs/helper-wasm-section': 1.12.1 1337 | '@webassemblyjs/wasm-gen': 1.12.1 1338 | '@webassemblyjs/wasm-opt': 1.12.1 1339 | '@webassemblyjs/wasm-parser': 1.12.1 1340 | '@webassemblyjs/wast-printer': 1.12.1 1341 | dev: true 1342 | 1343 | /@webassemblyjs/wasm-gen@1.12.1: 1344 | resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} 1345 | dependencies: 1346 | '@webassemblyjs/ast': 1.12.1 1347 | '@webassemblyjs/helper-wasm-bytecode': 1.11.6 1348 | '@webassemblyjs/ieee754': 1.11.6 1349 | '@webassemblyjs/leb128': 1.11.6 1350 | '@webassemblyjs/utf8': 1.11.6 1351 | dev: true 1352 | 1353 | /@webassemblyjs/wasm-opt@1.12.1: 1354 | resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} 1355 | dependencies: 1356 | '@webassemblyjs/ast': 1.12.1 1357 | '@webassemblyjs/helper-buffer': 1.12.1 1358 | '@webassemblyjs/wasm-gen': 1.12.1 1359 | '@webassemblyjs/wasm-parser': 1.12.1 1360 | dev: true 1361 | 1362 | /@webassemblyjs/wasm-parser@1.12.1: 1363 | resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} 1364 | dependencies: 1365 | '@webassemblyjs/ast': 1.12.1 1366 | '@webassemblyjs/helper-api-error': 1.11.6 1367 | '@webassemblyjs/helper-wasm-bytecode': 1.11.6 1368 | '@webassemblyjs/ieee754': 1.11.6 1369 | '@webassemblyjs/leb128': 1.11.6 1370 | '@webassemblyjs/utf8': 1.11.6 1371 | dev: true 1372 | 1373 | /@webassemblyjs/wast-printer@1.12.1: 1374 | resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} 1375 | dependencies: 1376 | '@webassemblyjs/ast': 1.12.1 1377 | '@xtuc/long': 4.2.2 1378 | dev: true 1379 | 1380 | /@webpack-cli/configtest@1.2.0(webpack-cli@4.10.0)(webpack@5.91.0): 1381 | resolution: {integrity: sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==} 1382 | peerDependencies: 1383 | webpack: 4.x.x || 5.x.x 1384 | webpack-cli: 4.x.x 1385 | dependencies: 1386 | webpack: 5.91.0(webpack-cli@4.10.0) 1387 | webpack-cli: 4.10.0(webpack@5.91.0) 1388 | dev: true 1389 | 1390 | /@webpack-cli/info@1.5.0(webpack-cli@4.10.0): 1391 | resolution: {integrity: sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==} 1392 | peerDependencies: 1393 | webpack-cli: 4.x.x 1394 | dependencies: 1395 | envinfo: 7.11.1 1396 | webpack-cli: 4.10.0(webpack@5.91.0) 1397 | dev: true 1398 | 1399 | /@webpack-cli/serve@1.7.0(webpack-cli@4.10.0): 1400 | resolution: {integrity: sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==} 1401 | peerDependencies: 1402 | webpack-cli: 4.x.x 1403 | webpack-dev-server: '*' 1404 | peerDependenciesMeta: 1405 | webpack-dev-server: 1406 | optional: true 1407 | dependencies: 1408 | webpack-cli: 4.10.0(webpack@5.91.0) 1409 | dev: true 1410 | 1411 | /@xtuc/ieee754@1.2.0: 1412 | resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} 1413 | dev: true 1414 | 1415 | /@xtuc/long@4.2.2: 1416 | resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} 1417 | dev: true 1418 | 1419 | /acorn-import-assertions@1.9.0(acorn@8.11.3): 1420 | resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} 1421 | peerDependencies: 1422 | acorn: ^8 1423 | dependencies: 1424 | acorn: 8.11.3 1425 | dev: true 1426 | 1427 | /acorn@8.11.3: 1428 | resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} 1429 | engines: {node: '>=0.4.0'} 1430 | hasBin: true 1431 | dev: true 1432 | 1433 | /ajv-keywords@3.5.2(ajv@6.12.6): 1434 | resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} 1435 | peerDependencies: 1436 | ajv: ^6.9.1 1437 | dependencies: 1438 | ajv: 6.12.6 1439 | dev: true 1440 | 1441 | /ajv@6.12.6: 1442 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 1443 | dependencies: 1444 | fast-deep-equal: 3.1.3 1445 | fast-json-stable-stringify: 2.1.0 1446 | json-schema-traverse: 0.4.1 1447 | uri-js: 4.4.1 1448 | dev: true 1449 | 1450 | /ansi-styles@3.2.1: 1451 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 1452 | engines: {node: '>=4'} 1453 | dependencies: 1454 | color-convert: 1.9.3 1455 | dev: true 1456 | 1457 | /asynckit@0.4.0: 1458 | resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} 1459 | dev: false 1460 | 1461 | /axios@1.6.8: 1462 | resolution: {integrity: sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==} 1463 | dependencies: 1464 | follow-redirects: 1.15.6 1465 | form-data: 4.0.0 1466 | proxy-from-env: 1.1.0 1467 | transitivePeerDependencies: 1468 | - debug 1469 | dev: false 1470 | 1471 | /babel-loader@8.3.0(@babel/core@7.24.3)(webpack@5.91.0): 1472 | resolution: {integrity: sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==} 1473 | engines: {node: '>= 8.9'} 1474 | peerDependencies: 1475 | '@babel/core': ^7.0.0 1476 | webpack: '>=2' 1477 | dependencies: 1478 | '@babel/core': 7.24.3 1479 | find-cache-dir: 3.3.2 1480 | loader-utils: 2.0.4 1481 | make-dir: 3.1.0 1482 | schema-utils: 2.7.1 1483 | webpack: 5.91.0(webpack-cli@4.10.0) 1484 | dev: true 1485 | 1486 | /babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.3): 1487 | resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==} 1488 | peerDependencies: 1489 | '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 1490 | dependencies: 1491 | '@babel/compat-data': 7.24.1 1492 | '@babel/core': 7.24.3 1493 | '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.3) 1494 | semver: 6.3.1 1495 | transitivePeerDependencies: 1496 | - supports-color 1497 | dev: true 1498 | 1499 | /babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.3): 1500 | resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} 1501 | peerDependencies: 1502 | '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 1503 | dependencies: 1504 | '@babel/core': 7.24.3 1505 | '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.3) 1506 | core-js-compat: 3.36.1 1507 | transitivePeerDependencies: 1508 | - supports-color 1509 | dev: true 1510 | 1511 | /babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.3): 1512 | resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==} 1513 | peerDependencies: 1514 | '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 1515 | dependencies: 1516 | '@babel/core': 7.24.3 1517 | '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.3) 1518 | transitivePeerDependencies: 1519 | - supports-color 1520 | dev: true 1521 | 1522 | /big.js@5.2.2: 1523 | resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} 1524 | dev: true 1525 | 1526 | /browserslist@4.23.0: 1527 | resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} 1528 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 1529 | hasBin: true 1530 | dependencies: 1531 | caniuse-lite: 1.0.30001600 1532 | electron-to-chromium: 1.4.717 1533 | node-releases: 2.0.14 1534 | update-browserslist-db: 1.0.13(browserslist@4.23.0) 1535 | dev: true 1536 | 1537 | /buffer-from@1.1.2: 1538 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 1539 | dev: true 1540 | 1541 | /caniuse-lite@1.0.30001600: 1542 | resolution: {integrity: sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==} 1543 | dev: true 1544 | 1545 | /chalk@2.4.2: 1546 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 1547 | engines: {node: '>=4'} 1548 | dependencies: 1549 | ansi-styles: 3.2.1 1550 | escape-string-regexp: 1.0.5 1551 | supports-color: 5.5.0 1552 | dev: true 1553 | 1554 | /chrome-trace-event@1.0.3: 1555 | resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} 1556 | engines: {node: '>=6.0'} 1557 | dev: true 1558 | 1559 | /clone-deep@4.0.1: 1560 | resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} 1561 | engines: {node: '>=6'} 1562 | dependencies: 1563 | is-plain-object: 2.0.4 1564 | kind-of: 6.0.3 1565 | shallow-clone: 3.0.1 1566 | dev: true 1567 | 1568 | /color-convert@1.9.3: 1569 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 1570 | dependencies: 1571 | color-name: 1.1.3 1572 | dev: true 1573 | 1574 | /color-name@1.1.3: 1575 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 1576 | dev: true 1577 | 1578 | /colorette@2.0.20: 1579 | resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} 1580 | dev: true 1581 | 1582 | /combined-stream@1.0.8: 1583 | resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} 1584 | engines: {node: '>= 0.8'} 1585 | dependencies: 1586 | delayed-stream: 1.0.0 1587 | dev: false 1588 | 1589 | /commander@2.20.3: 1590 | resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} 1591 | dev: true 1592 | 1593 | /commander@7.2.0: 1594 | resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} 1595 | engines: {node: '>= 10'} 1596 | dev: true 1597 | 1598 | /commondir@1.0.1: 1599 | resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} 1600 | dev: true 1601 | 1602 | /convert-source-map@2.0.0: 1603 | resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} 1604 | dev: true 1605 | 1606 | /core-js-compat@3.36.1: 1607 | resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==} 1608 | dependencies: 1609 | browserslist: 4.23.0 1610 | dev: true 1611 | 1612 | /cross-spawn@7.0.3: 1613 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 1614 | engines: {node: '>= 8'} 1615 | dependencies: 1616 | path-key: 3.1.1 1617 | shebang-command: 2.0.0 1618 | which: 2.0.2 1619 | dev: true 1620 | 1621 | /debug@4.3.4: 1622 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 1623 | engines: {node: '>=6.0'} 1624 | peerDependencies: 1625 | supports-color: '*' 1626 | peerDependenciesMeta: 1627 | supports-color: 1628 | optional: true 1629 | dependencies: 1630 | ms: 2.1.2 1631 | dev: true 1632 | 1633 | /delayed-stream@1.0.0: 1634 | resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} 1635 | engines: {node: '>=0.4.0'} 1636 | dev: false 1637 | 1638 | /electron-to-chromium@1.4.717: 1639 | resolution: {integrity: sha512-6Fmg8QkkumNOwuZ/5mIbMU9WI3H2fmn5ajcVya64I5Yr5CcNmO7vcLt0Y7c96DCiMO5/9G+4sI2r6eEvdg1F7A==} 1640 | dev: true 1641 | 1642 | /emojis-list@3.0.0: 1643 | resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} 1644 | engines: {node: '>= 4'} 1645 | dev: true 1646 | 1647 | /enhanced-resolve@5.16.0: 1648 | resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} 1649 | engines: {node: '>=10.13.0'} 1650 | dependencies: 1651 | graceful-fs: 4.2.11 1652 | tapable: 2.2.1 1653 | dev: true 1654 | 1655 | /envinfo@7.11.1: 1656 | resolution: {integrity: sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==} 1657 | engines: {node: '>=4'} 1658 | hasBin: true 1659 | dev: true 1660 | 1661 | /es-module-lexer@1.5.0: 1662 | resolution: {integrity: sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==} 1663 | dev: true 1664 | 1665 | /escalade@3.1.2: 1666 | resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} 1667 | engines: {node: '>=6'} 1668 | dev: true 1669 | 1670 | /escape-string-regexp@1.0.5: 1671 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 1672 | engines: {node: '>=0.8.0'} 1673 | dev: true 1674 | 1675 | /eslint-scope@5.1.1: 1676 | resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} 1677 | engines: {node: '>=8.0.0'} 1678 | dependencies: 1679 | esrecurse: 4.3.0 1680 | estraverse: 4.3.0 1681 | dev: true 1682 | 1683 | /esrecurse@4.3.0: 1684 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 1685 | engines: {node: '>=4.0'} 1686 | dependencies: 1687 | estraverse: 5.3.0 1688 | dev: true 1689 | 1690 | /estraverse@4.3.0: 1691 | resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} 1692 | engines: {node: '>=4.0'} 1693 | dev: true 1694 | 1695 | /estraverse@5.3.0: 1696 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 1697 | engines: {node: '>=4.0'} 1698 | dev: true 1699 | 1700 | /esutils@2.0.3: 1701 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 1702 | engines: {node: '>=0.10.0'} 1703 | dev: true 1704 | 1705 | /events@3.3.0: 1706 | resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} 1707 | engines: {node: '>=0.8.x'} 1708 | dev: true 1709 | 1710 | /fast-deep-equal@3.1.3: 1711 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1712 | dev: true 1713 | 1714 | /fast-json-stable-stringify@2.1.0: 1715 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1716 | dev: true 1717 | 1718 | /fastest-levenshtein@1.0.16: 1719 | resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} 1720 | engines: {node: '>= 4.9.1'} 1721 | dev: true 1722 | 1723 | /find-cache-dir@3.3.2: 1724 | resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} 1725 | engines: {node: '>=8'} 1726 | dependencies: 1727 | commondir: 1.0.1 1728 | make-dir: 3.1.0 1729 | pkg-dir: 4.2.0 1730 | dev: true 1731 | 1732 | /find-up@4.1.0: 1733 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} 1734 | engines: {node: '>=8'} 1735 | dependencies: 1736 | locate-path: 5.0.0 1737 | path-exists: 4.0.0 1738 | dev: true 1739 | 1740 | /flat@5.0.2: 1741 | resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} 1742 | hasBin: true 1743 | dev: true 1744 | 1745 | /follow-redirects@1.15.6: 1746 | resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} 1747 | engines: {node: '>=4.0'} 1748 | peerDependencies: 1749 | debug: '*' 1750 | peerDependenciesMeta: 1751 | debug: 1752 | optional: true 1753 | dev: false 1754 | 1755 | /form-data@4.0.0: 1756 | resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} 1757 | engines: {node: '>= 6'} 1758 | dependencies: 1759 | asynckit: 0.4.0 1760 | combined-stream: 1.0.8 1761 | mime-types: 2.1.35 1762 | dev: false 1763 | 1764 | /function-bind@1.1.2: 1765 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 1766 | dev: true 1767 | 1768 | /gensync@1.0.0-beta.2: 1769 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 1770 | engines: {node: '>=6.9.0'} 1771 | dev: true 1772 | 1773 | /glob-to-regexp@0.4.1: 1774 | resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} 1775 | dev: true 1776 | 1777 | /globals@11.12.0: 1778 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} 1779 | engines: {node: '>=4'} 1780 | dev: true 1781 | 1782 | /graceful-fs@4.2.11: 1783 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 1784 | dev: true 1785 | 1786 | /has-flag@3.0.0: 1787 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 1788 | engines: {node: '>=4'} 1789 | dev: true 1790 | 1791 | /has-flag@4.0.0: 1792 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1793 | engines: {node: '>=8'} 1794 | dev: true 1795 | 1796 | /hasown@2.0.2: 1797 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 1798 | engines: {node: '>= 0.4'} 1799 | dependencies: 1800 | function-bind: 1.1.2 1801 | dev: true 1802 | 1803 | /import-local@3.1.0: 1804 | resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} 1805 | engines: {node: '>=8'} 1806 | hasBin: true 1807 | dependencies: 1808 | pkg-dir: 4.2.0 1809 | resolve-cwd: 3.0.0 1810 | dev: true 1811 | 1812 | /interpret@2.2.0: 1813 | resolution: {integrity: sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==} 1814 | engines: {node: '>= 0.10'} 1815 | dev: true 1816 | 1817 | /is-core-module@2.13.1: 1818 | resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} 1819 | dependencies: 1820 | hasown: 2.0.2 1821 | dev: true 1822 | 1823 | /is-plain-object@2.0.4: 1824 | resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} 1825 | engines: {node: '>=0.10.0'} 1826 | dependencies: 1827 | isobject: 3.0.1 1828 | dev: true 1829 | 1830 | /isexe@2.0.0: 1831 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1832 | dev: true 1833 | 1834 | /isobject@3.0.1: 1835 | resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} 1836 | engines: {node: '>=0.10.0'} 1837 | dev: true 1838 | 1839 | /jest-worker@27.5.1: 1840 | resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} 1841 | engines: {node: '>= 10.13.0'} 1842 | dependencies: 1843 | '@types/node': 20.11.30 1844 | merge-stream: 2.0.0 1845 | supports-color: 8.1.1 1846 | dev: true 1847 | 1848 | /js-tokens@4.0.0: 1849 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1850 | dev: true 1851 | 1852 | /jsesc@0.5.0: 1853 | resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} 1854 | hasBin: true 1855 | dev: true 1856 | 1857 | /jsesc@2.5.2: 1858 | resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} 1859 | engines: {node: '>=4'} 1860 | hasBin: true 1861 | dev: true 1862 | 1863 | /json-parse-even-better-errors@2.3.1: 1864 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} 1865 | dev: true 1866 | 1867 | /json-schema-traverse@0.4.1: 1868 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1869 | dev: true 1870 | 1871 | /json5@2.2.3: 1872 | resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 1873 | engines: {node: '>=6'} 1874 | hasBin: true 1875 | dev: true 1876 | 1877 | /kind-of@6.0.3: 1878 | resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} 1879 | engines: {node: '>=0.10.0'} 1880 | dev: true 1881 | 1882 | /loader-runner@4.3.0: 1883 | resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} 1884 | engines: {node: '>=6.11.5'} 1885 | dev: true 1886 | 1887 | /loader-utils@2.0.4: 1888 | resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} 1889 | engines: {node: '>=8.9.0'} 1890 | dependencies: 1891 | big.js: 5.2.2 1892 | emojis-list: 3.0.0 1893 | json5: 2.2.3 1894 | dev: true 1895 | 1896 | /locate-path@5.0.0: 1897 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} 1898 | engines: {node: '>=8'} 1899 | dependencies: 1900 | p-locate: 4.1.0 1901 | dev: true 1902 | 1903 | /lodash.debounce@4.0.8: 1904 | resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} 1905 | dev: true 1906 | 1907 | /lru-cache@5.1.1: 1908 | resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} 1909 | dependencies: 1910 | yallist: 3.1.1 1911 | dev: true 1912 | 1913 | /make-dir@3.1.0: 1914 | resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} 1915 | engines: {node: '>=8'} 1916 | dependencies: 1917 | semver: 6.3.1 1918 | dev: true 1919 | 1920 | /merge-stream@2.0.0: 1921 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 1922 | dev: true 1923 | 1924 | /mime-db@1.52.0: 1925 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 1926 | engines: {node: '>= 0.6'} 1927 | 1928 | /mime-types@2.1.35: 1929 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 1930 | engines: {node: '>= 0.6'} 1931 | dependencies: 1932 | mime-db: 1.52.0 1933 | 1934 | /ms@2.1.2: 1935 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1936 | dev: true 1937 | 1938 | /neo-async@2.6.2: 1939 | resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} 1940 | dev: true 1941 | 1942 | /node-releases@2.0.14: 1943 | resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} 1944 | dev: true 1945 | 1946 | /p-limit@2.3.0: 1947 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} 1948 | engines: {node: '>=6'} 1949 | dependencies: 1950 | p-try: 2.2.0 1951 | dev: true 1952 | 1953 | /p-locate@4.1.0: 1954 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} 1955 | engines: {node: '>=8'} 1956 | dependencies: 1957 | p-limit: 2.3.0 1958 | dev: true 1959 | 1960 | /p-try@2.2.0: 1961 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} 1962 | engines: {node: '>=6'} 1963 | dev: true 1964 | 1965 | /path-exists@4.0.0: 1966 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1967 | engines: {node: '>=8'} 1968 | dev: true 1969 | 1970 | /path-key@3.1.1: 1971 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1972 | engines: {node: '>=8'} 1973 | dev: true 1974 | 1975 | /path-parse@1.0.7: 1976 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1977 | dev: true 1978 | 1979 | /picocolors@1.0.0: 1980 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 1981 | dev: true 1982 | 1983 | /pkg-dir@4.2.0: 1984 | resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} 1985 | engines: {node: '>=8'} 1986 | dependencies: 1987 | find-up: 4.1.0 1988 | dev: true 1989 | 1990 | /proxy-from-env@1.1.0: 1991 | resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} 1992 | dev: false 1993 | 1994 | /punycode@2.3.1: 1995 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1996 | engines: {node: '>=6'} 1997 | dev: true 1998 | 1999 | /randombytes@2.1.0: 2000 | resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} 2001 | dependencies: 2002 | safe-buffer: 5.2.1 2003 | dev: true 2004 | 2005 | /rechoir@0.7.1: 2006 | resolution: {integrity: sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==} 2007 | engines: {node: '>= 0.10'} 2008 | dependencies: 2009 | resolve: 1.22.8 2010 | dev: true 2011 | 2012 | /regenerate-unicode-properties@10.1.1: 2013 | resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} 2014 | engines: {node: '>=4'} 2015 | dependencies: 2016 | regenerate: 1.4.2 2017 | dev: true 2018 | 2019 | /regenerate@1.4.2: 2020 | resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} 2021 | dev: true 2022 | 2023 | /regenerator-runtime@0.14.1: 2024 | resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} 2025 | dev: true 2026 | 2027 | /regenerator-transform@0.15.2: 2028 | resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} 2029 | dependencies: 2030 | '@babel/runtime': 7.24.1 2031 | dev: true 2032 | 2033 | /regexpu-core@5.3.2: 2034 | resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} 2035 | engines: {node: '>=4'} 2036 | dependencies: 2037 | '@babel/regjsgen': 0.8.0 2038 | regenerate: 1.4.2 2039 | regenerate-unicode-properties: 10.1.1 2040 | regjsparser: 0.9.1 2041 | unicode-match-property-ecmascript: 2.0.0 2042 | unicode-match-property-value-ecmascript: 2.1.0 2043 | dev: true 2044 | 2045 | /regjsparser@0.9.1: 2046 | resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} 2047 | hasBin: true 2048 | dependencies: 2049 | jsesc: 0.5.0 2050 | dev: true 2051 | 2052 | /resolve-cwd@3.0.0: 2053 | resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} 2054 | engines: {node: '>=8'} 2055 | dependencies: 2056 | resolve-from: 5.0.0 2057 | dev: true 2058 | 2059 | /resolve-from@5.0.0: 2060 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 2061 | engines: {node: '>=8'} 2062 | dev: true 2063 | 2064 | /resolve@1.22.8: 2065 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} 2066 | hasBin: true 2067 | dependencies: 2068 | is-core-module: 2.13.1 2069 | path-parse: 1.0.7 2070 | supports-preserve-symlinks-flag: 1.0.0 2071 | dev: true 2072 | 2073 | /safe-buffer@5.2.1: 2074 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 2075 | dev: true 2076 | 2077 | /schema-utils@2.7.1: 2078 | resolution: {integrity: sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==} 2079 | engines: {node: '>= 8.9.0'} 2080 | dependencies: 2081 | '@types/json-schema': 7.0.15 2082 | ajv: 6.12.6 2083 | ajv-keywords: 3.5.2(ajv@6.12.6) 2084 | dev: true 2085 | 2086 | /schema-utils@3.3.0: 2087 | resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} 2088 | engines: {node: '>= 10.13.0'} 2089 | dependencies: 2090 | '@types/json-schema': 7.0.15 2091 | ajv: 6.12.6 2092 | ajv-keywords: 3.5.2(ajv@6.12.6) 2093 | dev: true 2094 | 2095 | /semver@6.3.1: 2096 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 2097 | hasBin: true 2098 | dev: true 2099 | 2100 | /serialize-javascript@6.0.2: 2101 | resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} 2102 | dependencies: 2103 | randombytes: 2.1.0 2104 | dev: true 2105 | 2106 | /shallow-clone@3.0.1: 2107 | resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} 2108 | engines: {node: '>=8'} 2109 | dependencies: 2110 | kind-of: 6.0.3 2111 | dev: true 2112 | 2113 | /shebang-command@2.0.0: 2114 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 2115 | engines: {node: '>=8'} 2116 | dependencies: 2117 | shebang-regex: 3.0.0 2118 | dev: true 2119 | 2120 | /shebang-regex@3.0.0: 2121 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 2122 | engines: {node: '>=8'} 2123 | dev: true 2124 | 2125 | /source-map-support@0.5.21: 2126 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 2127 | dependencies: 2128 | buffer-from: 1.1.2 2129 | source-map: 0.6.1 2130 | dev: true 2131 | 2132 | /source-map@0.6.1: 2133 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 2134 | engines: {node: '>=0.10.0'} 2135 | dev: true 2136 | 2137 | /supports-color@5.5.0: 2138 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 2139 | engines: {node: '>=4'} 2140 | dependencies: 2141 | has-flag: 3.0.0 2142 | dev: true 2143 | 2144 | /supports-color@8.1.1: 2145 | resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} 2146 | engines: {node: '>=10'} 2147 | dependencies: 2148 | has-flag: 4.0.0 2149 | dev: true 2150 | 2151 | /supports-preserve-symlinks-flag@1.0.0: 2152 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 2153 | engines: {node: '>= 0.4'} 2154 | dev: true 2155 | 2156 | /tapable@2.2.1: 2157 | resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} 2158 | engines: {node: '>=6'} 2159 | dev: true 2160 | 2161 | /terser-webpack-plugin@5.3.10(webpack@5.91.0): 2162 | resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} 2163 | engines: {node: '>= 10.13.0'} 2164 | peerDependencies: 2165 | '@swc/core': '*' 2166 | esbuild: '*' 2167 | uglify-js: '*' 2168 | webpack: ^5.1.0 2169 | peerDependenciesMeta: 2170 | '@swc/core': 2171 | optional: true 2172 | esbuild: 2173 | optional: true 2174 | uglify-js: 2175 | optional: true 2176 | dependencies: 2177 | '@jridgewell/trace-mapping': 0.3.25 2178 | jest-worker: 27.5.1 2179 | schema-utils: 3.3.0 2180 | serialize-javascript: 6.0.2 2181 | terser: 5.29.2 2182 | webpack: 5.91.0(webpack-cli@4.10.0) 2183 | dev: true 2184 | 2185 | /terser@5.29.2: 2186 | resolution: {integrity: sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==} 2187 | engines: {node: '>=10'} 2188 | hasBin: true 2189 | dependencies: 2190 | '@jridgewell/source-map': 0.3.6 2191 | acorn: 8.11.3 2192 | commander: 2.20.3 2193 | source-map-support: 0.5.21 2194 | dev: true 2195 | 2196 | /to-fast-properties@2.0.0: 2197 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 2198 | engines: {node: '>=4'} 2199 | dev: true 2200 | 2201 | /undici-types@5.26.5: 2202 | resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} 2203 | dev: true 2204 | 2205 | /unicode-canonical-property-names-ecmascript@2.0.0: 2206 | resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} 2207 | engines: {node: '>=4'} 2208 | dev: true 2209 | 2210 | /unicode-match-property-ecmascript@2.0.0: 2211 | resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} 2212 | engines: {node: '>=4'} 2213 | dependencies: 2214 | unicode-canonical-property-names-ecmascript: 2.0.0 2215 | unicode-property-aliases-ecmascript: 2.1.0 2216 | dev: true 2217 | 2218 | /unicode-match-property-value-ecmascript@2.1.0: 2219 | resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} 2220 | engines: {node: '>=4'} 2221 | dev: true 2222 | 2223 | /unicode-property-aliases-ecmascript@2.1.0: 2224 | resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} 2225 | engines: {node: '>=4'} 2226 | dev: true 2227 | 2228 | /update-browserslist-db@1.0.13(browserslist@4.23.0): 2229 | resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} 2230 | hasBin: true 2231 | peerDependencies: 2232 | browserslist: '>= 4.21.0' 2233 | dependencies: 2234 | browserslist: 4.23.0 2235 | escalade: 3.1.2 2236 | picocolors: 1.0.0 2237 | dev: true 2238 | 2239 | /uri-js@4.4.1: 2240 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 2241 | dependencies: 2242 | punycode: 2.3.1 2243 | dev: true 2244 | 2245 | /watchpack@2.4.1: 2246 | resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} 2247 | engines: {node: '>=10.13.0'} 2248 | dependencies: 2249 | glob-to-regexp: 0.4.1 2250 | graceful-fs: 4.2.11 2251 | dev: true 2252 | 2253 | /webpack-cli@4.10.0(webpack@5.91.0): 2254 | resolution: {integrity: sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==} 2255 | engines: {node: '>=10.13.0'} 2256 | hasBin: true 2257 | peerDependencies: 2258 | '@webpack-cli/generators': '*' 2259 | '@webpack-cli/migrate': '*' 2260 | webpack: 4.x.x || 5.x.x 2261 | webpack-bundle-analyzer: '*' 2262 | webpack-dev-server: '*' 2263 | peerDependenciesMeta: 2264 | '@webpack-cli/generators': 2265 | optional: true 2266 | '@webpack-cli/migrate': 2267 | optional: true 2268 | webpack-bundle-analyzer: 2269 | optional: true 2270 | webpack-dev-server: 2271 | optional: true 2272 | dependencies: 2273 | '@discoveryjs/json-ext': 0.5.7 2274 | '@webpack-cli/configtest': 1.2.0(webpack-cli@4.10.0)(webpack@5.91.0) 2275 | '@webpack-cli/info': 1.5.0(webpack-cli@4.10.0) 2276 | '@webpack-cli/serve': 1.7.0(webpack-cli@4.10.0) 2277 | colorette: 2.0.20 2278 | commander: 7.2.0 2279 | cross-spawn: 7.0.3 2280 | fastest-levenshtein: 1.0.16 2281 | import-local: 3.1.0 2282 | interpret: 2.2.0 2283 | rechoir: 0.7.1 2284 | webpack: 5.91.0(webpack-cli@4.10.0) 2285 | webpack-merge: 5.10.0 2286 | dev: true 2287 | 2288 | /webpack-merge@5.10.0: 2289 | resolution: {integrity: sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==} 2290 | engines: {node: '>=10.0.0'} 2291 | dependencies: 2292 | clone-deep: 4.0.1 2293 | flat: 5.0.2 2294 | wildcard: 2.0.1 2295 | dev: true 2296 | 2297 | /webpack-sources@3.2.3: 2298 | resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} 2299 | engines: {node: '>=10.13.0'} 2300 | dev: true 2301 | 2302 | /webpack@5.91.0(webpack-cli@4.10.0): 2303 | resolution: {integrity: sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==} 2304 | engines: {node: '>=10.13.0'} 2305 | hasBin: true 2306 | peerDependencies: 2307 | webpack-cli: '*' 2308 | peerDependenciesMeta: 2309 | webpack-cli: 2310 | optional: true 2311 | dependencies: 2312 | '@types/eslint-scope': 3.7.7 2313 | '@types/estree': 1.0.5 2314 | '@webassemblyjs/ast': 1.12.1 2315 | '@webassemblyjs/wasm-edit': 1.12.1 2316 | '@webassemblyjs/wasm-parser': 1.12.1 2317 | acorn: 8.11.3 2318 | acorn-import-assertions: 1.9.0(acorn@8.11.3) 2319 | browserslist: 4.23.0 2320 | chrome-trace-event: 1.0.3 2321 | enhanced-resolve: 5.16.0 2322 | es-module-lexer: 1.5.0 2323 | eslint-scope: 5.1.1 2324 | events: 3.3.0 2325 | glob-to-regexp: 0.4.1 2326 | graceful-fs: 4.2.11 2327 | json-parse-even-better-errors: 2.3.1 2328 | loader-runner: 4.3.0 2329 | mime-types: 2.1.35 2330 | neo-async: 2.6.2 2331 | schema-utils: 3.3.0 2332 | tapable: 2.2.1 2333 | terser-webpack-plugin: 5.3.10(webpack@5.91.0) 2334 | watchpack: 2.4.1 2335 | webpack-cli: 4.10.0(webpack@5.91.0) 2336 | webpack-sources: 3.2.3 2337 | transitivePeerDependencies: 2338 | - '@swc/core' 2339 | - esbuild 2340 | - uglify-js 2341 | dev: true 2342 | 2343 | /which@2.0.2: 2344 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 2345 | engines: {node: '>= 8'} 2346 | hasBin: true 2347 | dependencies: 2348 | isexe: 2.0.0 2349 | dev: true 2350 | 2351 | /wildcard@2.0.1: 2352 | resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} 2353 | dev: true 2354 | 2355 | /yallist@3.1.1: 2356 | resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} 2357 | dev: true 2358 | --------------------------------------------------------------------------------