├── .babelrc
├── .gitignore
├── LICENSE
├── README.md
├── dart
└── serverchan-sdk
│ ├── .gitignore
│ ├── CHANGELOG.md
│ ├── LICENSE
│ ├── README.md
│ ├── analysis_options.yaml
│ ├── example
│ └── serverchan_sdk_example.dart
│ ├── lib
│ ├── serverchan_sdk.dart
│ └── src
│ │ └── serverchan_sdk_base.dart
│ ├── pubspec.yaml
│ └── test
│ ├── real_call_test.dart
│ └── serverchan_sdk_test.dart
├── npm
├── .npmignore
├── README.md
├── dist
│ ├── index.cjs
│ ├── index.d.ts
│ └── index.mjs
├── package-lock.json
├── package.json
├── publish.sh
├── rollup.config.js
├── src
│ ├── index.d.ts
│ └── index.js
└── test
│ ├── test.cjs
│ ├── test.html
│ └── test.mjs
└── pip
├── README.md
├── build
└── lib
│ └── serverchan_sdk
│ └── __init__.py
├── dist
├── serverchan-sdk-1.0.1.tar.gz
├── serverchan-sdk-1.0.2.tar.gz
├── serverchan_sdk-1.0.6-py3-none-any.whl
└── serverchan_sdk-1.0.6.tar.gz
├── serverchan_sdk.egg-info
├── PKG-INFO
├── SOURCES.txt
├── dependency_links.txt
├── requires.txt
└── top_level.txt
├── serverchan_sdk
├── __init__.py
└── __pycache__
│ ├── __init__.cpython-312.pyc
│ └── __init__.cpython-39.pyc
├── setup.py
└── test.py
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@babel/preset-env",
5 | {
6 | "modules": false
7 | }
8 | ]
9 | ]
10 | }
11 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .DS_Store
3 | venv
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2024 Easy
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 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # serverchan-sdk
2 |
3 | Server酱SDK
4 |
5 | 这个sdk很简单,只有一个函数。同时支持 sct.ftqq.com 和 sc3.ft07.com, 也就是说,用它你就无需关系用户用的是哪个版本,它会从key中自动适配。
6 | 所有语言的参数均为:
7 |
8 | 1. sendkey
9 | 2. title
10 | 3. desp - 消息内容,支持markdown,可以外链图片(请使用https)。
11 | 4. options - 其他更多选项
12 |
13 | 更多选项包括以下:
14 |
15 | ```jsonc
16 | {
17 | tags?: string; // SC3专用:标签列表,多个标签使用竖线分隔
18 | short?: string; // SC3和SCT:消息卡片的内容,特别适用desp为markdown时,
19 | noip?: 1; // SCT专用:是否隐藏调用IP,1为隐藏
20 | channel?: string; // SCT专用:推送使用的消息通道,多个通道值用竖线隔开
21 | openid?: string; // SCT专用:消息抄送的 openid,仅用于企业微信应用消息和测试号通道,多个 openid 用逗号或竖线分隔
22 | }
23 | ```
24 |
25 | 返回格式定义:
26 |
27 | ```jsonc
28 | {
29 | code: number; // 返回的状态码, 0 为正确
30 | message: string; // 返回的信息,和状态码对应
31 | data?: any; // 可选的返回数据,SCT和SC3这部分格式不同
32 | }
33 | ```
34 | 以下是各个语言的SDK及其用法,点击查看详细
35 |
36 |
37 | JavaScript SDK ( Both web & nodejs )
38 |
39 | ### SDK 地址
40 | - npm :
41 |
42 |
43 | ### 安装
44 |
45 | ```bash
46 | npm install serverchan-sdk
47 | ```
48 |
49 | ### 调用实例
50 |
51 | ```js
52 | import {scSend} from 'serverchan-sdk';
53 |
54 | const sendkey = '...'; // 替换成真实的 Server 酱 sendkey
55 | const title = 'Test Notification';
56 | const desp = 'This is a test message';
57 |
58 | const response = await scSend(sendkey, title, desp, { tags: '服务器报警|报告' });
59 | console.log('Response:', response);
60 | ```
61 |
62 |
63 |
64 |
65 | PHP SDK
66 |
67 | ### SDK 地址
68 | - compose package :
69 |
70 |
71 | ### 安装
72 |
73 | ```bash
74 | composer require easychen/serverchan-sdk
75 | ```
76 |
77 | ### 调用实例
78 |
79 | ```php
80 | $ret = scSend('sendkey', 'title', 'desp', ['tags'=>'服务器报警|图片']);
81 | print_r($ret);
82 | ```
83 |
84 |
85 |
86 | Python SDK
87 |
88 | ### SDK 地址
89 | - pip package :
90 |
91 |
92 | ### 安装
93 |
94 | ```bash
95 | pip install serverchan-sdk
96 | ```
97 |
98 | ### 调用实例
99 |
100 | ```python
101 | from serverchan_sdk import sc_send
102 |
103 | # 发送消息
104 | sendkey = "..."
105 | title = "测试标题"
106 | desp = "这是消息内容"
107 | options = {"tags": "服务器报警|图片"} # 可选参数
108 |
109 | response = sc_send(sendkey, title, desp, options)
110 | ```
111 |
112 |
113 |
114 | Golang SDK
115 |
116 | ### SDK 地址
117 | -
118 |
119 |
120 | ### 安装
121 |
122 | ```bash
123 | go get github.com/easychen/serverchan-sdk-golang
124 | ```
125 |
126 | ### 调用实例
127 |
128 | ```go
129 | package main
130 |
131 | import (
132 | "fmt"
133 | "github.com/easychen/serverchan-sdk-golang"
134 | )
135 |
136 | func main() {
137 | sendkey := "your-sendkey"
138 | title := "Test Message"
139 | desp := "This is a test message"
140 |
141 | resp, err := serverchan_sdk.ScSend(sendkey, title, desp, nil)
142 | if err != nil {
143 | fmt.Println("Error:", err)
144 | } else {
145 | fmt.Println("Response:", resp)
146 | }
147 | }
148 | ```
149 |
150 |
151 |
152 | Dart/Flutter SDK
153 |
154 | ### SDK 地址
155 | Pub Package -
156 |
157 | > 此 package 依赖 http 包
158 |
159 | ### 安装
160 |
161 | 在 `pubspec.yaml` 添加依赖
162 |
163 | ```
164 | dependencies:
165 | serverchan_sdk:
166 | ```
167 | 然后运行
168 |
169 | ```bash
170 | dart pub get
171 | # 或者
172 | flutter pub get
173 | ```
174 |
175 | ### 调用实例
176 |
177 | ```dart
178 | import 'package:serverchan_sdk/serverchan_sdk.dart';
179 |
180 | void main() async {
181 | const sendkey = 'your-sendkey';
182 | const title = '测试标题';
183 | const desp = '这是消息的详细内容';
184 |
185 | try {
186 | ScSendResponse response = await scSend(sendkey, title, desp: desp);
187 | print('Response Code: ${response.code}');
188 | print('Response Message: ${response.message}');
189 | } catch (e) {
190 | print('Error: $e');
191 | }
192 | }
193 | ```
194 |
195 |
196 | ## 没有覆盖的语言
197 |
198 | 如果您使用的语言没有SDK,您可以把以下提示词粘贴到 ChatGPT/Claude/DeepSeek/Kimi,让AI立马帮你写一个。
199 |
200 | ```
201 | 请参考以下TypeScript代码,编写对应的实现:
202 |
203 | \`\`\`typescript
204 | import fetch from 'cross-fetch';
205 |
206 | // ScSendOptions 定义了推送函数的可选参数
207 | export interface ScSendOptions {
208 | /** sctp 专用:标签列表,多个标签使用竖线分隔 */
209 | tags?: string;
210 | /** sctp 和非 sctp:消息卡片的简短描述 */
211 | short?: string;
212 | /** 非 sctp:是否隐藏调用IP,1为隐藏 */
213 | noip?: 1;
214 | /** 非 sctp:推送使用的消息通道,多个通道值用竖线隔开 */
215 | channel?: string;
216 | /** 非 sctp:消息抄送的 openid,多个 openid 用逗号或竖线分隔 */
217 | openid?: string;
218 | }
219 |
220 | // ScSendResponse 定义了推送函数返回的响应结果
221 | export interface ScSendResponse {
222 | /** 返回的状态码 */
223 | code: number;
224 | /** 返回的消息 */
225 | message: string;
226 | /** 可选的返回数据 */
227 | data?: any;
228 | }
229 |
230 | // 调用 Server 酱的推送函数
231 | export async function scSend(
232 | sendkey: string,
233 | title: string,
234 | desp: string = '',
235 | options: ScSendOptions = {}
236 | ): Promise {
237 |
238 | const url = sendkey.startsWith('sctp')
239 | ? `https://${sendkey}.push.ft07.com/send`
240 | : `https://sctapi.ftqq.com/${sendkey}.send`;
241 |
242 | const params = {
243 | title,
244 | desp,
245 | ...options,
246 | };
247 |
248 | const response = await fetch(url, {
249 | method: 'POST',
250 | headers: {
251 | 'Content-Type': 'application/json;charset=utf-8',
252 | },
253 | body: JSON.stringify(params),
254 | });
255 |
256 | const result = await response.json() as ScSendResponse;
257 | return result;
258 | }
259 | \`\`\`
260 | ```
261 |
262 |
263 |
264 |
--------------------------------------------------------------------------------
/dart/serverchan-sdk/.gitignore:
--------------------------------------------------------------------------------
1 | # https://dart.dev/guides/libraries/private-files
2 | # Created by `dart pub`
3 | .dart_tool/
4 |
5 | # Avoid committing pubspec.lock for library packages; see
6 | # https://dart.dev/guides/libraries/private-files#pubspeclock.
7 | pubspec.lock
8 |
--------------------------------------------------------------------------------
/dart/serverchan-sdk/CHANGELOG.md:
--------------------------------------------------------------------------------
1 |
2 | ## [1.0.0] - 2024-09-30
3 |
4 | - 初始版本发布,支持通过 Server 酱发送消息。
5 |
6 | ## [1.0.1] - 2024-09-30
7 |
8 | - 支持 可选的 httpclient 参数
9 |
10 | ## [1.0.6] - 2024-10-15
11 |
12 | - 改为以安全模式调用Server酱³的接口
--------------------------------------------------------------------------------
/dart/serverchan-sdk/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2024 Easy
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 |
--------------------------------------------------------------------------------
/dart/serverchan-sdk/README.md:
--------------------------------------------------------------------------------
1 | # serverchan-sdk
2 |
3 | `serverchan-sdk` 是一个用于调用 Server 酱推送服务的 Dart SDK。该 SDK 允许你通过简单的接口将消息发送到 Server 酱,并支持可选的自定义参数。
4 |
5 | ## 功能
6 |
7 | - 支持 Server 酱 `SendKey` 推送
8 | - 支持自定义消息内容、描述、频道等选项
9 | - 支持 API 请求结果的解析
10 |
11 | ## 安装
12 |
13 | 在 `pubspec.yaml` 文件中添加依赖项:
14 |
15 | ```yaml
16 | dependencies:
17 | http: ^0.13.0
18 | serverchan_sdk:
19 | path: ./serverchan_sdk
20 | ```
21 |
22 | 然后运行以下命令:
23 |
24 | ```bash
25 | dart pub get
26 | ```
27 |
28 | ## 使用方法
29 |
30 | ### 简单示例
31 |
32 | ```dart
33 | import 'package:serverchan_sdk/serverchan_sdk.dart';
34 |
35 | void main() async {
36 | const sendkey = 'your-sendkey';
37 | const title = '测试标题';
38 | const desp = '这是消息的详细内容';
39 |
40 | try {
41 | ScSendResponse response = await scSend(sendkey, title, desp: desp);
42 | print('Response Code: ${response.code}');
43 | print('Response Message: ${response.message}');
44 | } catch (e) {
45 | print('Error: $e');
46 | }
47 | }
48 | ```
49 |
50 | ### 带有可选参数的示例
51 |
52 | ```dart
53 | import 'package:serverchan_sdk/serverchan_sdk.dart';
54 |
55 | void main() async {
56 | const sendkey = 'your-sendkey';
57 | const title = '带选项的测试标题';
58 | const desp = '这是带选项的消息内容';
59 |
60 | ScSendOptions options = ScSendOptions(
61 | tags: '测试,标签',
62 | shortDesc: '简短描述',
63 | noip: 1,
64 | );
65 |
66 | try {
67 | ScSendResponse response = await scSend(sendkey, title, desp: desp, options: options);
68 | print('Response Code: ${response.code}');
69 | print('Response Message: ${response.message}');
70 | } catch (e) {
71 | print('Error: $e');
72 | }
73 | }
74 | ```
75 |
76 | ## API 参考
77 |
78 | ### `scSend`
79 |
80 | ```dart
81 | Future scSend(String sendkey, String title, {String desp = '', ScSendOptions? options})
82 | ```
83 |
84 | 发送消息到 Server 酱。
85 |
86 | - `sendkey`:Server 酱的 SendKey,用于认证推送。
87 | - `title`:消息的标题。
88 | - `desp`(可选):消息的详细内容,默认为空字符串。
89 | - `options`(可选):一个 `ScSendOptions` 对象,包含推送的可选参数。
90 |
91 | 返回一个 `Future`,其中包含推送请求的结果。
92 |
93 | ### `ScSendOptions`
94 |
95 | 可选的推送参数,包含以下字段:
96 |
97 | - `tags`:消息的标签。
98 | - `shortDesc`:简短的描述。
99 | - `noip`:是否不显示 IP 地址(1 表示不显示)。
100 | - `channel`:自定义推送频道。
101 | - `openid`:指定的用户 OpenID。
102 |
103 | ### `ScSendResponse`
104 |
105 | 响应对象,包含以下字段:
106 |
107 | - `code`:API 返回的状态码。
108 | - `message`:API 返回的消息。
109 | - `data`:API 返回的数据(如果有的话)。
110 |
111 | ## 错误处理
112 |
113 | 在请求过程中可能会抛出异常,因此建议使用 `try-catch` 进行异常处理。
114 |
115 | ```dart
116 | try {
117 | // 发送推送请求
118 | } catch (e) {
119 | print('Error: $e');
120 | }
121 | ```
122 |
123 | ## 许可
124 |
125 | 该项目遵循 MIT 许可协议。
--------------------------------------------------------------------------------
/dart/serverchan-sdk/analysis_options.yaml:
--------------------------------------------------------------------------------
1 | # This file configures the static analysis results for your project (errors,
2 | # warnings, and lints).
3 | #
4 | # This enables the 'recommended' set of lints from `package:lints`.
5 | # This set helps identify many issues that may lead to problems when running
6 | # or consuming Dart code, and enforces writing Dart using a single, idiomatic
7 | # style and format.
8 | #
9 | # If you want a smaller set of lints you can change this to specify
10 | # 'package:lints/core.yaml'. These are just the most critical lints
11 | # (the recommended set includes the core lints).
12 | # The core lints are also what is used by pub.dev for scoring packages.
13 |
14 | include: package:lints/recommended.yaml
15 |
16 | # Uncomment the following section to specify additional rules.
17 |
18 | # linter:
19 | # rules:
20 | # - camel_case_types
21 |
22 | # analyzer:
23 | # exclude:
24 | # - path/to/excluded/files/**
25 |
26 | # For more information about the core and recommended set of lints, see
27 | # https://dart.dev/go/core-lints
28 |
29 | # For additional information about configuring this file, see
30 | # https://dart.dev/guides/language/analysis-options
31 |
--------------------------------------------------------------------------------
/dart/serverchan-sdk/example/serverchan_sdk_example.dart:
--------------------------------------------------------------------------------
1 | import 'package:serverchan_sdk/serverchan_sdk.dart';
2 |
3 | void main() async {
4 | const sendkey = 'your-sendkey';
5 | const title = 'Hello, Server Chan!';
6 | const desp = 'This is a test message from Dart SDK.';
7 |
8 | // 可选参数
9 | ScSendOptions options = ScSendOptions(
10 | tags: 'test,serverchan',
11 | shortDesc: 'Test Message',
12 | noip: 1,
13 | );
14 |
15 | try {
16 | ScSendResponse response =
17 | await scSend(sendkey, title, desp: desp, options: options);
18 | print('Response Code: ${response.code}');
19 | print('Response Message: ${response.message}');
20 | if (response.data != null) {
21 | print('Response Data: ${response.data}');
22 | }
23 | } catch (e) {
24 | print('Error: $e');
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/dart/serverchan-sdk/lib/serverchan_sdk.dart:
--------------------------------------------------------------------------------
1 | library serverchan_sdk;
2 |
3 | export 'src/serverchan_sdk_base.dart';
4 |
--------------------------------------------------------------------------------
/dart/serverchan-sdk/lib/src/serverchan_sdk_base.dart:
--------------------------------------------------------------------------------
1 | import 'dart:convert';
2 | import 'package:http/http.dart' as http;
3 |
4 | class ScSendOptions {
5 | String? tags;
6 | String? shortDesc;
7 | int? noip;
8 | String? channel;
9 | String? openid;
10 |
11 | ScSendOptions(
12 | {this.tags, this.shortDesc, this.noip, this.channel, this.openid});
13 |
14 | Map toJson() {
15 | return {
16 | if (tags != null) 'tags': tags,
17 | if (shortDesc != null) 'short': shortDesc,
18 | if (noip != null) 'noip': noip,
19 | if (channel != null) 'channel': channel,
20 | if (openid != null) 'openid': openid,
21 | };
22 | }
23 | }
24 |
25 | class ScSendResponse {
26 | int code;
27 | String message;
28 | dynamic data;
29 |
30 | ScSendResponse({required this.code, required this.message, this.data});
31 |
32 | factory ScSendResponse.fromJson(Map json) {
33 | return ScSendResponse(
34 | code: json['code'],
35 | message: json['message'],
36 | data: json['data'],
37 | );
38 | }
39 | }
40 |
41 | Future scSend(
42 | String sendkey,
43 | String title, {
44 | String desp = '',
45 | ScSendOptions? options,
46 | http.Client? client, // 新增参数
47 | }) async {
48 | // 使用传入的 client 或默认的 http.Client()
49 | client ??= http.Client();
50 |
51 | String url;
52 | // 根据 sendkey 构建 URL,检查是否以 'sctp' 开头
53 | if (sendkey.startsWith('sctp')) {
54 | // 使用正则表达式提取数字部分
55 | final match = RegExp(r'^sctp(\d+)t').firstMatch(sendkey);
56 | if (match != null) {
57 | String numPart = match.group(1)!;
58 | url = 'https://$numPart.push.ft07.com/send/$sendkey.send';
59 | } else {
60 | throw ArgumentError('Invalid sendkey format');
61 | }
62 | } else {
63 | url = 'https://sctapi.ftqq.com/$sendkey.send';
64 | }
65 |
66 | Map params = {
67 | 'title': title,
68 | 'desp': desp,
69 | if (options != null) ...options.toJson(),
70 | };
71 |
72 | final response = await client.post(
73 | Uri.parse(url),
74 | headers: {'Content-Type': 'application/json;charset=utf-8'},
75 | body: jsonEncode(params),
76 | );
77 |
78 | final result = jsonDecode(response.body);
79 | return ScSendResponse.fromJson(result);
80 | }
81 |
--------------------------------------------------------------------------------
/dart/serverchan-sdk/pubspec.yaml:
--------------------------------------------------------------------------------
1 | name: serverchan_sdk
2 | description: A Dart SDK for sending messages via Server Chan.
3 | version: 1.0.6
4 | homepage: https://sct.ftqq.com
5 | repository: https://github.com/easychen/serverchan-sdk
6 | issue_tracker: https://github.com/easychen/serverchan-sdk/issues
7 | environment:
8 | sdk: ">=2.12.0 <4.0.0"
9 |
10 | dependencies:
11 | http: ^0.13.0
12 |
13 | dev_dependencies:
14 | test: ^1.16.0
15 | pedantic: ^1.11.0
16 |
17 | # Optional section for dart analysis and formatting rules.
18 | # This ensures a consistent code style.
19 | analyzer:
20 | strong-mode:
21 | implicit-casts: false
22 | implicit-dynamic: false
23 |
24 | flutter:
25 | uses-material-design: false
26 |
--------------------------------------------------------------------------------
/dart/serverchan-sdk/test/real_call_test.dart:
--------------------------------------------------------------------------------
1 | import 'package:serverchan_sdk/serverchan_sdk.dart';
2 | import 'package:test/test.dart';
3 |
4 | void main() {
5 | // Replace this with your actual SendKey
6 | const sendkey = 'sctp'; // 必须是有效的 sendkey
7 |
8 | group('Real API Call', () {
9 | test(
10 | 'scSend should send a message to ServerChan and return a valid response',
11 | () async {
12 | if (sendkey == 'your-sendkey') {
13 | fail('You must set a real SendKey to run this test.');
14 | }
15 |
16 | const title = 'Test from Dart SDK';
17 | const desp = 'This is a test message sent from a Dart test.';
18 |
19 | try {
20 | // Send an actual message
21 | ScSendResponse response = await scSend(sendkey, title, desp: desp);
22 |
23 | // Check that the response indicates success (Server 酱 API uses code 0 for success)
24 | expect(response.code, 0);
25 | print('Response message: ${response.message}');
26 | } catch (e) {
27 | fail('Failed to send message: $e');
28 | }
29 | });
30 | });
31 | }
32 |
--------------------------------------------------------------------------------
/dart/serverchan-sdk/test/serverchan_sdk_test.dart:
--------------------------------------------------------------------------------
1 | import 'dart:convert';
2 | import 'package:http/http.dart' as http;
3 | import 'package:http/testing.dart';
4 | import 'package:serverchan_sdk/serverchan_sdk.dart';
5 | import 'package:test/test.dart';
6 |
7 | void main() {
8 | group('ScSendOptions', () {
9 | test('toJson should return correct JSON map', () {
10 | ScSendOptions options = ScSendOptions(
11 | tags: 'test,tag',
12 | shortDesc: 'This is a short description',
13 | noip: 1,
14 | channel: 'email',
15 | openid: 'open123',
16 | );
17 |
18 | expect(options.toJson(), {
19 | 'tags': 'test,tag',
20 | 'short': 'This is a short description',
21 | 'noip': 1,
22 | 'channel': 'email',
23 | 'openid': 'open123',
24 | });
25 | });
26 | });
27 |
28 | group('ScSendResponse', () {
29 | test('fromJson should parse JSON correctly', () {
30 | Map jsonResponse = {
31 | 'code': 0,
32 | 'message': 'success',
33 | 'data': null,
34 | };
35 |
36 | ScSendResponse response = ScSendResponse.fromJson(jsonResponse);
37 |
38 | expect(response.code, 0);
39 | expect(response.message, 'success');
40 | expect(response.data, null);
41 | });
42 | });
43 |
44 | group('scSend API function', () {
45 | test('scSend should make a POST request and return ScSendResponse',
46 | () async {
47 | // Use MockClient to simulate the HTTP response
48 | final mockClient = MockClient((http.Request request) async {
49 | // Simulate a successful response from the server
50 | return http.Response(
51 | jsonEncode({
52 | 'code': 0,
53 | 'message': 'success',
54 | 'data': null,
55 | }),
56 | 200,
57 | headers: {'Content-Type': 'application/json'},
58 | );
59 | });
60 |
61 | // Replace the real http.post with the mock client
62 | const sendkey = 'test-sendkey';
63 | const title = 'Test Title';
64 | const desp = 'This is a test message.';
65 |
66 | ScSendOptions options = ScSendOptions(
67 | tags: 'test',
68 | shortDesc: 'Test short desc',
69 | noip: 1,
70 | );
71 |
72 | // Use mockClient for the http post request within the scSend function
73 | final response = await scSend(sendkey, title,
74 | desp: desp, options: options, client: mockClient);
75 |
76 | print(response);
77 | // Verify the result
78 | expect(response.code, 0);
79 | expect(response.message, 'success');
80 | });
81 | });
82 | }
83 |
--------------------------------------------------------------------------------
/npm/.npmignore:
--------------------------------------------------------------------------------
1 | test
--------------------------------------------------------------------------------
/npm/README.md:
--------------------------------------------------------------------------------
1 | # serverchan-sdk
2 |
3 | Server酱官方SDK,支持 ESM/CMD ,兼容 Nodejs/Web。使用示例:
4 |
5 | ```js
6 | import { scSend } from 'serverchan-sdk';
7 | const ret = await scSend('sendkey', 'title', 'description can be markdown', {tags:'服务器报警|图片'})
8 | console.log(ret);
9 | ```
10 |
11 | options:
12 |
13 | ```jsonc
14 | {
15 | /** SC3专用:标签列表,多个标签使用竖线分隔 */
16 | tags?: string;
17 | /** SC3和SCT:消息卡片的简短描述 */
18 | short?: string;
19 | /** SCT:是否隐藏调用IP,1为隐藏 */
20 | noip?: 1;
21 | /** SCT:推送使用的消息通道,多个通道值用竖线隔开 */
22 | channel?: string;
23 | /** SCT:消息抄送的 openid,多个 openid 用逗号或竖线分隔 */
24 | openid?: string;
25 | }
26 | ```
27 |
--------------------------------------------------------------------------------
/npm/dist/index.cjs:
--------------------------------------------------------------------------------
1 | "use strict";var a=require("cross-fetch");async function r(t,s,e="",n={}){const c=String(t).startsWith("sctp")?`https://${t}.push.ft07.com/send`:`https://sctapi.ftqq.com/${t}.send`,i={title:s,desp:e,...n};return await(await a(c,{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(i)})).json()}exports.scSend=r;
2 |
--------------------------------------------------------------------------------
/npm/dist/index.d.ts:
--------------------------------------------------------------------------------
1 | // index.d.ts
2 |
3 | /**
4 | * ScSendOptions 定义了推送函数的可选参数
5 | */
6 | export interface ScSendOptions {
7 | /** sctp 专用:标签列表,多个标签使用竖线分隔 */
8 | tags?: string;
9 | /** sctp 和非 sctp:消息卡片的简短描述 */
10 | short?: string;
11 | /** 非 sctp:是否隐藏调用IP,1为隐藏 */
12 | noip?: 1;
13 | /** 非 sctp:推送使用的消息通道,多个通道值用竖线隔开 */
14 | channel?: string;
15 | /** 非 sctp:消息抄送的 openid,多个 openid 用逗号或竖线分隔 */
16 | openid?: string;
17 | }
18 |
19 | /**
20 | * ScSendResponse 定义了推送函数返回的响应结果
21 | */
22 | export interface ScSendResponse {
23 | /** 返回的状态码 */
24 | code: number;
25 | /** 返回的消息 */
26 | message: string;
27 | /** 可选的返回数据 */
28 | data?: any;
29 | }
30 |
31 | /**
32 | * 调用 Server 酱的推送函数
33 | * @param sendkey Server 酱的 SendKey
34 | * @param title 推送的标题
35 | * @param desp 推送的正文内容,默认为空字符串
36 | * @param options 推送的额外选项
37 | * @returns 返回推送结果的 Promise
38 | */
39 | export function scSend(
40 | sendkey: string,
41 | title: string,
42 | desp?: string,
43 | options?: ScSendOptions
44 | ): Promise;
45 |
--------------------------------------------------------------------------------
/npm/dist/index.mjs:
--------------------------------------------------------------------------------
1 | import a from"cross-fetch";async function c(t,s,n="",e={}){const o=String(t).startsWith("sctp")?`https://${t}.push.ft07.com/send`:`https://sctapi.ftqq.com/${t}.send`,i={title:s,desp:n,...e};return await(await a(o,{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8"},body:JSON.stringify(i)})).json()}export{c as scSend};
2 |
--------------------------------------------------------------------------------
/npm/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "serverchan-sdk",
3 | "version": "1.0.0",
4 | "lockfileVersion": 3,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "serverchan-sdk",
9 | "version": "1.0.0",
10 | "dependencies": {
11 | "cross-fetch": "^4.0.0"
12 | },
13 | "devDependencies": {
14 | "@babel/core": "^7.0.0",
15 | "@babel/preset-env": "^7.0.0",
16 | "rollup": "^3.29.5",
17 | "rollup-plugin-esbuild": "^6.1.1"
18 | }
19 | },
20 | "node_modules/@ampproject/remapping": {
21 | "version": "2.3.0",
22 | "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.3.0.tgz",
23 | "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
24 | "dev": true,
25 | "license": "Apache-2.0",
26 | "dependencies": {
27 | "@jridgewell/gen-mapping": "^0.3.5",
28 | "@jridgewell/trace-mapping": "^0.3.24"
29 | },
30 | "engines": {
31 | "node": ">=6.0.0"
32 | }
33 | },
34 | "node_modules/@babel/code-frame": {
35 | "version": "7.24.7",
36 | "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.24.7.tgz",
37 | "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==",
38 | "dev": true,
39 | "license": "MIT",
40 | "dependencies": {
41 | "@babel/highlight": "^7.24.7",
42 | "picocolors": "^1.0.0"
43 | },
44 | "engines": {
45 | "node": ">=6.9.0"
46 | }
47 | },
48 | "node_modules/@babel/compat-data": {
49 | "version": "7.25.4",
50 | "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.25.4.tgz",
51 | "integrity": "sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==",
52 | "dev": true,
53 | "license": "MIT",
54 | "engines": {
55 | "node": ">=6.9.0"
56 | }
57 | },
58 | "node_modules/@babel/core": {
59 | "version": "7.25.2",
60 | "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.25.2.tgz",
61 | "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==",
62 | "dev": true,
63 | "license": "MIT",
64 | "dependencies": {
65 | "@ampproject/remapping": "^2.2.0",
66 | "@babel/code-frame": "^7.24.7",
67 | "@babel/generator": "^7.25.0",
68 | "@babel/helper-compilation-targets": "^7.25.2",
69 | "@babel/helper-module-transforms": "^7.25.2",
70 | "@babel/helpers": "^7.25.0",
71 | "@babel/parser": "^7.25.0",
72 | "@babel/template": "^7.25.0",
73 | "@babel/traverse": "^7.25.2",
74 | "@babel/types": "^7.25.2",
75 | "convert-source-map": "^2.0.0",
76 | "debug": "^4.1.0",
77 | "gensync": "^1.0.0-beta.2",
78 | "json5": "^2.2.3",
79 | "semver": "^6.3.1"
80 | },
81 | "engines": {
82 | "node": ">=6.9.0"
83 | },
84 | "funding": {
85 | "type": "opencollective",
86 | "url": "https://opencollective.com/babel"
87 | }
88 | },
89 | "node_modules/@babel/generator": {
90 | "version": "7.25.6",
91 | "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.25.6.tgz",
92 | "integrity": "sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==",
93 | "dev": true,
94 | "license": "MIT",
95 | "dependencies": {
96 | "@babel/types": "^7.25.6",
97 | "@jridgewell/gen-mapping": "^0.3.5",
98 | "@jridgewell/trace-mapping": "^0.3.25",
99 | "jsesc": "^2.5.1"
100 | },
101 | "engines": {
102 | "node": ">=6.9.0"
103 | }
104 | },
105 | "node_modules/@babel/helper-annotate-as-pure": {
106 | "version": "7.24.7",
107 | "resolved": "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz",
108 | "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==",
109 | "dev": true,
110 | "license": "MIT",
111 | "dependencies": {
112 | "@babel/types": "^7.24.7"
113 | },
114 | "engines": {
115 | "node": ">=6.9.0"
116 | }
117 | },
118 | "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
119 | "version": "7.24.7",
120 | "resolved": "https://registry.npmmirror.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz",
121 | "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==",
122 | "dev": true,
123 | "license": "MIT",
124 | "dependencies": {
125 | "@babel/traverse": "^7.24.7",
126 | "@babel/types": "^7.24.7"
127 | },
128 | "engines": {
129 | "node": ">=6.9.0"
130 | }
131 | },
132 | "node_modules/@babel/helper-compilation-targets": {
133 | "version": "7.25.2",
134 | "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz",
135 | "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==",
136 | "dev": true,
137 | "license": "MIT",
138 | "dependencies": {
139 | "@babel/compat-data": "^7.25.2",
140 | "@babel/helper-validator-option": "^7.24.8",
141 | "browserslist": "^4.23.1",
142 | "lru-cache": "^5.1.1",
143 | "semver": "^6.3.1"
144 | },
145 | "engines": {
146 | "node": ">=6.9.0"
147 | }
148 | },
149 | "node_modules/@babel/helper-create-class-features-plugin": {
150 | "version": "7.25.4",
151 | "resolved": "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.4.tgz",
152 | "integrity": "sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ==",
153 | "dev": true,
154 | "license": "MIT",
155 | "dependencies": {
156 | "@babel/helper-annotate-as-pure": "^7.24.7",
157 | "@babel/helper-member-expression-to-functions": "^7.24.8",
158 | "@babel/helper-optimise-call-expression": "^7.24.7",
159 | "@babel/helper-replace-supers": "^7.25.0",
160 | "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7",
161 | "@babel/traverse": "^7.25.4",
162 | "semver": "^6.3.1"
163 | },
164 | "engines": {
165 | "node": ">=6.9.0"
166 | },
167 | "peerDependencies": {
168 | "@babel/core": "^7.0.0"
169 | }
170 | },
171 | "node_modules/@babel/helper-create-regexp-features-plugin": {
172 | "version": "7.25.2",
173 | "resolved": "https://registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz",
174 | "integrity": "sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==",
175 | "dev": true,
176 | "license": "MIT",
177 | "dependencies": {
178 | "@babel/helper-annotate-as-pure": "^7.24.7",
179 | "regexpu-core": "^5.3.1",
180 | "semver": "^6.3.1"
181 | },
182 | "engines": {
183 | "node": ">=6.9.0"
184 | },
185 | "peerDependencies": {
186 | "@babel/core": "^7.0.0"
187 | }
188 | },
189 | "node_modules/@babel/helper-define-polyfill-provider": {
190 | "version": "0.6.2",
191 | "resolved": "https://registry.npmmirror.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz",
192 | "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==",
193 | "dev": true,
194 | "license": "MIT",
195 | "dependencies": {
196 | "@babel/helper-compilation-targets": "^7.22.6",
197 | "@babel/helper-plugin-utils": "^7.22.5",
198 | "debug": "^4.1.1",
199 | "lodash.debounce": "^4.0.8",
200 | "resolve": "^1.14.2"
201 | },
202 | "peerDependencies": {
203 | "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
204 | }
205 | },
206 | "node_modules/@babel/helper-member-expression-to-functions": {
207 | "version": "7.24.8",
208 | "resolved": "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz",
209 | "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==",
210 | "dev": true,
211 | "license": "MIT",
212 | "dependencies": {
213 | "@babel/traverse": "^7.24.8",
214 | "@babel/types": "^7.24.8"
215 | },
216 | "engines": {
217 | "node": ">=6.9.0"
218 | }
219 | },
220 | "node_modules/@babel/helper-module-imports": {
221 | "version": "7.24.7",
222 | "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz",
223 | "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==",
224 | "dev": true,
225 | "license": "MIT",
226 | "dependencies": {
227 | "@babel/traverse": "^7.24.7",
228 | "@babel/types": "^7.24.7"
229 | },
230 | "engines": {
231 | "node": ">=6.9.0"
232 | }
233 | },
234 | "node_modules/@babel/helper-module-transforms": {
235 | "version": "7.25.2",
236 | "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz",
237 | "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==",
238 | "dev": true,
239 | "license": "MIT",
240 | "dependencies": {
241 | "@babel/helper-module-imports": "^7.24.7",
242 | "@babel/helper-simple-access": "^7.24.7",
243 | "@babel/helper-validator-identifier": "^7.24.7",
244 | "@babel/traverse": "^7.25.2"
245 | },
246 | "engines": {
247 | "node": ">=6.9.0"
248 | },
249 | "peerDependencies": {
250 | "@babel/core": "^7.0.0"
251 | }
252 | },
253 | "node_modules/@babel/helper-optimise-call-expression": {
254 | "version": "7.24.7",
255 | "resolved": "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz",
256 | "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==",
257 | "dev": true,
258 | "license": "MIT",
259 | "dependencies": {
260 | "@babel/types": "^7.24.7"
261 | },
262 | "engines": {
263 | "node": ">=6.9.0"
264 | }
265 | },
266 | "node_modules/@babel/helper-plugin-utils": {
267 | "version": "7.24.8",
268 | "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz",
269 | "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==",
270 | "dev": true,
271 | "license": "MIT",
272 | "engines": {
273 | "node": ">=6.9.0"
274 | }
275 | },
276 | "node_modules/@babel/helper-remap-async-to-generator": {
277 | "version": "7.25.0",
278 | "resolved": "https://registry.npmmirror.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz",
279 | "integrity": "sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==",
280 | "dev": true,
281 | "license": "MIT",
282 | "dependencies": {
283 | "@babel/helper-annotate-as-pure": "^7.24.7",
284 | "@babel/helper-wrap-function": "^7.25.0",
285 | "@babel/traverse": "^7.25.0"
286 | },
287 | "engines": {
288 | "node": ">=6.9.0"
289 | },
290 | "peerDependencies": {
291 | "@babel/core": "^7.0.0"
292 | }
293 | },
294 | "node_modules/@babel/helper-replace-supers": {
295 | "version": "7.25.0",
296 | "resolved": "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz",
297 | "integrity": "sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==",
298 | "dev": true,
299 | "license": "MIT",
300 | "dependencies": {
301 | "@babel/helper-member-expression-to-functions": "^7.24.8",
302 | "@babel/helper-optimise-call-expression": "^7.24.7",
303 | "@babel/traverse": "^7.25.0"
304 | },
305 | "engines": {
306 | "node": ">=6.9.0"
307 | },
308 | "peerDependencies": {
309 | "@babel/core": "^7.0.0"
310 | }
311 | },
312 | "node_modules/@babel/helper-simple-access": {
313 | "version": "7.24.7",
314 | "resolved": "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz",
315 | "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==",
316 | "dev": true,
317 | "license": "MIT",
318 | "dependencies": {
319 | "@babel/traverse": "^7.24.7",
320 | "@babel/types": "^7.24.7"
321 | },
322 | "engines": {
323 | "node": ">=6.9.0"
324 | }
325 | },
326 | "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
327 | "version": "7.24.7",
328 | "resolved": "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz",
329 | "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==",
330 | "dev": true,
331 | "license": "MIT",
332 | "dependencies": {
333 | "@babel/traverse": "^7.24.7",
334 | "@babel/types": "^7.24.7"
335 | },
336 | "engines": {
337 | "node": ">=6.9.0"
338 | }
339 | },
340 | "node_modules/@babel/helper-string-parser": {
341 | "version": "7.24.8",
342 | "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz",
343 | "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==",
344 | "dev": true,
345 | "license": "MIT",
346 | "engines": {
347 | "node": ">=6.9.0"
348 | }
349 | },
350 | "node_modules/@babel/helper-validator-identifier": {
351 | "version": "7.24.7",
352 | "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz",
353 | "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==",
354 | "dev": true,
355 | "license": "MIT",
356 | "engines": {
357 | "node": ">=6.9.0"
358 | }
359 | },
360 | "node_modules/@babel/helper-validator-option": {
361 | "version": "7.24.8",
362 | "resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz",
363 | "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==",
364 | "dev": true,
365 | "license": "MIT",
366 | "engines": {
367 | "node": ">=6.9.0"
368 | }
369 | },
370 | "node_modules/@babel/helper-wrap-function": {
371 | "version": "7.25.0",
372 | "resolved": "https://registry.npmmirror.com/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz",
373 | "integrity": "sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==",
374 | "dev": true,
375 | "license": "MIT",
376 | "dependencies": {
377 | "@babel/template": "^7.25.0",
378 | "@babel/traverse": "^7.25.0",
379 | "@babel/types": "^7.25.0"
380 | },
381 | "engines": {
382 | "node": ">=6.9.0"
383 | }
384 | },
385 | "node_modules/@babel/helpers": {
386 | "version": "7.25.6",
387 | "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.25.6.tgz",
388 | "integrity": "sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==",
389 | "dev": true,
390 | "license": "MIT",
391 | "dependencies": {
392 | "@babel/template": "^7.25.0",
393 | "@babel/types": "^7.25.6"
394 | },
395 | "engines": {
396 | "node": ">=6.9.0"
397 | }
398 | },
399 | "node_modules/@babel/highlight": {
400 | "version": "7.24.7",
401 | "resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.24.7.tgz",
402 | "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==",
403 | "dev": true,
404 | "license": "MIT",
405 | "dependencies": {
406 | "@babel/helper-validator-identifier": "^7.24.7",
407 | "chalk": "^2.4.2",
408 | "js-tokens": "^4.0.0",
409 | "picocolors": "^1.0.0"
410 | },
411 | "engines": {
412 | "node": ">=6.9.0"
413 | }
414 | },
415 | "node_modules/@babel/parser": {
416 | "version": "7.25.6",
417 | "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.25.6.tgz",
418 | "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==",
419 | "dev": true,
420 | "license": "MIT",
421 | "dependencies": {
422 | "@babel/types": "^7.25.6"
423 | },
424 | "bin": {
425 | "parser": "bin/babel-parser.js"
426 | },
427 | "engines": {
428 | "node": ">=6.0.0"
429 | }
430 | },
431 | "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": {
432 | "version": "7.25.3",
433 | "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.3.tgz",
434 | "integrity": "sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==",
435 | "dev": true,
436 | "license": "MIT",
437 | "dependencies": {
438 | "@babel/helper-plugin-utils": "^7.24.8",
439 | "@babel/traverse": "^7.25.3"
440 | },
441 | "engines": {
442 | "node": ">=6.9.0"
443 | },
444 | "peerDependencies": {
445 | "@babel/core": "^7.0.0"
446 | }
447 | },
448 | "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": {
449 | "version": "7.25.0",
450 | "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz",
451 | "integrity": "sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==",
452 | "dev": true,
453 | "license": "MIT",
454 | "dependencies": {
455 | "@babel/helper-plugin-utils": "^7.24.8"
456 | },
457 | "engines": {
458 | "node": ">=6.9.0"
459 | },
460 | "peerDependencies": {
461 | "@babel/core": "^7.0.0"
462 | }
463 | },
464 | "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
465 | "version": "7.25.0",
466 | "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.0.tgz",
467 | "integrity": "sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==",
468 | "dev": true,
469 | "license": "MIT",
470 | "dependencies": {
471 | "@babel/helper-plugin-utils": "^7.24.8"
472 | },
473 | "engines": {
474 | "node": ">=6.9.0"
475 | },
476 | "peerDependencies": {
477 | "@babel/core": "^7.0.0"
478 | }
479 | },
480 | "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
481 | "version": "7.24.7",
482 | "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz",
483 | "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==",
484 | "dev": true,
485 | "license": "MIT",
486 | "dependencies": {
487 | "@babel/helper-plugin-utils": "^7.24.7",
488 | "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7",
489 | "@babel/plugin-transform-optional-chaining": "^7.24.7"
490 | },
491 | "engines": {
492 | "node": ">=6.9.0"
493 | },
494 | "peerDependencies": {
495 | "@babel/core": "^7.13.0"
496 | }
497 | },
498 | "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": {
499 | "version": "7.25.0",
500 | "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz",
501 | "integrity": "sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==",
502 | "dev": true,
503 | "license": "MIT",
504 | "dependencies": {
505 | "@babel/helper-plugin-utils": "^7.24.8",
506 | "@babel/traverse": "^7.25.0"
507 | },
508 | "engines": {
509 | "node": ">=6.9.0"
510 | },
511 | "peerDependencies": {
512 | "@babel/core": "^7.0.0"
513 | }
514 | },
515 | "node_modules/@babel/plugin-proposal-private-property-in-object": {
516 | "version": "7.21.0-placeholder-for-preset-env.2",
517 | "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
518 | "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==",
519 | "dev": true,
520 | "license": "MIT",
521 | "engines": {
522 | "node": ">=6.9.0"
523 | },
524 | "peerDependencies": {
525 | "@babel/core": "^7.0.0-0"
526 | }
527 | },
528 | "node_modules/@babel/plugin-syntax-async-generators": {
529 | "version": "7.8.4",
530 | "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
531 | "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
532 | "dev": true,
533 | "license": "MIT",
534 | "dependencies": {
535 | "@babel/helper-plugin-utils": "^7.8.0"
536 | },
537 | "peerDependencies": {
538 | "@babel/core": "^7.0.0-0"
539 | }
540 | },
541 | "node_modules/@babel/plugin-syntax-class-properties": {
542 | "version": "7.12.13",
543 | "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
544 | "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
545 | "dev": true,
546 | "license": "MIT",
547 | "dependencies": {
548 | "@babel/helper-plugin-utils": "^7.12.13"
549 | },
550 | "peerDependencies": {
551 | "@babel/core": "^7.0.0-0"
552 | }
553 | },
554 | "node_modules/@babel/plugin-syntax-class-static-block": {
555 | "version": "7.14.5",
556 | "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
557 | "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
558 | "dev": true,
559 | "license": "MIT",
560 | "dependencies": {
561 | "@babel/helper-plugin-utils": "^7.14.5"
562 | },
563 | "engines": {
564 | "node": ">=6.9.0"
565 | },
566 | "peerDependencies": {
567 | "@babel/core": "^7.0.0-0"
568 | }
569 | },
570 | "node_modules/@babel/plugin-syntax-dynamic-import": {
571 | "version": "7.8.3",
572 | "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
573 | "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
574 | "dev": true,
575 | "license": "MIT",
576 | "dependencies": {
577 | "@babel/helper-plugin-utils": "^7.8.0"
578 | },
579 | "peerDependencies": {
580 | "@babel/core": "^7.0.0-0"
581 | }
582 | },
583 | "node_modules/@babel/plugin-syntax-export-namespace-from": {
584 | "version": "7.8.3",
585 | "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
586 | "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
587 | "dev": true,
588 | "license": "MIT",
589 | "dependencies": {
590 | "@babel/helper-plugin-utils": "^7.8.3"
591 | },
592 | "peerDependencies": {
593 | "@babel/core": "^7.0.0-0"
594 | }
595 | },
596 | "node_modules/@babel/plugin-syntax-import-assertions": {
597 | "version": "7.25.6",
598 | "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.25.6.tgz",
599 | "integrity": "sha512-aABl0jHw9bZ2karQ/uUD6XP4u0SG22SJrOHFoL6XB1R7dTovOP4TzTlsxOYC5yQ1pdscVK2JTUnF6QL3ARoAiQ==",
600 | "dev": true,
601 | "license": "MIT",
602 | "dependencies": {
603 | "@babel/helper-plugin-utils": "^7.24.8"
604 | },
605 | "engines": {
606 | "node": ">=6.9.0"
607 | },
608 | "peerDependencies": {
609 | "@babel/core": "^7.0.0-0"
610 | }
611 | },
612 | "node_modules/@babel/plugin-syntax-import-attributes": {
613 | "version": "7.25.6",
614 | "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.6.tgz",
615 | "integrity": "sha512-sXaDXaJN9SNLymBdlWFA+bjzBhFD617ZaFiY13dGt7TVslVvVgA6fkZOP7Ki3IGElC45lwHdOTrCtKZGVAWeLQ==",
616 | "dev": true,
617 | "license": "MIT",
618 | "dependencies": {
619 | "@babel/helper-plugin-utils": "^7.24.8"
620 | },
621 | "engines": {
622 | "node": ">=6.9.0"
623 | },
624 | "peerDependencies": {
625 | "@babel/core": "^7.0.0-0"
626 | }
627 | },
628 | "node_modules/@babel/plugin-syntax-import-meta": {
629 | "version": "7.10.4",
630 | "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
631 | "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
632 | "dev": true,
633 | "license": "MIT",
634 | "dependencies": {
635 | "@babel/helper-plugin-utils": "^7.10.4"
636 | },
637 | "peerDependencies": {
638 | "@babel/core": "^7.0.0-0"
639 | }
640 | },
641 | "node_modules/@babel/plugin-syntax-json-strings": {
642 | "version": "7.8.3",
643 | "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
644 | "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
645 | "dev": true,
646 | "license": "MIT",
647 | "dependencies": {
648 | "@babel/helper-plugin-utils": "^7.8.0"
649 | },
650 | "peerDependencies": {
651 | "@babel/core": "^7.0.0-0"
652 | }
653 | },
654 | "node_modules/@babel/plugin-syntax-logical-assignment-operators": {
655 | "version": "7.10.4",
656 | "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
657 | "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
658 | "dev": true,
659 | "license": "MIT",
660 | "dependencies": {
661 | "@babel/helper-plugin-utils": "^7.10.4"
662 | },
663 | "peerDependencies": {
664 | "@babel/core": "^7.0.0-0"
665 | }
666 | },
667 | "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": {
668 | "version": "7.8.3",
669 | "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
670 | "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
671 | "dev": true,
672 | "license": "MIT",
673 | "dependencies": {
674 | "@babel/helper-plugin-utils": "^7.8.0"
675 | },
676 | "peerDependencies": {
677 | "@babel/core": "^7.0.0-0"
678 | }
679 | },
680 | "node_modules/@babel/plugin-syntax-numeric-separator": {
681 | "version": "7.10.4",
682 | "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
683 | "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
684 | "dev": true,
685 | "license": "MIT",
686 | "dependencies": {
687 | "@babel/helper-plugin-utils": "^7.10.4"
688 | },
689 | "peerDependencies": {
690 | "@babel/core": "^7.0.0-0"
691 | }
692 | },
693 | "node_modules/@babel/plugin-syntax-object-rest-spread": {
694 | "version": "7.8.3",
695 | "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
696 | "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
697 | "dev": true,
698 | "license": "MIT",
699 | "dependencies": {
700 | "@babel/helper-plugin-utils": "^7.8.0"
701 | },
702 | "peerDependencies": {
703 | "@babel/core": "^7.0.0-0"
704 | }
705 | },
706 | "node_modules/@babel/plugin-syntax-optional-catch-binding": {
707 | "version": "7.8.3",
708 | "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
709 | "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
710 | "dev": true,
711 | "license": "MIT",
712 | "dependencies": {
713 | "@babel/helper-plugin-utils": "^7.8.0"
714 | },
715 | "peerDependencies": {
716 | "@babel/core": "^7.0.0-0"
717 | }
718 | },
719 | "node_modules/@babel/plugin-syntax-optional-chaining": {
720 | "version": "7.8.3",
721 | "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
722 | "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
723 | "dev": true,
724 | "license": "MIT",
725 | "dependencies": {
726 | "@babel/helper-plugin-utils": "^7.8.0"
727 | },
728 | "peerDependencies": {
729 | "@babel/core": "^7.0.0-0"
730 | }
731 | },
732 | "node_modules/@babel/plugin-syntax-private-property-in-object": {
733 | "version": "7.14.5",
734 | "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
735 | "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
736 | "dev": true,
737 | "license": "MIT",
738 | "dependencies": {
739 | "@babel/helper-plugin-utils": "^7.14.5"
740 | },
741 | "engines": {
742 | "node": ">=6.9.0"
743 | },
744 | "peerDependencies": {
745 | "@babel/core": "^7.0.0-0"
746 | }
747 | },
748 | "node_modules/@babel/plugin-syntax-top-level-await": {
749 | "version": "7.14.5",
750 | "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
751 | "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
752 | "dev": true,
753 | "license": "MIT",
754 | "dependencies": {
755 | "@babel/helper-plugin-utils": "^7.14.5"
756 | },
757 | "engines": {
758 | "node": ">=6.9.0"
759 | },
760 | "peerDependencies": {
761 | "@babel/core": "^7.0.0-0"
762 | }
763 | },
764 | "node_modules/@babel/plugin-syntax-unicode-sets-regex": {
765 | "version": "7.18.6",
766 | "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz",
767 | "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==",
768 | "dev": true,
769 | "license": "MIT",
770 | "dependencies": {
771 | "@babel/helper-create-regexp-features-plugin": "^7.18.6",
772 | "@babel/helper-plugin-utils": "^7.18.6"
773 | },
774 | "engines": {
775 | "node": ">=6.9.0"
776 | },
777 | "peerDependencies": {
778 | "@babel/core": "^7.0.0"
779 | }
780 | },
781 | "node_modules/@babel/plugin-transform-arrow-functions": {
782 | "version": "7.24.7",
783 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz",
784 | "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==",
785 | "dev": true,
786 | "license": "MIT",
787 | "dependencies": {
788 | "@babel/helper-plugin-utils": "^7.24.7"
789 | },
790 | "engines": {
791 | "node": ">=6.9.0"
792 | },
793 | "peerDependencies": {
794 | "@babel/core": "^7.0.0-0"
795 | }
796 | },
797 | "node_modules/@babel/plugin-transform-async-generator-functions": {
798 | "version": "7.25.4",
799 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.4.tgz",
800 | "integrity": "sha512-jz8cV2XDDTqjKPwVPJBIjORVEmSGYhdRa8e5k5+vN+uwcjSrSxUaebBRa4ko1jqNF2uxyg8G6XYk30Jv285xzg==",
801 | "dev": true,
802 | "license": "MIT",
803 | "dependencies": {
804 | "@babel/helper-plugin-utils": "^7.24.8",
805 | "@babel/helper-remap-async-to-generator": "^7.25.0",
806 | "@babel/plugin-syntax-async-generators": "^7.8.4",
807 | "@babel/traverse": "^7.25.4"
808 | },
809 | "engines": {
810 | "node": ">=6.9.0"
811 | },
812 | "peerDependencies": {
813 | "@babel/core": "^7.0.0-0"
814 | }
815 | },
816 | "node_modules/@babel/plugin-transform-async-to-generator": {
817 | "version": "7.24.7",
818 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz",
819 | "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==",
820 | "dev": true,
821 | "license": "MIT",
822 | "dependencies": {
823 | "@babel/helper-module-imports": "^7.24.7",
824 | "@babel/helper-plugin-utils": "^7.24.7",
825 | "@babel/helper-remap-async-to-generator": "^7.24.7"
826 | },
827 | "engines": {
828 | "node": ">=6.9.0"
829 | },
830 | "peerDependencies": {
831 | "@babel/core": "^7.0.0-0"
832 | }
833 | },
834 | "node_modules/@babel/plugin-transform-block-scoped-functions": {
835 | "version": "7.24.7",
836 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz",
837 | "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==",
838 | "dev": true,
839 | "license": "MIT",
840 | "dependencies": {
841 | "@babel/helper-plugin-utils": "^7.24.7"
842 | },
843 | "engines": {
844 | "node": ">=6.9.0"
845 | },
846 | "peerDependencies": {
847 | "@babel/core": "^7.0.0-0"
848 | }
849 | },
850 | "node_modules/@babel/plugin-transform-block-scoping": {
851 | "version": "7.25.0",
852 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz",
853 | "integrity": "sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==",
854 | "dev": true,
855 | "license": "MIT",
856 | "dependencies": {
857 | "@babel/helper-plugin-utils": "^7.24.8"
858 | },
859 | "engines": {
860 | "node": ">=6.9.0"
861 | },
862 | "peerDependencies": {
863 | "@babel/core": "^7.0.0-0"
864 | }
865 | },
866 | "node_modules/@babel/plugin-transform-class-properties": {
867 | "version": "7.25.4",
868 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.4.tgz",
869 | "integrity": "sha512-nZeZHyCWPfjkdU5pA/uHiTaDAFUEqkpzf1YoQT2NeSynCGYq9rxfyI3XpQbfx/a0hSnFH6TGlEXvae5Vi7GD8g==",
870 | "dev": true,
871 | "license": "MIT",
872 | "dependencies": {
873 | "@babel/helper-create-class-features-plugin": "^7.25.4",
874 | "@babel/helper-plugin-utils": "^7.24.8"
875 | },
876 | "engines": {
877 | "node": ">=6.9.0"
878 | },
879 | "peerDependencies": {
880 | "@babel/core": "^7.0.0-0"
881 | }
882 | },
883 | "node_modules/@babel/plugin-transform-class-static-block": {
884 | "version": "7.24.7",
885 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz",
886 | "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==",
887 | "dev": true,
888 | "license": "MIT",
889 | "dependencies": {
890 | "@babel/helper-create-class-features-plugin": "^7.24.7",
891 | "@babel/helper-plugin-utils": "^7.24.7",
892 | "@babel/plugin-syntax-class-static-block": "^7.14.5"
893 | },
894 | "engines": {
895 | "node": ">=6.9.0"
896 | },
897 | "peerDependencies": {
898 | "@babel/core": "^7.12.0"
899 | }
900 | },
901 | "node_modules/@babel/plugin-transform-classes": {
902 | "version": "7.25.4",
903 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.4.tgz",
904 | "integrity": "sha512-oexUfaQle2pF/b6E0dwsxQtAol9TLSO88kQvym6HHBWFliV2lGdrPieX+WgMRLSJDVzdYywk7jXbLPuO2KLTLg==",
905 | "dev": true,
906 | "license": "MIT",
907 | "dependencies": {
908 | "@babel/helper-annotate-as-pure": "^7.24.7",
909 | "@babel/helper-compilation-targets": "^7.25.2",
910 | "@babel/helper-plugin-utils": "^7.24.8",
911 | "@babel/helper-replace-supers": "^7.25.0",
912 | "@babel/traverse": "^7.25.4",
913 | "globals": "^11.1.0"
914 | },
915 | "engines": {
916 | "node": ">=6.9.0"
917 | },
918 | "peerDependencies": {
919 | "@babel/core": "^7.0.0-0"
920 | }
921 | },
922 | "node_modules/@babel/plugin-transform-computed-properties": {
923 | "version": "7.24.7",
924 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz",
925 | "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==",
926 | "dev": true,
927 | "license": "MIT",
928 | "dependencies": {
929 | "@babel/helper-plugin-utils": "^7.24.7",
930 | "@babel/template": "^7.24.7"
931 | },
932 | "engines": {
933 | "node": ">=6.9.0"
934 | },
935 | "peerDependencies": {
936 | "@babel/core": "^7.0.0-0"
937 | }
938 | },
939 | "node_modules/@babel/plugin-transform-destructuring": {
940 | "version": "7.24.8",
941 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz",
942 | "integrity": "sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==",
943 | "dev": true,
944 | "license": "MIT",
945 | "dependencies": {
946 | "@babel/helper-plugin-utils": "^7.24.8"
947 | },
948 | "engines": {
949 | "node": ">=6.9.0"
950 | },
951 | "peerDependencies": {
952 | "@babel/core": "^7.0.0-0"
953 | }
954 | },
955 | "node_modules/@babel/plugin-transform-dotall-regex": {
956 | "version": "7.24.7",
957 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz",
958 | "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==",
959 | "dev": true,
960 | "license": "MIT",
961 | "dependencies": {
962 | "@babel/helper-create-regexp-features-plugin": "^7.24.7",
963 | "@babel/helper-plugin-utils": "^7.24.7"
964 | },
965 | "engines": {
966 | "node": ">=6.9.0"
967 | },
968 | "peerDependencies": {
969 | "@babel/core": "^7.0.0-0"
970 | }
971 | },
972 | "node_modules/@babel/plugin-transform-duplicate-keys": {
973 | "version": "7.24.7",
974 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz",
975 | "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==",
976 | "dev": true,
977 | "license": "MIT",
978 | "dependencies": {
979 | "@babel/helper-plugin-utils": "^7.24.7"
980 | },
981 | "engines": {
982 | "node": ">=6.9.0"
983 | },
984 | "peerDependencies": {
985 | "@babel/core": "^7.0.0-0"
986 | }
987 | },
988 | "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": {
989 | "version": "7.25.0",
990 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz",
991 | "integrity": "sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==",
992 | "dev": true,
993 | "license": "MIT",
994 | "dependencies": {
995 | "@babel/helper-create-regexp-features-plugin": "^7.25.0",
996 | "@babel/helper-plugin-utils": "^7.24.8"
997 | },
998 | "engines": {
999 | "node": ">=6.9.0"
1000 | },
1001 | "peerDependencies": {
1002 | "@babel/core": "^7.0.0"
1003 | }
1004 | },
1005 | "node_modules/@babel/plugin-transform-dynamic-import": {
1006 | "version": "7.24.7",
1007 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz",
1008 | "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==",
1009 | "dev": true,
1010 | "license": "MIT",
1011 | "dependencies": {
1012 | "@babel/helper-plugin-utils": "^7.24.7",
1013 | "@babel/plugin-syntax-dynamic-import": "^7.8.3"
1014 | },
1015 | "engines": {
1016 | "node": ">=6.9.0"
1017 | },
1018 | "peerDependencies": {
1019 | "@babel/core": "^7.0.0-0"
1020 | }
1021 | },
1022 | "node_modules/@babel/plugin-transform-exponentiation-operator": {
1023 | "version": "7.24.7",
1024 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz",
1025 | "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==",
1026 | "dev": true,
1027 | "license": "MIT",
1028 | "dependencies": {
1029 | "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7",
1030 | "@babel/helper-plugin-utils": "^7.24.7"
1031 | },
1032 | "engines": {
1033 | "node": ">=6.9.0"
1034 | },
1035 | "peerDependencies": {
1036 | "@babel/core": "^7.0.0-0"
1037 | }
1038 | },
1039 | "node_modules/@babel/plugin-transform-export-namespace-from": {
1040 | "version": "7.24.7",
1041 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz",
1042 | "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==",
1043 | "dev": true,
1044 | "license": "MIT",
1045 | "dependencies": {
1046 | "@babel/helper-plugin-utils": "^7.24.7",
1047 | "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
1048 | },
1049 | "engines": {
1050 | "node": ">=6.9.0"
1051 | },
1052 | "peerDependencies": {
1053 | "@babel/core": "^7.0.0-0"
1054 | }
1055 | },
1056 | "node_modules/@babel/plugin-transform-for-of": {
1057 | "version": "7.24.7",
1058 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz",
1059 | "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==",
1060 | "dev": true,
1061 | "license": "MIT",
1062 | "dependencies": {
1063 | "@babel/helper-plugin-utils": "^7.24.7",
1064 | "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7"
1065 | },
1066 | "engines": {
1067 | "node": ">=6.9.0"
1068 | },
1069 | "peerDependencies": {
1070 | "@babel/core": "^7.0.0-0"
1071 | }
1072 | },
1073 | "node_modules/@babel/plugin-transform-function-name": {
1074 | "version": "7.25.1",
1075 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz",
1076 | "integrity": "sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==",
1077 | "dev": true,
1078 | "license": "MIT",
1079 | "dependencies": {
1080 | "@babel/helper-compilation-targets": "^7.24.8",
1081 | "@babel/helper-plugin-utils": "^7.24.8",
1082 | "@babel/traverse": "^7.25.1"
1083 | },
1084 | "engines": {
1085 | "node": ">=6.9.0"
1086 | },
1087 | "peerDependencies": {
1088 | "@babel/core": "^7.0.0-0"
1089 | }
1090 | },
1091 | "node_modules/@babel/plugin-transform-json-strings": {
1092 | "version": "7.24.7",
1093 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz",
1094 | "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==",
1095 | "dev": true,
1096 | "license": "MIT",
1097 | "dependencies": {
1098 | "@babel/helper-plugin-utils": "^7.24.7",
1099 | "@babel/plugin-syntax-json-strings": "^7.8.3"
1100 | },
1101 | "engines": {
1102 | "node": ">=6.9.0"
1103 | },
1104 | "peerDependencies": {
1105 | "@babel/core": "^7.0.0-0"
1106 | }
1107 | },
1108 | "node_modules/@babel/plugin-transform-literals": {
1109 | "version": "7.25.2",
1110 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz",
1111 | "integrity": "sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==",
1112 | "dev": true,
1113 | "license": "MIT",
1114 | "dependencies": {
1115 | "@babel/helper-plugin-utils": "^7.24.8"
1116 | },
1117 | "engines": {
1118 | "node": ">=6.9.0"
1119 | },
1120 | "peerDependencies": {
1121 | "@babel/core": "^7.0.0-0"
1122 | }
1123 | },
1124 | "node_modules/@babel/plugin-transform-logical-assignment-operators": {
1125 | "version": "7.24.7",
1126 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz",
1127 | "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==",
1128 | "dev": true,
1129 | "license": "MIT",
1130 | "dependencies": {
1131 | "@babel/helper-plugin-utils": "^7.24.7",
1132 | "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
1133 | },
1134 | "engines": {
1135 | "node": ">=6.9.0"
1136 | },
1137 | "peerDependencies": {
1138 | "@babel/core": "^7.0.0-0"
1139 | }
1140 | },
1141 | "node_modules/@babel/plugin-transform-member-expression-literals": {
1142 | "version": "7.24.7",
1143 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz",
1144 | "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==",
1145 | "dev": true,
1146 | "license": "MIT",
1147 | "dependencies": {
1148 | "@babel/helper-plugin-utils": "^7.24.7"
1149 | },
1150 | "engines": {
1151 | "node": ">=6.9.0"
1152 | },
1153 | "peerDependencies": {
1154 | "@babel/core": "^7.0.0-0"
1155 | }
1156 | },
1157 | "node_modules/@babel/plugin-transform-modules-amd": {
1158 | "version": "7.24.7",
1159 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz",
1160 | "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==",
1161 | "dev": true,
1162 | "license": "MIT",
1163 | "dependencies": {
1164 | "@babel/helper-module-transforms": "^7.24.7",
1165 | "@babel/helper-plugin-utils": "^7.24.7"
1166 | },
1167 | "engines": {
1168 | "node": ">=6.9.0"
1169 | },
1170 | "peerDependencies": {
1171 | "@babel/core": "^7.0.0-0"
1172 | }
1173 | },
1174 | "node_modules/@babel/plugin-transform-modules-commonjs": {
1175 | "version": "7.24.8",
1176 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz",
1177 | "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==",
1178 | "dev": true,
1179 | "license": "MIT",
1180 | "dependencies": {
1181 | "@babel/helper-module-transforms": "^7.24.8",
1182 | "@babel/helper-plugin-utils": "^7.24.8",
1183 | "@babel/helper-simple-access": "^7.24.7"
1184 | },
1185 | "engines": {
1186 | "node": ">=6.9.0"
1187 | },
1188 | "peerDependencies": {
1189 | "@babel/core": "^7.0.0-0"
1190 | }
1191 | },
1192 | "node_modules/@babel/plugin-transform-modules-systemjs": {
1193 | "version": "7.25.0",
1194 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz",
1195 | "integrity": "sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==",
1196 | "dev": true,
1197 | "license": "MIT",
1198 | "dependencies": {
1199 | "@babel/helper-module-transforms": "^7.25.0",
1200 | "@babel/helper-plugin-utils": "^7.24.8",
1201 | "@babel/helper-validator-identifier": "^7.24.7",
1202 | "@babel/traverse": "^7.25.0"
1203 | },
1204 | "engines": {
1205 | "node": ">=6.9.0"
1206 | },
1207 | "peerDependencies": {
1208 | "@babel/core": "^7.0.0-0"
1209 | }
1210 | },
1211 | "node_modules/@babel/plugin-transform-modules-umd": {
1212 | "version": "7.24.7",
1213 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz",
1214 | "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==",
1215 | "dev": true,
1216 | "license": "MIT",
1217 | "dependencies": {
1218 | "@babel/helper-module-transforms": "^7.24.7",
1219 | "@babel/helper-plugin-utils": "^7.24.7"
1220 | },
1221 | "engines": {
1222 | "node": ">=6.9.0"
1223 | },
1224 | "peerDependencies": {
1225 | "@babel/core": "^7.0.0-0"
1226 | }
1227 | },
1228 | "node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
1229 | "version": "7.24.7",
1230 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz",
1231 | "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==",
1232 | "dev": true,
1233 | "license": "MIT",
1234 | "dependencies": {
1235 | "@babel/helper-create-regexp-features-plugin": "^7.24.7",
1236 | "@babel/helper-plugin-utils": "^7.24.7"
1237 | },
1238 | "engines": {
1239 | "node": ">=6.9.0"
1240 | },
1241 | "peerDependencies": {
1242 | "@babel/core": "^7.0.0"
1243 | }
1244 | },
1245 | "node_modules/@babel/plugin-transform-new-target": {
1246 | "version": "7.24.7",
1247 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz",
1248 | "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==",
1249 | "dev": true,
1250 | "license": "MIT",
1251 | "dependencies": {
1252 | "@babel/helper-plugin-utils": "^7.24.7"
1253 | },
1254 | "engines": {
1255 | "node": ">=6.9.0"
1256 | },
1257 | "peerDependencies": {
1258 | "@babel/core": "^7.0.0-0"
1259 | }
1260 | },
1261 | "node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
1262 | "version": "7.24.7",
1263 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz",
1264 | "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==",
1265 | "dev": true,
1266 | "license": "MIT",
1267 | "dependencies": {
1268 | "@babel/helper-plugin-utils": "^7.24.7",
1269 | "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
1270 | },
1271 | "engines": {
1272 | "node": ">=6.9.0"
1273 | },
1274 | "peerDependencies": {
1275 | "@babel/core": "^7.0.0-0"
1276 | }
1277 | },
1278 | "node_modules/@babel/plugin-transform-numeric-separator": {
1279 | "version": "7.24.7",
1280 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz",
1281 | "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==",
1282 | "dev": true,
1283 | "license": "MIT",
1284 | "dependencies": {
1285 | "@babel/helper-plugin-utils": "^7.24.7",
1286 | "@babel/plugin-syntax-numeric-separator": "^7.10.4"
1287 | },
1288 | "engines": {
1289 | "node": ">=6.9.0"
1290 | },
1291 | "peerDependencies": {
1292 | "@babel/core": "^7.0.0-0"
1293 | }
1294 | },
1295 | "node_modules/@babel/plugin-transform-object-rest-spread": {
1296 | "version": "7.24.7",
1297 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz",
1298 | "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==",
1299 | "dev": true,
1300 | "license": "MIT",
1301 | "dependencies": {
1302 | "@babel/helper-compilation-targets": "^7.24.7",
1303 | "@babel/helper-plugin-utils": "^7.24.7",
1304 | "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
1305 | "@babel/plugin-transform-parameters": "^7.24.7"
1306 | },
1307 | "engines": {
1308 | "node": ">=6.9.0"
1309 | },
1310 | "peerDependencies": {
1311 | "@babel/core": "^7.0.0-0"
1312 | }
1313 | },
1314 | "node_modules/@babel/plugin-transform-object-super": {
1315 | "version": "7.24.7",
1316 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz",
1317 | "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==",
1318 | "dev": true,
1319 | "license": "MIT",
1320 | "dependencies": {
1321 | "@babel/helper-plugin-utils": "^7.24.7",
1322 | "@babel/helper-replace-supers": "^7.24.7"
1323 | },
1324 | "engines": {
1325 | "node": ">=6.9.0"
1326 | },
1327 | "peerDependencies": {
1328 | "@babel/core": "^7.0.0-0"
1329 | }
1330 | },
1331 | "node_modules/@babel/plugin-transform-optional-catch-binding": {
1332 | "version": "7.24.7",
1333 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz",
1334 | "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==",
1335 | "dev": true,
1336 | "license": "MIT",
1337 | "dependencies": {
1338 | "@babel/helper-plugin-utils": "^7.24.7",
1339 | "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
1340 | },
1341 | "engines": {
1342 | "node": ">=6.9.0"
1343 | },
1344 | "peerDependencies": {
1345 | "@babel/core": "^7.0.0-0"
1346 | }
1347 | },
1348 | "node_modules/@babel/plugin-transform-optional-chaining": {
1349 | "version": "7.24.8",
1350 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz",
1351 | "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==",
1352 | "dev": true,
1353 | "license": "MIT",
1354 | "dependencies": {
1355 | "@babel/helper-plugin-utils": "^7.24.8",
1356 | "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7",
1357 | "@babel/plugin-syntax-optional-chaining": "^7.8.3"
1358 | },
1359 | "engines": {
1360 | "node": ">=6.9.0"
1361 | },
1362 | "peerDependencies": {
1363 | "@babel/core": "^7.0.0-0"
1364 | }
1365 | },
1366 | "node_modules/@babel/plugin-transform-parameters": {
1367 | "version": "7.24.7",
1368 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz",
1369 | "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==",
1370 | "dev": true,
1371 | "license": "MIT",
1372 | "dependencies": {
1373 | "@babel/helper-plugin-utils": "^7.24.7"
1374 | },
1375 | "engines": {
1376 | "node": ">=6.9.0"
1377 | },
1378 | "peerDependencies": {
1379 | "@babel/core": "^7.0.0-0"
1380 | }
1381 | },
1382 | "node_modules/@babel/plugin-transform-private-methods": {
1383 | "version": "7.25.4",
1384 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.4.tgz",
1385 | "integrity": "sha512-ao8BG7E2b/URaUQGqN3Tlsg+M3KlHY6rJ1O1gXAEUnZoyNQnvKyH87Kfg+FoxSeyWUB8ISZZsC91C44ZuBFytw==",
1386 | "dev": true,
1387 | "license": "MIT",
1388 | "dependencies": {
1389 | "@babel/helper-create-class-features-plugin": "^7.25.4",
1390 | "@babel/helper-plugin-utils": "^7.24.8"
1391 | },
1392 | "engines": {
1393 | "node": ">=6.9.0"
1394 | },
1395 | "peerDependencies": {
1396 | "@babel/core": "^7.0.0-0"
1397 | }
1398 | },
1399 | "node_modules/@babel/plugin-transform-private-property-in-object": {
1400 | "version": "7.24.7",
1401 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz",
1402 | "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==",
1403 | "dev": true,
1404 | "license": "MIT",
1405 | "dependencies": {
1406 | "@babel/helper-annotate-as-pure": "^7.24.7",
1407 | "@babel/helper-create-class-features-plugin": "^7.24.7",
1408 | "@babel/helper-plugin-utils": "^7.24.7",
1409 | "@babel/plugin-syntax-private-property-in-object": "^7.14.5"
1410 | },
1411 | "engines": {
1412 | "node": ">=6.9.0"
1413 | },
1414 | "peerDependencies": {
1415 | "@babel/core": "^7.0.0-0"
1416 | }
1417 | },
1418 | "node_modules/@babel/plugin-transform-property-literals": {
1419 | "version": "7.24.7",
1420 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz",
1421 | "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==",
1422 | "dev": true,
1423 | "license": "MIT",
1424 | "dependencies": {
1425 | "@babel/helper-plugin-utils": "^7.24.7"
1426 | },
1427 | "engines": {
1428 | "node": ">=6.9.0"
1429 | },
1430 | "peerDependencies": {
1431 | "@babel/core": "^7.0.0-0"
1432 | }
1433 | },
1434 | "node_modules/@babel/plugin-transform-regenerator": {
1435 | "version": "7.24.7",
1436 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz",
1437 | "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==",
1438 | "dev": true,
1439 | "license": "MIT",
1440 | "dependencies": {
1441 | "@babel/helper-plugin-utils": "^7.24.7",
1442 | "regenerator-transform": "^0.15.2"
1443 | },
1444 | "engines": {
1445 | "node": ">=6.9.0"
1446 | },
1447 | "peerDependencies": {
1448 | "@babel/core": "^7.0.0-0"
1449 | }
1450 | },
1451 | "node_modules/@babel/plugin-transform-reserved-words": {
1452 | "version": "7.24.7",
1453 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz",
1454 | "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==",
1455 | "dev": true,
1456 | "license": "MIT",
1457 | "dependencies": {
1458 | "@babel/helper-plugin-utils": "^7.24.7"
1459 | },
1460 | "engines": {
1461 | "node": ">=6.9.0"
1462 | },
1463 | "peerDependencies": {
1464 | "@babel/core": "^7.0.0-0"
1465 | }
1466 | },
1467 | "node_modules/@babel/plugin-transform-shorthand-properties": {
1468 | "version": "7.24.7",
1469 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz",
1470 | "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==",
1471 | "dev": true,
1472 | "license": "MIT",
1473 | "dependencies": {
1474 | "@babel/helper-plugin-utils": "^7.24.7"
1475 | },
1476 | "engines": {
1477 | "node": ">=6.9.0"
1478 | },
1479 | "peerDependencies": {
1480 | "@babel/core": "^7.0.0-0"
1481 | }
1482 | },
1483 | "node_modules/@babel/plugin-transform-spread": {
1484 | "version": "7.24.7",
1485 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz",
1486 | "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==",
1487 | "dev": true,
1488 | "license": "MIT",
1489 | "dependencies": {
1490 | "@babel/helper-plugin-utils": "^7.24.7",
1491 | "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7"
1492 | },
1493 | "engines": {
1494 | "node": ">=6.9.0"
1495 | },
1496 | "peerDependencies": {
1497 | "@babel/core": "^7.0.0-0"
1498 | }
1499 | },
1500 | "node_modules/@babel/plugin-transform-sticky-regex": {
1501 | "version": "7.24.7",
1502 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz",
1503 | "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==",
1504 | "dev": true,
1505 | "license": "MIT",
1506 | "dependencies": {
1507 | "@babel/helper-plugin-utils": "^7.24.7"
1508 | },
1509 | "engines": {
1510 | "node": ">=6.9.0"
1511 | },
1512 | "peerDependencies": {
1513 | "@babel/core": "^7.0.0-0"
1514 | }
1515 | },
1516 | "node_modules/@babel/plugin-transform-template-literals": {
1517 | "version": "7.24.7",
1518 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz",
1519 | "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==",
1520 | "dev": true,
1521 | "license": "MIT",
1522 | "dependencies": {
1523 | "@babel/helper-plugin-utils": "^7.24.7"
1524 | },
1525 | "engines": {
1526 | "node": ">=6.9.0"
1527 | },
1528 | "peerDependencies": {
1529 | "@babel/core": "^7.0.0-0"
1530 | }
1531 | },
1532 | "node_modules/@babel/plugin-transform-typeof-symbol": {
1533 | "version": "7.24.8",
1534 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz",
1535 | "integrity": "sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==",
1536 | "dev": true,
1537 | "license": "MIT",
1538 | "dependencies": {
1539 | "@babel/helper-plugin-utils": "^7.24.8"
1540 | },
1541 | "engines": {
1542 | "node": ">=6.9.0"
1543 | },
1544 | "peerDependencies": {
1545 | "@babel/core": "^7.0.0-0"
1546 | }
1547 | },
1548 | "node_modules/@babel/plugin-transform-unicode-escapes": {
1549 | "version": "7.24.7",
1550 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz",
1551 | "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==",
1552 | "dev": true,
1553 | "license": "MIT",
1554 | "dependencies": {
1555 | "@babel/helper-plugin-utils": "^7.24.7"
1556 | },
1557 | "engines": {
1558 | "node": ">=6.9.0"
1559 | },
1560 | "peerDependencies": {
1561 | "@babel/core": "^7.0.0-0"
1562 | }
1563 | },
1564 | "node_modules/@babel/plugin-transform-unicode-property-regex": {
1565 | "version": "7.24.7",
1566 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz",
1567 | "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==",
1568 | "dev": true,
1569 | "license": "MIT",
1570 | "dependencies": {
1571 | "@babel/helper-create-regexp-features-plugin": "^7.24.7",
1572 | "@babel/helper-plugin-utils": "^7.24.7"
1573 | },
1574 | "engines": {
1575 | "node": ">=6.9.0"
1576 | },
1577 | "peerDependencies": {
1578 | "@babel/core": "^7.0.0-0"
1579 | }
1580 | },
1581 | "node_modules/@babel/plugin-transform-unicode-regex": {
1582 | "version": "7.24.7",
1583 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz",
1584 | "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==",
1585 | "dev": true,
1586 | "license": "MIT",
1587 | "dependencies": {
1588 | "@babel/helper-create-regexp-features-plugin": "^7.24.7",
1589 | "@babel/helper-plugin-utils": "^7.24.7"
1590 | },
1591 | "engines": {
1592 | "node": ">=6.9.0"
1593 | },
1594 | "peerDependencies": {
1595 | "@babel/core": "^7.0.0-0"
1596 | }
1597 | },
1598 | "node_modules/@babel/plugin-transform-unicode-sets-regex": {
1599 | "version": "7.25.4",
1600 | "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.4.tgz",
1601 | "integrity": "sha512-qesBxiWkgN1Q+31xUE9RcMk79eOXXDCv6tfyGMRSs4RGlioSg2WVyQAm07k726cSE56pa+Kb0y9epX2qaXzTvA==",
1602 | "dev": true,
1603 | "license": "MIT",
1604 | "dependencies": {
1605 | "@babel/helper-create-regexp-features-plugin": "^7.25.2",
1606 | "@babel/helper-plugin-utils": "^7.24.8"
1607 | },
1608 | "engines": {
1609 | "node": ">=6.9.0"
1610 | },
1611 | "peerDependencies": {
1612 | "@babel/core": "^7.0.0"
1613 | }
1614 | },
1615 | "node_modules/@babel/preset-env": {
1616 | "version": "7.25.4",
1617 | "resolved": "https://registry.npmmirror.com/@babel/preset-env/-/preset-env-7.25.4.tgz",
1618 | "integrity": "sha512-W9Gyo+KmcxjGahtt3t9fb14vFRWvPpu5pT6GBlovAK6BTBcxgjfVMSQCfJl4oi35ODrxP6xx2Wr8LNST57Mraw==",
1619 | "dev": true,
1620 | "license": "MIT",
1621 | "dependencies": {
1622 | "@babel/compat-data": "^7.25.4",
1623 | "@babel/helper-compilation-targets": "^7.25.2",
1624 | "@babel/helper-plugin-utils": "^7.24.8",
1625 | "@babel/helper-validator-option": "^7.24.8",
1626 | "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.3",
1627 | "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.0",
1628 | "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.0",
1629 | "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7",
1630 | "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.0",
1631 | "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
1632 | "@babel/plugin-syntax-async-generators": "^7.8.4",
1633 | "@babel/plugin-syntax-class-properties": "^7.12.13",
1634 | "@babel/plugin-syntax-class-static-block": "^7.14.5",
1635 | "@babel/plugin-syntax-dynamic-import": "^7.8.3",
1636 | "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
1637 | "@babel/plugin-syntax-import-assertions": "^7.24.7",
1638 | "@babel/plugin-syntax-import-attributes": "^7.24.7",
1639 | "@babel/plugin-syntax-import-meta": "^7.10.4",
1640 | "@babel/plugin-syntax-json-strings": "^7.8.3",
1641 | "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
1642 | "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
1643 | "@babel/plugin-syntax-numeric-separator": "^7.10.4",
1644 | "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
1645 | "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
1646 | "@babel/plugin-syntax-optional-chaining": "^7.8.3",
1647 | "@babel/plugin-syntax-private-property-in-object": "^7.14.5",
1648 | "@babel/plugin-syntax-top-level-await": "^7.14.5",
1649 | "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6",
1650 | "@babel/plugin-transform-arrow-functions": "^7.24.7",
1651 | "@babel/plugin-transform-async-generator-functions": "^7.25.4",
1652 | "@babel/plugin-transform-async-to-generator": "^7.24.7",
1653 | "@babel/plugin-transform-block-scoped-functions": "^7.24.7",
1654 | "@babel/plugin-transform-block-scoping": "^7.25.0",
1655 | "@babel/plugin-transform-class-properties": "^7.25.4",
1656 | "@babel/plugin-transform-class-static-block": "^7.24.7",
1657 | "@babel/plugin-transform-classes": "^7.25.4",
1658 | "@babel/plugin-transform-computed-properties": "^7.24.7",
1659 | "@babel/plugin-transform-destructuring": "^7.24.8",
1660 | "@babel/plugin-transform-dotall-regex": "^7.24.7",
1661 | "@babel/plugin-transform-duplicate-keys": "^7.24.7",
1662 | "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.0",
1663 | "@babel/plugin-transform-dynamic-import": "^7.24.7",
1664 | "@babel/plugin-transform-exponentiation-operator": "^7.24.7",
1665 | "@babel/plugin-transform-export-namespace-from": "^7.24.7",
1666 | "@babel/plugin-transform-for-of": "^7.24.7",
1667 | "@babel/plugin-transform-function-name": "^7.25.1",
1668 | "@babel/plugin-transform-json-strings": "^7.24.7",
1669 | "@babel/plugin-transform-literals": "^7.25.2",
1670 | "@babel/plugin-transform-logical-assignment-operators": "^7.24.7",
1671 | "@babel/plugin-transform-member-expression-literals": "^7.24.7",
1672 | "@babel/plugin-transform-modules-amd": "^7.24.7",
1673 | "@babel/plugin-transform-modules-commonjs": "^7.24.8",
1674 | "@babel/plugin-transform-modules-systemjs": "^7.25.0",
1675 | "@babel/plugin-transform-modules-umd": "^7.24.7",
1676 | "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7",
1677 | "@babel/plugin-transform-new-target": "^7.24.7",
1678 | "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7",
1679 | "@babel/plugin-transform-numeric-separator": "^7.24.7",
1680 | "@babel/plugin-transform-object-rest-spread": "^7.24.7",
1681 | "@babel/plugin-transform-object-super": "^7.24.7",
1682 | "@babel/plugin-transform-optional-catch-binding": "^7.24.7",
1683 | "@babel/plugin-transform-optional-chaining": "^7.24.8",
1684 | "@babel/plugin-transform-parameters": "^7.24.7",
1685 | "@babel/plugin-transform-private-methods": "^7.25.4",
1686 | "@babel/plugin-transform-private-property-in-object": "^7.24.7",
1687 | "@babel/plugin-transform-property-literals": "^7.24.7",
1688 | "@babel/plugin-transform-regenerator": "^7.24.7",
1689 | "@babel/plugin-transform-reserved-words": "^7.24.7",
1690 | "@babel/plugin-transform-shorthand-properties": "^7.24.7",
1691 | "@babel/plugin-transform-spread": "^7.24.7",
1692 | "@babel/plugin-transform-sticky-regex": "^7.24.7",
1693 | "@babel/plugin-transform-template-literals": "^7.24.7",
1694 | "@babel/plugin-transform-typeof-symbol": "^7.24.8",
1695 | "@babel/plugin-transform-unicode-escapes": "^7.24.7",
1696 | "@babel/plugin-transform-unicode-property-regex": "^7.24.7",
1697 | "@babel/plugin-transform-unicode-regex": "^7.24.7",
1698 | "@babel/plugin-transform-unicode-sets-regex": "^7.25.4",
1699 | "@babel/preset-modules": "0.1.6-no-external-plugins",
1700 | "babel-plugin-polyfill-corejs2": "^0.4.10",
1701 | "babel-plugin-polyfill-corejs3": "^0.10.6",
1702 | "babel-plugin-polyfill-regenerator": "^0.6.1",
1703 | "core-js-compat": "^3.37.1",
1704 | "semver": "^6.3.1"
1705 | },
1706 | "engines": {
1707 | "node": ">=6.9.0"
1708 | },
1709 | "peerDependencies": {
1710 | "@babel/core": "^7.0.0-0"
1711 | }
1712 | },
1713 | "node_modules/@babel/preset-modules": {
1714 | "version": "0.1.6-no-external-plugins",
1715 | "resolved": "https://registry.npmmirror.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz",
1716 | "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==",
1717 | "dev": true,
1718 | "license": "MIT",
1719 | "dependencies": {
1720 | "@babel/helper-plugin-utils": "^7.0.0",
1721 | "@babel/types": "^7.4.4",
1722 | "esutils": "^2.0.2"
1723 | },
1724 | "peerDependencies": {
1725 | "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0"
1726 | }
1727 | },
1728 | "node_modules/@babel/regjsgen": {
1729 | "version": "0.8.0",
1730 | "resolved": "https://registry.npmmirror.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz",
1731 | "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==",
1732 | "dev": true,
1733 | "license": "MIT"
1734 | },
1735 | "node_modules/@babel/runtime": {
1736 | "version": "7.25.6",
1737 | "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.25.6.tgz",
1738 | "integrity": "sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==",
1739 | "dev": true,
1740 | "license": "MIT",
1741 | "dependencies": {
1742 | "regenerator-runtime": "^0.14.0"
1743 | },
1744 | "engines": {
1745 | "node": ">=6.9.0"
1746 | }
1747 | },
1748 | "node_modules/@babel/template": {
1749 | "version": "7.25.0",
1750 | "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.25.0.tgz",
1751 | "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==",
1752 | "dev": true,
1753 | "license": "MIT",
1754 | "dependencies": {
1755 | "@babel/code-frame": "^7.24.7",
1756 | "@babel/parser": "^7.25.0",
1757 | "@babel/types": "^7.25.0"
1758 | },
1759 | "engines": {
1760 | "node": ">=6.9.0"
1761 | }
1762 | },
1763 | "node_modules/@babel/traverse": {
1764 | "version": "7.25.6",
1765 | "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.25.6.tgz",
1766 | "integrity": "sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==",
1767 | "dev": true,
1768 | "license": "MIT",
1769 | "dependencies": {
1770 | "@babel/code-frame": "^7.24.7",
1771 | "@babel/generator": "^7.25.6",
1772 | "@babel/parser": "^7.25.6",
1773 | "@babel/template": "^7.25.0",
1774 | "@babel/types": "^7.25.6",
1775 | "debug": "^4.3.1",
1776 | "globals": "^11.1.0"
1777 | },
1778 | "engines": {
1779 | "node": ">=6.9.0"
1780 | }
1781 | },
1782 | "node_modules/@babel/types": {
1783 | "version": "7.25.6",
1784 | "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.25.6.tgz",
1785 | "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==",
1786 | "dev": true,
1787 | "license": "MIT",
1788 | "dependencies": {
1789 | "@babel/helper-string-parser": "^7.24.8",
1790 | "@babel/helper-validator-identifier": "^7.24.7",
1791 | "to-fast-properties": "^2.0.0"
1792 | },
1793 | "engines": {
1794 | "node": ">=6.9.0"
1795 | }
1796 | },
1797 | "node_modules/@esbuild/aix-ppc64": {
1798 | "version": "0.24.0",
1799 | "resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz",
1800 | "integrity": "sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==",
1801 | "cpu": [
1802 | "ppc64"
1803 | ],
1804 | "dev": true,
1805 | "license": "MIT",
1806 | "optional": true,
1807 | "os": [
1808 | "aix"
1809 | ],
1810 | "peer": true,
1811 | "engines": {
1812 | "node": ">=18"
1813 | }
1814 | },
1815 | "node_modules/@esbuild/android-arm": {
1816 | "version": "0.24.0",
1817 | "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.24.0.tgz",
1818 | "integrity": "sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==",
1819 | "cpu": [
1820 | "arm"
1821 | ],
1822 | "dev": true,
1823 | "license": "MIT",
1824 | "optional": true,
1825 | "os": [
1826 | "android"
1827 | ],
1828 | "peer": true,
1829 | "engines": {
1830 | "node": ">=18"
1831 | }
1832 | },
1833 | "node_modules/@esbuild/android-arm64": {
1834 | "version": "0.24.0",
1835 | "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz",
1836 | "integrity": "sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==",
1837 | "cpu": [
1838 | "arm64"
1839 | ],
1840 | "dev": true,
1841 | "license": "MIT",
1842 | "optional": true,
1843 | "os": [
1844 | "android"
1845 | ],
1846 | "peer": true,
1847 | "engines": {
1848 | "node": ">=18"
1849 | }
1850 | },
1851 | "node_modules/@esbuild/android-x64": {
1852 | "version": "0.24.0",
1853 | "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.24.0.tgz",
1854 | "integrity": "sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==",
1855 | "cpu": [
1856 | "x64"
1857 | ],
1858 | "dev": true,
1859 | "license": "MIT",
1860 | "optional": true,
1861 | "os": [
1862 | "android"
1863 | ],
1864 | "peer": true,
1865 | "engines": {
1866 | "node": ">=18"
1867 | }
1868 | },
1869 | "node_modules/@esbuild/darwin-arm64": {
1870 | "version": "0.24.0",
1871 | "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz",
1872 | "integrity": "sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==",
1873 | "cpu": [
1874 | "arm64"
1875 | ],
1876 | "dev": true,
1877 | "license": "MIT",
1878 | "optional": true,
1879 | "os": [
1880 | "darwin"
1881 | ],
1882 | "peer": true,
1883 | "engines": {
1884 | "node": ">=18"
1885 | }
1886 | },
1887 | "node_modules/@esbuild/darwin-x64": {
1888 | "version": "0.24.0",
1889 | "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz",
1890 | "integrity": "sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==",
1891 | "cpu": [
1892 | "x64"
1893 | ],
1894 | "dev": true,
1895 | "license": "MIT",
1896 | "optional": true,
1897 | "os": [
1898 | "darwin"
1899 | ],
1900 | "peer": true,
1901 | "engines": {
1902 | "node": ">=18"
1903 | }
1904 | },
1905 | "node_modules/@esbuild/freebsd-arm64": {
1906 | "version": "0.24.0",
1907 | "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz",
1908 | "integrity": "sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==",
1909 | "cpu": [
1910 | "arm64"
1911 | ],
1912 | "dev": true,
1913 | "license": "MIT",
1914 | "optional": true,
1915 | "os": [
1916 | "freebsd"
1917 | ],
1918 | "peer": true,
1919 | "engines": {
1920 | "node": ">=18"
1921 | }
1922 | },
1923 | "node_modules/@esbuild/freebsd-x64": {
1924 | "version": "0.24.0",
1925 | "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz",
1926 | "integrity": "sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==",
1927 | "cpu": [
1928 | "x64"
1929 | ],
1930 | "dev": true,
1931 | "license": "MIT",
1932 | "optional": true,
1933 | "os": [
1934 | "freebsd"
1935 | ],
1936 | "peer": true,
1937 | "engines": {
1938 | "node": ">=18"
1939 | }
1940 | },
1941 | "node_modules/@esbuild/linux-arm": {
1942 | "version": "0.24.0",
1943 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz",
1944 | "integrity": "sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==",
1945 | "cpu": [
1946 | "arm"
1947 | ],
1948 | "dev": true,
1949 | "license": "MIT",
1950 | "optional": true,
1951 | "os": [
1952 | "linux"
1953 | ],
1954 | "peer": true,
1955 | "engines": {
1956 | "node": ">=18"
1957 | }
1958 | },
1959 | "node_modules/@esbuild/linux-arm64": {
1960 | "version": "0.24.0",
1961 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz",
1962 | "integrity": "sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==",
1963 | "cpu": [
1964 | "arm64"
1965 | ],
1966 | "dev": true,
1967 | "license": "MIT",
1968 | "optional": true,
1969 | "os": [
1970 | "linux"
1971 | ],
1972 | "peer": true,
1973 | "engines": {
1974 | "node": ">=18"
1975 | }
1976 | },
1977 | "node_modules/@esbuild/linux-ia32": {
1978 | "version": "0.24.0",
1979 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz",
1980 | "integrity": "sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==",
1981 | "cpu": [
1982 | "ia32"
1983 | ],
1984 | "dev": true,
1985 | "license": "MIT",
1986 | "optional": true,
1987 | "os": [
1988 | "linux"
1989 | ],
1990 | "peer": true,
1991 | "engines": {
1992 | "node": ">=18"
1993 | }
1994 | },
1995 | "node_modules/@esbuild/linux-loong64": {
1996 | "version": "0.24.0",
1997 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz",
1998 | "integrity": "sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==",
1999 | "cpu": [
2000 | "loong64"
2001 | ],
2002 | "dev": true,
2003 | "license": "MIT",
2004 | "optional": true,
2005 | "os": [
2006 | "linux"
2007 | ],
2008 | "peer": true,
2009 | "engines": {
2010 | "node": ">=18"
2011 | }
2012 | },
2013 | "node_modules/@esbuild/linux-mips64el": {
2014 | "version": "0.24.0",
2015 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz",
2016 | "integrity": "sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==",
2017 | "cpu": [
2018 | "mips64el"
2019 | ],
2020 | "dev": true,
2021 | "license": "MIT",
2022 | "optional": true,
2023 | "os": [
2024 | "linux"
2025 | ],
2026 | "peer": true,
2027 | "engines": {
2028 | "node": ">=18"
2029 | }
2030 | },
2031 | "node_modules/@esbuild/linux-ppc64": {
2032 | "version": "0.24.0",
2033 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz",
2034 | "integrity": "sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==",
2035 | "cpu": [
2036 | "ppc64"
2037 | ],
2038 | "dev": true,
2039 | "license": "MIT",
2040 | "optional": true,
2041 | "os": [
2042 | "linux"
2043 | ],
2044 | "peer": true,
2045 | "engines": {
2046 | "node": ">=18"
2047 | }
2048 | },
2049 | "node_modules/@esbuild/linux-riscv64": {
2050 | "version": "0.24.0",
2051 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz",
2052 | "integrity": "sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==",
2053 | "cpu": [
2054 | "riscv64"
2055 | ],
2056 | "dev": true,
2057 | "license": "MIT",
2058 | "optional": true,
2059 | "os": [
2060 | "linux"
2061 | ],
2062 | "peer": true,
2063 | "engines": {
2064 | "node": ">=18"
2065 | }
2066 | },
2067 | "node_modules/@esbuild/linux-s390x": {
2068 | "version": "0.24.0",
2069 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz",
2070 | "integrity": "sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==",
2071 | "cpu": [
2072 | "s390x"
2073 | ],
2074 | "dev": true,
2075 | "license": "MIT",
2076 | "optional": true,
2077 | "os": [
2078 | "linux"
2079 | ],
2080 | "peer": true,
2081 | "engines": {
2082 | "node": ">=18"
2083 | }
2084 | },
2085 | "node_modules/@esbuild/linux-x64": {
2086 | "version": "0.24.0",
2087 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz",
2088 | "integrity": "sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==",
2089 | "cpu": [
2090 | "x64"
2091 | ],
2092 | "dev": true,
2093 | "license": "MIT",
2094 | "optional": true,
2095 | "os": [
2096 | "linux"
2097 | ],
2098 | "peer": true,
2099 | "engines": {
2100 | "node": ">=18"
2101 | }
2102 | },
2103 | "node_modules/@esbuild/netbsd-x64": {
2104 | "version": "0.24.0",
2105 | "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz",
2106 | "integrity": "sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==",
2107 | "cpu": [
2108 | "x64"
2109 | ],
2110 | "dev": true,
2111 | "license": "MIT",
2112 | "optional": true,
2113 | "os": [
2114 | "netbsd"
2115 | ],
2116 | "peer": true,
2117 | "engines": {
2118 | "node": ">=18"
2119 | }
2120 | },
2121 | "node_modules/@esbuild/openbsd-arm64": {
2122 | "version": "0.24.0",
2123 | "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz",
2124 | "integrity": "sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==",
2125 | "cpu": [
2126 | "arm64"
2127 | ],
2128 | "dev": true,
2129 | "license": "MIT",
2130 | "optional": true,
2131 | "os": [
2132 | "openbsd"
2133 | ],
2134 | "peer": true,
2135 | "engines": {
2136 | "node": ">=18"
2137 | }
2138 | },
2139 | "node_modules/@esbuild/openbsd-x64": {
2140 | "version": "0.24.0",
2141 | "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz",
2142 | "integrity": "sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==",
2143 | "cpu": [
2144 | "x64"
2145 | ],
2146 | "dev": true,
2147 | "license": "MIT",
2148 | "optional": true,
2149 | "os": [
2150 | "openbsd"
2151 | ],
2152 | "peer": true,
2153 | "engines": {
2154 | "node": ">=18"
2155 | }
2156 | },
2157 | "node_modules/@esbuild/sunos-x64": {
2158 | "version": "0.24.0",
2159 | "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz",
2160 | "integrity": "sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==",
2161 | "cpu": [
2162 | "x64"
2163 | ],
2164 | "dev": true,
2165 | "license": "MIT",
2166 | "optional": true,
2167 | "os": [
2168 | "sunos"
2169 | ],
2170 | "peer": true,
2171 | "engines": {
2172 | "node": ">=18"
2173 | }
2174 | },
2175 | "node_modules/@esbuild/win32-arm64": {
2176 | "version": "0.24.0",
2177 | "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz",
2178 | "integrity": "sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==",
2179 | "cpu": [
2180 | "arm64"
2181 | ],
2182 | "dev": true,
2183 | "license": "MIT",
2184 | "optional": true,
2185 | "os": [
2186 | "win32"
2187 | ],
2188 | "peer": true,
2189 | "engines": {
2190 | "node": ">=18"
2191 | }
2192 | },
2193 | "node_modules/@esbuild/win32-ia32": {
2194 | "version": "0.24.0",
2195 | "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz",
2196 | "integrity": "sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==",
2197 | "cpu": [
2198 | "ia32"
2199 | ],
2200 | "dev": true,
2201 | "license": "MIT",
2202 | "optional": true,
2203 | "os": [
2204 | "win32"
2205 | ],
2206 | "peer": true,
2207 | "engines": {
2208 | "node": ">=18"
2209 | }
2210 | },
2211 | "node_modules/@esbuild/win32-x64": {
2212 | "version": "0.24.0",
2213 | "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz",
2214 | "integrity": "sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==",
2215 | "cpu": [
2216 | "x64"
2217 | ],
2218 | "dev": true,
2219 | "license": "MIT",
2220 | "optional": true,
2221 | "os": [
2222 | "win32"
2223 | ],
2224 | "peer": true,
2225 | "engines": {
2226 | "node": ">=18"
2227 | }
2228 | },
2229 | "node_modules/@jridgewell/gen-mapping": {
2230 | "version": "0.3.5",
2231 | "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
2232 | "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
2233 | "dev": true,
2234 | "license": "MIT",
2235 | "dependencies": {
2236 | "@jridgewell/set-array": "^1.2.1",
2237 | "@jridgewell/sourcemap-codec": "^1.4.10",
2238 | "@jridgewell/trace-mapping": "^0.3.24"
2239 | },
2240 | "engines": {
2241 | "node": ">=6.0.0"
2242 | }
2243 | },
2244 | "node_modules/@jridgewell/resolve-uri": {
2245 | "version": "3.1.2",
2246 | "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
2247 | "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
2248 | "dev": true,
2249 | "license": "MIT",
2250 | "engines": {
2251 | "node": ">=6.0.0"
2252 | }
2253 | },
2254 | "node_modules/@jridgewell/set-array": {
2255 | "version": "1.2.1",
2256 | "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.2.1.tgz",
2257 | "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
2258 | "dev": true,
2259 | "license": "MIT",
2260 | "engines": {
2261 | "node": ">=6.0.0"
2262 | }
2263 | },
2264 | "node_modules/@jridgewell/sourcemap-codec": {
2265 | "version": "1.5.0",
2266 | "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
2267 | "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
2268 | "dev": true,
2269 | "license": "MIT"
2270 | },
2271 | "node_modules/@jridgewell/trace-mapping": {
2272 | "version": "0.3.25",
2273 | "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
2274 | "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
2275 | "dev": true,
2276 | "license": "MIT",
2277 | "dependencies": {
2278 | "@jridgewell/resolve-uri": "^3.1.0",
2279 | "@jridgewell/sourcemap-codec": "^1.4.14"
2280 | }
2281 | },
2282 | "node_modules/@rollup/pluginutils": {
2283 | "version": "5.1.2",
2284 | "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.1.2.tgz",
2285 | "integrity": "sha512-/FIdS3PyZ39bjZlwqFnWqCOVnW7o963LtKMwQOD0NhQqw22gSr2YY1afu3FxRip4ZCZNsD5jq6Aaz6QV3D/Njw==",
2286 | "dev": true,
2287 | "license": "MIT",
2288 | "dependencies": {
2289 | "@types/estree": "^1.0.0",
2290 | "estree-walker": "^2.0.2",
2291 | "picomatch": "^2.3.1"
2292 | },
2293 | "engines": {
2294 | "node": ">=14.0.0"
2295 | },
2296 | "peerDependencies": {
2297 | "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
2298 | },
2299 | "peerDependenciesMeta": {
2300 | "rollup": {
2301 | "optional": true
2302 | }
2303 | }
2304 | },
2305 | "node_modules/@types/estree": {
2306 | "version": "1.0.6",
2307 | "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.6.tgz",
2308 | "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
2309 | "dev": true,
2310 | "license": "MIT"
2311 | },
2312 | "node_modules/ansi-styles": {
2313 | "version": "3.2.1",
2314 | "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz",
2315 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
2316 | "dev": true,
2317 | "license": "MIT",
2318 | "dependencies": {
2319 | "color-convert": "^1.9.0"
2320 | },
2321 | "engines": {
2322 | "node": ">=4"
2323 | }
2324 | },
2325 | "node_modules/babel-plugin-polyfill-corejs2": {
2326 | "version": "0.4.11",
2327 | "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz",
2328 | "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==",
2329 | "dev": true,
2330 | "license": "MIT",
2331 | "dependencies": {
2332 | "@babel/compat-data": "^7.22.6",
2333 | "@babel/helper-define-polyfill-provider": "^0.6.2",
2334 | "semver": "^6.3.1"
2335 | },
2336 | "peerDependencies": {
2337 | "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
2338 | }
2339 | },
2340 | "node_modules/babel-plugin-polyfill-corejs3": {
2341 | "version": "0.10.6",
2342 | "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz",
2343 | "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==",
2344 | "dev": true,
2345 | "license": "MIT",
2346 | "dependencies": {
2347 | "@babel/helper-define-polyfill-provider": "^0.6.2",
2348 | "core-js-compat": "^3.38.0"
2349 | },
2350 | "peerDependencies": {
2351 | "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
2352 | }
2353 | },
2354 | "node_modules/babel-plugin-polyfill-regenerator": {
2355 | "version": "0.6.2",
2356 | "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz",
2357 | "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==",
2358 | "dev": true,
2359 | "license": "MIT",
2360 | "dependencies": {
2361 | "@babel/helper-define-polyfill-provider": "^0.6.2"
2362 | },
2363 | "peerDependencies": {
2364 | "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
2365 | }
2366 | },
2367 | "node_modules/browserslist": {
2368 | "version": "4.24.0",
2369 | "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.24.0.tgz",
2370 | "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==",
2371 | "dev": true,
2372 | "funding": [
2373 | {
2374 | "type": "opencollective",
2375 | "url": "https://opencollective.com/browserslist"
2376 | },
2377 | {
2378 | "type": "tidelift",
2379 | "url": "https://tidelift.com/funding/github/npm/browserslist"
2380 | },
2381 | {
2382 | "type": "github",
2383 | "url": "https://github.com/sponsors/ai"
2384 | }
2385 | ],
2386 | "license": "MIT",
2387 | "dependencies": {
2388 | "caniuse-lite": "^1.0.30001663",
2389 | "electron-to-chromium": "^1.5.28",
2390 | "node-releases": "^2.0.18",
2391 | "update-browserslist-db": "^1.1.0"
2392 | },
2393 | "bin": {
2394 | "browserslist": "cli.js"
2395 | },
2396 | "engines": {
2397 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
2398 | }
2399 | },
2400 | "node_modules/caniuse-lite": {
2401 | "version": "1.0.30001664",
2402 | "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001664.tgz",
2403 | "integrity": "sha512-AmE7k4dXiNKQipgn7a2xg558IRqPN3jMQY/rOsbxDhrd0tyChwbITBfiwtnqz8bi2M5mIWbxAYBvk7W7QBUS2g==",
2404 | "dev": true,
2405 | "funding": [
2406 | {
2407 | "type": "opencollective",
2408 | "url": "https://opencollective.com/browserslist"
2409 | },
2410 | {
2411 | "type": "tidelift",
2412 | "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
2413 | },
2414 | {
2415 | "type": "github",
2416 | "url": "https://github.com/sponsors/ai"
2417 | }
2418 | ],
2419 | "license": "CC-BY-4.0"
2420 | },
2421 | "node_modules/chalk": {
2422 | "version": "2.4.2",
2423 | "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz",
2424 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
2425 | "dev": true,
2426 | "license": "MIT",
2427 | "dependencies": {
2428 | "ansi-styles": "^3.2.1",
2429 | "escape-string-regexp": "^1.0.5",
2430 | "supports-color": "^5.3.0"
2431 | },
2432 | "engines": {
2433 | "node": ">=4"
2434 | }
2435 | },
2436 | "node_modules/color-convert": {
2437 | "version": "1.9.3",
2438 | "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz",
2439 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
2440 | "dev": true,
2441 | "license": "MIT",
2442 | "dependencies": {
2443 | "color-name": "1.1.3"
2444 | }
2445 | },
2446 | "node_modules/color-name": {
2447 | "version": "1.1.3",
2448 | "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz",
2449 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
2450 | "dev": true,
2451 | "license": "MIT"
2452 | },
2453 | "node_modules/convert-source-map": {
2454 | "version": "2.0.0",
2455 | "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz",
2456 | "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
2457 | "dev": true,
2458 | "license": "MIT"
2459 | },
2460 | "node_modules/core-js-compat": {
2461 | "version": "3.38.1",
2462 | "resolved": "https://registry.npmmirror.com/core-js-compat/-/core-js-compat-3.38.1.tgz",
2463 | "integrity": "sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==",
2464 | "dev": true,
2465 | "license": "MIT",
2466 | "dependencies": {
2467 | "browserslist": "^4.23.3"
2468 | },
2469 | "funding": {
2470 | "type": "opencollective",
2471 | "url": "https://opencollective.com/core-js"
2472 | }
2473 | },
2474 | "node_modules/cross-fetch": {
2475 | "version": "4.0.0",
2476 | "resolved": "https://registry.npmmirror.com/cross-fetch/-/cross-fetch-4.0.0.tgz",
2477 | "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==",
2478 | "license": "MIT",
2479 | "dependencies": {
2480 | "node-fetch": "^2.6.12"
2481 | }
2482 | },
2483 | "node_modules/debug": {
2484 | "version": "4.3.7",
2485 | "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.7.tgz",
2486 | "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
2487 | "dev": true,
2488 | "license": "MIT",
2489 | "dependencies": {
2490 | "ms": "^2.1.3"
2491 | },
2492 | "engines": {
2493 | "node": ">=6.0"
2494 | },
2495 | "peerDependenciesMeta": {
2496 | "supports-color": {
2497 | "optional": true
2498 | }
2499 | }
2500 | },
2501 | "node_modules/electron-to-chromium": {
2502 | "version": "1.5.29",
2503 | "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.29.tgz",
2504 | "integrity": "sha512-PF8n2AlIhCKXQ+gTpiJi0VhcHDb69kYX4MtCiivctc2QD3XuNZ/XIOlbGzt7WAjjEev0TtaH6Cu3arZExm5DOw==",
2505 | "dev": true,
2506 | "license": "ISC"
2507 | },
2508 | "node_modules/es-module-lexer": {
2509 | "version": "1.5.4",
2510 | "resolved": "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-1.5.4.tgz",
2511 | "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==",
2512 | "dev": true,
2513 | "license": "MIT"
2514 | },
2515 | "node_modules/esbuild": {
2516 | "version": "0.24.0",
2517 | "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.24.0.tgz",
2518 | "integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==",
2519 | "dev": true,
2520 | "hasInstallScript": true,
2521 | "license": "MIT",
2522 | "peer": true,
2523 | "bin": {
2524 | "esbuild": "bin/esbuild"
2525 | },
2526 | "engines": {
2527 | "node": ">=18"
2528 | },
2529 | "optionalDependencies": {
2530 | "@esbuild/aix-ppc64": "0.24.0",
2531 | "@esbuild/android-arm": "0.24.0",
2532 | "@esbuild/android-arm64": "0.24.0",
2533 | "@esbuild/android-x64": "0.24.0",
2534 | "@esbuild/darwin-arm64": "0.24.0",
2535 | "@esbuild/darwin-x64": "0.24.0",
2536 | "@esbuild/freebsd-arm64": "0.24.0",
2537 | "@esbuild/freebsd-x64": "0.24.0",
2538 | "@esbuild/linux-arm": "0.24.0",
2539 | "@esbuild/linux-arm64": "0.24.0",
2540 | "@esbuild/linux-ia32": "0.24.0",
2541 | "@esbuild/linux-loong64": "0.24.0",
2542 | "@esbuild/linux-mips64el": "0.24.0",
2543 | "@esbuild/linux-ppc64": "0.24.0",
2544 | "@esbuild/linux-riscv64": "0.24.0",
2545 | "@esbuild/linux-s390x": "0.24.0",
2546 | "@esbuild/linux-x64": "0.24.0",
2547 | "@esbuild/netbsd-x64": "0.24.0",
2548 | "@esbuild/openbsd-arm64": "0.24.0",
2549 | "@esbuild/openbsd-x64": "0.24.0",
2550 | "@esbuild/sunos-x64": "0.24.0",
2551 | "@esbuild/win32-arm64": "0.24.0",
2552 | "@esbuild/win32-ia32": "0.24.0",
2553 | "@esbuild/win32-x64": "0.24.0"
2554 | }
2555 | },
2556 | "node_modules/escalade": {
2557 | "version": "3.2.0",
2558 | "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.2.0.tgz",
2559 | "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
2560 | "dev": true,
2561 | "license": "MIT",
2562 | "engines": {
2563 | "node": ">=6"
2564 | }
2565 | },
2566 | "node_modules/escape-string-regexp": {
2567 | "version": "1.0.5",
2568 | "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
2569 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
2570 | "dev": true,
2571 | "license": "MIT",
2572 | "engines": {
2573 | "node": ">=0.8.0"
2574 | }
2575 | },
2576 | "node_modules/estree-walker": {
2577 | "version": "2.0.2",
2578 | "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz",
2579 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
2580 | "dev": true,
2581 | "license": "MIT"
2582 | },
2583 | "node_modules/esutils": {
2584 | "version": "2.0.3",
2585 | "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz",
2586 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
2587 | "dev": true,
2588 | "license": "BSD-2-Clause",
2589 | "engines": {
2590 | "node": ">=0.10.0"
2591 | }
2592 | },
2593 | "node_modules/fsevents": {
2594 | "version": "2.3.3",
2595 | "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz",
2596 | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
2597 | "dev": true,
2598 | "hasInstallScript": true,
2599 | "license": "MIT",
2600 | "optional": true,
2601 | "os": [
2602 | "darwin"
2603 | ],
2604 | "engines": {
2605 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
2606 | }
2607 | },
2608 | "node_modules/function-bind": {
2609 | "version": "1.1.2",
2610 | "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz",
2611 | "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
2612 | "dev": true,
2613 | "license": "MIT",
2614 | "funding": {
2615 | "url": "https://github.com/sponsors/ljharb"
2616 | }
2617 | },
2618 | "node_modules/gensync": {
2619 | "version": "1.0.0-beta.2",
2620 | "resolved": "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz",
2621 | "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
2622 | "dev": true,
2623 | "license": "MIT",
2624 | "engines": {
2625 | "node": ">=6.9.0"
2626 | }
2627 | },
2628 | "node_modules/get-tsconfig": {
2629 | "version": "4.8.1",
2630 | "resolved": "https://registry.npmmirror.com/get-tsconfig/-/get-tsconfig-4.8.1.tgz",
2631 | "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==",
2632 | "dev": true,
2633 | "license": "MIT",
2634 | "dependencies": {
2635 | "resolve-pkg-maps": "^1.0.0"
2636 | },
2637 | "funding": {
2638 | "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
2639 | }
2640 | },
2641 | "node_modules/globals": {
2642 | "version": "11.12.0",
2643 | "resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz",
2644 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
2645 | "dev": true,
2646 | "license": "MIT",
2647 | "engines": {
2648 | "node": ">=4"
2649 | }
2650 | },
2651 | "node_modules/has-flag": {
2652 | "version": "3.0.0",
2653 | "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz",
2654 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
2655 | "dev": true,
2656 | "license": "MIT",
2657 | "engines": {
2658 | "node": ">=4"
2659 | }
2660 | },
2661 | "node_modules/hasown": {
2662 | "version": "2.0.2",
2663 | "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz",
2664 | "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
2665 | "dev": true,
2666 | "license": "MIT",
2667 | "dependencies": {
2668 | "function-bind": "^1.1.2"
2669 | },
2670 | "engines": {
2671 | "node": ">= 0.4"
2672 | }
2673 | },
2674 | "node_modules/is-core-module": {
2675 | "version": "2.15.1",
2676 | "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.15.1.tgz",
2677 | "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==",
2678 | "dev": true,
2679 | "license": "MIT",
2680 | "dependencies": {
2681 | "hasown": "^2.0.2"
2682 | },
2683 | "engines": {
2684 | "node": ">= 0.4"
2685 | },
2686 | "funding": {
2687 | "url": "https://github.com/sponsors/ljharb"
2688 | }
2689 | },
2690 | "node_modules/js-tokens": {
2691 | "version": "4.0.0",
2692 | "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz",
2693 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
2694 | "dev": true,
2695 | "license": "MIT"
2696 | },
2697 | "node_modules/jsesc": {
2698 | "version": "2.5.2",
2699 | "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz",
2700 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
2701 | "dev": true,
2702 | "license": "MIT",
2703 | "bin": {
2704 | "jsesc": "bin/jsesc"
2705 | },
2706 | "engines": {
2707 | "node": ">=4"
2708 | }
2709 | },
2710 | "node_modules/json5": {
2711 | "version": "2.2.3",
2712 | "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz",
2713 | "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
2714 | "dev": true,
2715 | "license": "MIT",
2716 | "bin": {
2717 | "json5": "lib/cli.js"
2718 | },
2719 | "engines": {
2720 | "node": ">=6"
2721 | }
2722 | },
2723 | "node_modules/lodash.debounce": {
2724 | "version": "4.0.8",
2725 | "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
2726 | "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
2727 | "dev": true,
2728 | "license": "MIT"
2729 | },
2730 | "node_modules/lru-cache": {
2731 | "version": "5.1.1",
2732 | "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz",
2733 | "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
2734 | "dev": true,
2735 | "license": "ISC",
2736 | "dependencies": {
2737 | "yallist": "^3.0.2"
2738 | }
2739 | },
2740 | "node_modules/ms": {
2741 | "version": "2.1.3",
2742 | "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz",
2743 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
2744 | "dev": true,
2745 | "license": "MIT"
2746 | },
2747 | "node_modules/node-fetch": {
2748 | "version": "2.7.0",
2749 | "resolved": "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.7.0.tgz",
2750 | "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
2751 | "license": "MIT",
2752 | "dependencies": {
2753 | "whatwg-url": "^5.0.0"
2754 | },
2755 | "engines": {
2756 | "node": "4.x || >=6.0.0"
2757 | },
2758 | "peerDependencies": {
2759 | "encoding": "^0.1.0"
2760 | },
2761 | "peerDependenciesMeta": {
2762 | "encoding": {
2763 | "optional": true
2764 | }
2765 | }
2766 | },
2767 | "node_modules/node-releases": {
2768 | "version": "2.0.18",
2769 | "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.18.tgz",
2770 | "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==",
2771 | "dev": true,
2772 | "license": "MIT"
2773 | },
2774 | "node_modules/path-parse": {
2775 | "version": "1.0.7",
2776 | "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz",
2777 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
2778 | "dev": true,
2779 | "license": "MIT"
2780 | },
2781 | "node_modules/picocolors": {
2782 | "version": "1.1.0",
2783 | "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.0.tgz",
2784 | "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==",
2785 | "dev": true,
2786 | "license": "ISC"
2787 | },
2788 | "node_modules/picomatch": {
2789 | "version": "2.3.1",
2790 | "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz",
2791 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
2792 | "dev": true,
2793 | "license": "MIT",
2794 | "engines": {
2795 | "node": ">=8.6"
2796 | },
2797 | "funding": {
2798 | "url": "https://github.com/sponsors/jonschlinkert"
2799 | }
2800 | },
2801 | "node_modules/regenerate": {
2802 | "version": "1.4.2",
2803 | "resolved": "https://registry.npmmirror.com/regenerate/-/regenerate-1.4.2.tgz",
2804 | "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==",
2805 | "dev": true,
2806 | "license": "MIT"
2807 | },
2808 | "node_modules/regenerate-unicode-properties": {
2809 | "version": "10.2.0",
2810 | "resolved": "https://registry.npmmirror.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz",
2811 | "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==",
2812 | "dev": true,
2813 | "license": "MIT",
2814 | "dependencies": {
2815 | "regenerate": "^1.4.2"
2816 | },
2817 | "engines": {
2818 | "node": ">=4"
2819 | }
2820 | },
2821 | "node_modules/regenerator-runtime": {
2822 | "version": "0.14.1",
2823 | "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
2824 | "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==",
2825 | "dev": true,
2826 | "license": "MIT"
2827 | },
2828 | "node_modules/regenerator-transform": {
2829 | "version": "0.15.2",
2830 | "resolved": "https://registry.npmmirror.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz",
2831 | "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==",
2832 | "dev": true,
2833 | "license": "MIT",
2834 | "dependencies": {
2835 | "@babel/runtime": "^7.8.4"
2836 | }
2837 | },
2838 | "node_modules/regexpu-core": {
2839 | "version": "5.3.2",
2840 | "resolved": "https://registry.npmmirror.com/regexpu-core/-/regexpu-core-5.3.2.tgz",
2841 | "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==",
2842 | "dev": true,
2843 | "license": "MIT",
2844 | "dependencies": {
2845 | "@babel/regjsgen": "^0.8.0",
2846 | "regenerate": "^1.4.2",
2847 | "regenerate-unicode-properties": "^10.1.0",
2848 | "regjsparser": "^0.9.1",
2849 | "unicode-match-property-ecmascript": "^2.0.0",
2850 | "unicode-match-property-value-ecmascript": "^2.1.0"
2851 | },
2852 | "engines": {
2853 | "node": ">=4"
2854 | }
2855 | },
2856 | "node_modules/regjsparser": {
2857 | "version": "0.9.1",
2858 | "resolved": "https://registry.npmmirror.com/regjsparser/-/regjsparser-0.9.1.tgz",
2859 | "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==",
2860 | "dev": true,
2861 | "license": "BSD-2-Clause",
2862 | "dependencies": {
2863 | "jsesc": "~0.5.0"
2864 | },
2865 | "bin": {
2866 | "regjsparser": "bin/parser"
2867 | }
2868 | },
2869 | "node_modules/regjsparser/node_modules/jsesc": {
2870 | "version": "0.5.0",
2871 | "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-0.5.0.tgz",
2872 | "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==",
2873 | "dev": true,
2874 | "bin": {
2875 | "jsesc": "bin/jsesc"
2876 | }
2877 | },
2878 | "node_modules/resolve": {
2879 | "version": "1.22.8",
2880 | "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.8.tgz",
2881 | "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
2882 | "dev": true,
2883 | "license": "MIT",
2884 | "dependencies": {
2885 | "is-core-module": "^2.13.0",
2886 | "path-parse": "^1.0.7",
2887 | "supports-preserve-symlinks-flag": "^1.0.0"
2888 | },
2889 | "bin": {
2890 | "resolve": "bin/resolve"
2891 | },
2892 | "funding": {
2893 | "url": "https://github.com/sponsors/ljharb"
2894 | }
2895 | },
2896 | "node_modules/resolve-pkg-maps": {
2897 | "version": "1.0.0",
2898 | "resolved": "https://registry.npmmirror.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
2899 | "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
2900 | "dev": true,
2901 | "license": "MIT",
2902 | "funding": {
2903 | "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
2904 | }
2905 | },
2906 | "node_modules/rollup": {
2907 | "version": "3.29.5",
2908 | "resolved": "https://registry.npmmirror.com/rollup/-/rollup-3.29.5.tgz",
2909 | "integrity": "sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==",
2910 | "dev": true,
2911 | "license": "MIT",
2912 | "bin": {
2913 | "rollup": "dist/bin/rollup"
2914 | },
2915 | "engines": {
2916 | "node": ">=14.18.0",
2917 | "npm": ">=8.0.0"
2918 | },
2919 | "optionalDependencies": {
2920 | "fsevents": "~2.3.2"
2921 | }
2922 | },
2923 | "node_modules/rollup-plugin-esbuild": {
2924 | "version": "6.1.1",
2925 | "resolved": "https://registry.npmmirror.com/rollup-plugin-esbuild/-/rollup-plugin-esbuild-6.1.1.tgz",
2926 | "integrity": "sha512-CehMY9FAqJD5OUaE/Mi1r5z0kNeYxItmRO2zG4Qnv2qWKF09J2lTy5GUzjJR354ZPrLkCj4fiBN41lo8PzBUhw==",
2927 | "dev": true,
2928 | "license": "MIT",
2929 | "dependencies": {
2930 | "@rollup/pluginutils": "^5.0.5",
2931 | "debug": "^4.3.4",
2932 | "es-module-lexer": "^1.3.1",
2933 | "get-tsconfig": "^4.7.2"
2934 | },
2935 | "engines": {
2936 | "node": ">=14.18.0"
2937 | },
2938 | "peerDependencies": {
2939 | "esbuild": ">=0.18.0",
2940 | "rollup": "^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0"
2941 | }
2942 | },
2943 | "node_modules/semver": {
2944 | "version": "6.3.1",
2945 | "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz",
2946 | "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
2947 | "dev": true,
2948 | "license": "ISC",
2949 | "bin": {
2950 | "semver": "bin/semver.js"
2951 | }
2952 | },
2953 | "node_modules/supports-color": {
2954 | "version": "5.5.0",
2955 | "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz",
2956 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
2957 | "dev": true,
2958 | "license": "MIT",
2959 | "dependencies": {
2960 | "has-flag": "^3.0.0"
2961 | },
2962 | "engines": {
2963 | "node": ">=4"
2964 | }
2965 | },
2966 | "node_modules/supports-preserve-symlinks-flag": {
2967 | "version": "1.0.0",
2968 | "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
2969 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
2970 | "dev": true,
2971 | "license": "MIT",
2972 | "engines": {
2973 | "node": ">= 0.4"
2974 | },
2975 | "funding": {
2976 | "url": "https://github.com/sponsors/ljharb"
2977 | }
2978 | },
2979 | "node_modules/to-fast-properties": {
2980 | "version": "2.0.0",
2981 | "resolved": "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
2982 | "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
2983 | "dev": true,
2984 | "license": "MIT",
2985 | "engines": {
2986 | "node": ">=4"
2987 | }
2988 | },
2989 | "node_modules/tr46": {
2990 | "version": "0.0.3",
2991 | "resolved": "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz",
2992 | "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
2993 | "license": "MIT"
2994 | },
2995 | "node_modules/unicode-canonical-property-names-ecmascript": {
2996 | "version": "2.0.1",
2997 | "resolved": "https://registry.npmmirror.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz",
2998 | "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==",
2999 | "dev": true,
3000 | "license": "MIT",
3001 | "engines": {
3002 | "node": ">=4"
3003 | }
3004 | },
3005 | "node_modules/unicode-match-property-ecmascript": {
3006 | "version": "2.0.0",
3007 | "resolved": "https://registry.npmmirror.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz",
3008 | "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==",
3009 | "dev": true,
3010 | "license": "MIT",
3011 | "dependencies": {
3012 | "unicode-canonical-property-names-ecmascript": "^2.0.0",
3013 | "unicode-property-aliases-ecmascript": "^2.0.0"
3014 | },
3015 | "engines": {
3016 | "node": ">=4"
3017 | }
3018 | },
3019 | "node_modules/unicode-match-property-value-ecmascript": {
3020 | "version": "2.2.0",
3021 | "resolved": "https://registry.npmmirror.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz",
3022 | "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==",
3023 | "dev": true,
3024 | "license": "MIT",
3025 | "engines": {
3026 | "node": ">=4"
3027 | }
3028 | },
3029 | "node_modules/unicode-property-aliases-ecmascript": {
3030 | "version": "2.1.0",
3031 | "resolved": "https://registry.npmmirror.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz",
3032 | "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==",
3033 | "dev": true,
3034 | "license": "MIT",
3035 | "engines": {
3036 | "node": ">=4"
3037 | }
3038 | },
3039 | "node_modules/update-browserslist-db": {
3040 | "version": "1.1.1",
3041 | "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz",
3042 | "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==",
3043 | "dev": true,
3044 | "funding": [
3045 | {
3046 | "type": "opencollective",
3047 | "url": "https://opencollective.com/browserslist"
3048 | },
3049 | {
3050 | "type": "tidelift",
3051 | "url": "https://tidelift.com/funding/github/npm/browserslist"
3052 | },
3053 | {
3054 | "type": "github",
3055 | "url": "https://github.com/sponsors/ai"
3056 | }
3057 | ],
3058 | "license": "MIT",
3059 | "dependencies": {
3060 | "escalade": "^3.2.0",
3061 | "picocolors": "^1.1.0"
3062 | },
3063 | "bin": {
3064 | "update-browserslist-db": "cli.js"
3065 | },
3066 | "peerDependencies": {
3067 | "browserslist": ">= 4.21.0"
3068 | }
3069 | },
3070 | "node_modules/webidl-conversions": {
3071 | "version": "3.0.1",
3072 | "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
3073 | "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
3074 | "license": "BSD-2-Clause"
3075 | },
3076 | "node_modules/whatwg-url": {
3077 | "version": "5.0.0",
3078 | "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-5.0.0.tgz",
3079 | "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
3080 | "license": "MIT",
3081 | "dependencies": {
3082 | "tr46": "~0.0.3",
3083 | "webidl-conversions": "^3.0.0"
3084 | }
3085 | },
3086 | "node_modules/yallist": {
3087 | "version": "3.1.1",
3088 | "resolved": "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz",
3089 | "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
3090 | "dev": true,
3091 | "license": "ISC"
3092 | }
3093 | }
3094 | }
3095 |
--------------------------------------------------------------------------------
/npm/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "serverchan-sdk",
3 | "version": "1.0.6",
4 | "main": "dist/index.cjs",
5 | "module": "dist/index.mjs",
6 | "types": "./dist/index.d.ts",
7 | "exports": {
8 | "require": "./dist/index.cjs",
9 | "import": "./dist/index.mjs",
10 | "types": "./dist/index.d.ts"
11 | },
12 | "type": "module",
13 | "scripts": {
14 | "build": "cp src/index.d.ts dist/ && rollup -c"
15 | },
16 | "devDependencies": {
17 | "@babel/core": "^7.0.0",
18 | "@babel/preset-env": "^7.0.0",
19 | "rollup": "^3.29.5",
20 | "rollup-plugin-esbuild": "^6.1.1"
21 | },
22 | "dependencies": {
23 | "cross-fetch": "^4.0.0"
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/npm/publish.sh:
--------------------------------------------------------------------------------
1 | npm run build && npm publish --registry=https://registry.npmjs.org/
--------------------------------------------------------------------------------
/npm/rollup.config.js:
--------------------------------------------------------------------------------
1 | import esbuild from 'rollup-plugin-esbuild';
2 |
3 | export default {
4 | input: 'src/index.js',
5 | output: [
6 | {
7 | file: 'dist/index.cjs',
8 | format: 'cjs'
9 | },
10 | {
11 | file: 'dist/index.mjs',
12 | format: 'esm'
13 | }
14 | ],
15 | external: ['cross-fetch'],
16 | plugins: [
17 | esbuild({
18 | minify: true, // 开启压缩
19 | target: 'esnext' // 目标 ES 版本
20 | })
21 | ]
22 | };
23 |
--------------------------------------------------------------------------------
/npm/src/index.d.ts:
--------------------------------------------------------------------------------
1 | // index.d.ts
2 |
3 | /**
4 | * ScSendOptions 定义了推送函数的可选参数
5 | */
6 | export interface ScSendOptions {
7 | /** sctp 专用:标签列表,多个标签使用竖线分隔 */
8 | tags?: string;
9 | /** sctp 和非 sctp:消息卡片的简短描述 */
10 | short?: string;
11 | /** 非 sctp:是否隐藏调用IP,1为隐藏 */
12 | noip?: 1;
13 | /** 非 sctp:推送使用的消息通道,多个通道值用竖线隔开 */
14 | channel?: string;
15 | /** 非 sctp:消息抄送的 openid,多个 openid 用逗号或竖线分隔 */
16 | openid?: string;
17 | }
18 |
19 | /**
20 | * ScSendResponse 定义了推送函数返回的响应结果
21 | */
22 | export interface ScSendResponse {
23 | /** 返回的状态码 */
24 | code: number;
25 | /** 返回的消息 */
26 | message: string;
27 | /** 可选的返回数据 */
28 | data?: any;
29 | }
30 |
31 | /**
32 | * 调用 Server 酱的推送函数
33 | * @param sendkey Server 酱的 SendKey
34 | * @param title 推送的标题
35 | * @param desp 推送的正文内容,默认为空字符串
36 | * @param options 推送的额外选项
37 | * @returns 返回推送结果的 Promise
38 | */
39 | export function scSend(
40 | sendkey: string,
41 | title: string,
42 | desp?: string,
43 | options?: ScSendOptions
44 | ): Promise;
45 |
--------------------------------------------------------------------------------
/npm/src/index.js:
--------------------------------------------------------------------------------
1 | import fetch from 'cross-fetch';
2 |
3 | // 调用 Server 酱的推送函数
4 | export async function scSend(sendkey, title, desp = '', options = {}) {
5 |
6 | const url = String(sendkey).startsWith('sctp')
7 | ? `https://${sendkey.match(/^sctp(\d+)t/)[1]}.push.ft07.com/send/${sendkey}.send`
8 | : `https://sctapi.ftqq.com/${sendkey}.send`;
9 |
10 | const params = {
11 | title,
12 | desp,
13 | ...options,
14 | };
15 |
16 | const response = await fetch(url, {
17 | method: 'POST',
18 | headers: {
19 | 'Content-Type': 'application/json;charset=utf-8',
20 | },
21 | body: JSON.stringify(params),
22 | });
23 |
24 | const result = await response.json();
25 | return result;
26 | }
27 |
--------------------------------------------------------------------------------
/npm/test/test.cjs:
--------------------------------------------------------------------------------
1 | // cjsTest.js
2 |
3 | const { scSend } = require('../src/index.js'); // 请根据实际模块路径替换
4 |
5 | (async () => {
6 | try {
7 | const sendkey = '...'; // 替换成真实的 Server 酱 sendkey
8 | const title = 'Test Notification';
9 | const desp = 'This is a test message';
10 |
11 | const response = await scSend(sendkey, title, desp, { noip: 1 });
12 | console.log('Response:', response);
13 | } catch (error) {
14 | console.error('Error:', error);
15 | }
16 | })();
17 |
--------------------------------------------------------------------------------
/npm/test/test.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | NPM包测试
7 |
8 |
9 | 测试 scSend 函数
10 |
22 |
23 | 响应结果:
24 |
25 |
26 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/npm/test/test.mjs:
--------------------------------------------------------------------------------
1 | import { scSend } from '../src/index.js'; // 请根据实际模块路径替换
2 |
3 | (async () => {
4 | try {
5 | const sendkey = '...'; // 替换成真实的 Server 酱 sendkey
6 | const title = 'Test Notification';
7 | const desp = 'This is a test message';
8 |
9 | const response = await scSend(sendkey, title, desp, { noip: 1 });
10 | console.log('Response:', response);
11 | } catch (error) {
12 | console.error('Error:', error);
13 | }
14 | })();
15 |
--------------------------------------------------------------------------------
/pip/README.md:
--------------------------------------------------------------------------------
1 | # ServerChan-SDK
2 |
3 | `serverchan-sdk` 是一个用于通过 ServerChan (方糖) 推送消息的 Python SDK。该 SDK 提供了简洁的 API,使开发者能够轻松地通过 ServerChan 向微信发送消息通知。
4 |
5 | ## 安装
6 |
7 | 使用 `pip` 进行安装:
8 |
9 | ```bash
10 | pip install serverchan-sdk
11 | ```
12 |
13 | ## 使用方法
14 |
15 | ### 导入库并发送消息
16 |
17 | 首先导入 `serverchan-sdk` 并调用 `sc_send` 函数发送消息。
18 |
19 | ```python
20 | from serverchan_sdk import sc_send
21 |
22 | # 发送消息
23 | sendkey = "your_sendkey"
24 | title = "测试标题"
25 | desp = "这是消息内容"
26 | options = {"template": "markdown"} # 可选参数
27 |
28 | response = sc_send(sendkey, title, desp, options)
29 |
30 | # 输出响应
31 | print(response)
32 | ```
33 |
34 | ### 参数说明
35 |
36 | - `sendkey`: 必填,您的 ServerChan SendKey。SendKey 是方糖推送消息的唯一标识,可以从方糖的管理后台获取。
37 | - `title`: 必填,消息的标题。
38 | - `desp`: 可选,消息的具体内容,默认为空字符串。
39 | - `options`: 可选,字典类型,用于传递额外的参数,比如消息模板、提醒选项等。默认为 `None`。
40 |
41 | ### 选项说明
42 | `options` 字典中可以包括的选项,例如:
43 |
44 | - `template`: 用于定义消息格式。可以选择 `"html"`, `"markdown"` 等。
45 | - 其他 ServerChan 支持的参数也可以通过 `options` 传入。
46 |
47 | ### 返回值
48 | `sc_send` 函数返回一个字典,包含 ServerChan API 的响应结果。可以通过这个结果检查消息发送是否成功。
49 |
50 | ## 示例
51 |
52 | ```python
53 | from serverchan_sdk import sc_send
54 |
55 | sendkey = "your_sendkey"
56 | title = "系统报警"
57 | desp = "服务器 CPU 使用率过高,请立即检查。"
58 | response = sc_send(sendkey, title, desp)
59 |
60 | if response.get("code") == 0:
61 | print("消息发送成功!")
62 | else:
63 | print(f"消息发送失败:{response.get('message')}")
64 | ```
65 |
66 | ### 支持的推送服务
67 |
68 | - 如果 `sendkey` 以 `sctp` 开头,SDK 将使用 `https://{sendkey}.push.ft07.com/send` 地址推送消息。
69 | - 否则,将默认使用 `https://sctapi.ftqq.com/{sendkey}.send` 进行推送。
70 |
71 | ## 依赖
72 |
73 | 该 SDK 使用了以下 Python 包:
74 |
75 | - `requests`: 用于发送 HTTP 请求。
76 |
77 | 安装依赖包:
78 |
79 | ```bash
80 | pip install requests
81 | ```
82 |
83 | ## License
84 |
85 | 本项目遵循 MIT License 开源协议。
86 |
87 | ---
88 |
89 | 这样您就可以通过简单的函数调用,利用 ServerChan 实现消息推送通知了。
--------------------------------------------------------------------------------
/pip/build/lib/serverchan_sdk/__init__.py:
--------------------------------------------------------------------------------
1 | import requests
2 | import re
3 |
4 | def sc_send(sendkey, title, desp='', options=None):
5 | if options is None:
6 | options = {}
7 | if sendkey.startswith('sctp'):
8 | match = re.match(r'^sctp(\d+)t', sendkey)
9 | if match:
10 | url = f'https://{match.group(1)}.push.ft07.com/send/{sendkey}.send'
11 | else:
12 | raise ValueError("Invalid sendkey format for 'sctp'.")
13 | else:
14 | url = f'https://sctapi.ftqq.com/{sendkey}.send'
15 | params = {
16 | 'title': title,
17 | 'desp': desp,
18 | **options
19 | }
20 | headers = {
21 | 'Content-Type': 'application/json;charset=utf-8'
22 | }
23 | response = requests.post(url, json=params, headers=headers)
24 | result = response.json()
25 | return result
26 |
--------------------------------------------------------------------------------
/pip/dist/serverchan-sdk-1.0.1.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/easychen/serverchan-sdk/0b5b63c192ed6b60e06a46b7cad0023eb53d82cf/pip/dist/serverchan-sdk-1.0.1.tar.gz
--------------------------------------------------------------------------------
/pip/dist/serverchan-sdk-1.0.2.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/easychen/serverchan-sdk/0b5b63c192ed6b60e06a46b7cad0023eb53d82cf/pip/dist/serverchan-sdk-1.0.2.tar.gz
--------------------------------------------------------------------------------
/pip/dist/serverchan_sdk-1.0.6-py3-none-any.whl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/easychen/serverchan-sdk/0b5b63c192ed6b60e06a46b7cad0023eb53d82cf/pip/dist/serverchan_sdk-1.0.6-py3-none-any.whl
--------------------------------------------------------------------------------
/pip/dist/serverchan_sdk-1.0.6.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/easychen/serverchan-sdk/0b5b63c192ed6b60e06a46b7cad0023eb53d82cf/pip/dist/serverchan_sdk-1.0.6.tar.gz
--------------------------------------------------------------------------------
/pip/serverchan_sdk.egg-info/PKG-INFO:
--------------------------------------------------------------------------------
1 | Metadata-Version: 2.1
2 | Name: serverchan-sdk
3 | Version: 1.0.6
4 | Summary: Python SDK for ServerChan
5 | Home-page: https://sct.ftqq.com
6 | Author: easychen
7 | Author-email: easychen@gmail.com
8 | Requires-Python: >=3.6
9 | Requires-Dist: requests>=2.0.0
10 |
--------------------------------------------------------------------------------
/pip/serverchan_sdk.egg-info/SOURCES.txt:
--------------------------------------------------------------------------------
1 | README.md
2 | setup.py
3 | serverchan_sdk/__init__.py
4 | serverchan_sdk.egg-info/PKG-INFO
5 | serverchan_sdk.egg-info/SOURCES.txt
6 | serverchan_sdk.egg-info/dependency_links.txt
7 | serverchan_sdk.egg-info/requires.txt
8 | serverchan_sdk.egg-info/top_level.txt
--------------------------------------------------------------------------------
/pip/serverchan_sdk.egg-info/dependency_links.txt:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/pip/serverchan_sdk.egg-info/requires.txt:
--------------------------------------------------------------------------------
1 | requests>=2.0.0
2 |
--------------------------------------------------------------------------------
/pip/serverchan_sdk.egg-info/top_level.txt:
--------------------------------------------------------------------------------
1 | serverchan_sdk
2 |
--------------------------------------------------------------------------------
/pip/serverchan_sdk/__init__.py:
--------------------------------------------------------------------------------
1 | import requests
2 | import re
3 |
4 | def sc_send(sendkey, title, desp='', options=None):
5 | if options is None:
6 | options = {}
7 | if sendkey.startswith('sctp'):
8 | match = re.match(r'^sctp(\d+)t', sendkey)
9 | if match:
10 | url = f'https://{match.group(1)}.push.ft07.com/send/{sendkey}.send'
11 | else:
12 | raise ValueError("Invalid sendkey format for 'sctp'.")
13 | else:
14 | url = f'https://sctapi.ftqq.com/{sendkey}.send'
15 | params = {
16 | 'title': title,
17 | 'desp': desp,
18 | **options
19 | }
20 | headers = {
21 | 'Content-Type': 'application/json;charset=utf-8'
22 | }
23 | response = requests.post(url, json=params, headers=headers)
24 | result = response.json()
25 | return result
26 |
--------------------------------------------------------------------------------
/pip/serverchan_sdk/__pycache__/__init__.cpython-312.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/easychen/serverchan-sdk/0b5b63c192ed6b60e06a46b7cad0023eb53d82cf/pip/serverchan_sdk/__pycache__/__init__.cpython-312.pyc
--------------------------------------------------------------------------------
/pip/serverchan_sdk/__pycache__/__init__.cpython-39.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/easychen/serverchan-sdk/0b5b63c192ed6b60e06a46b7cad0023eb53d82cf/pip/serverchan_sdk/__pycache__/__init__.cpython-39.pyc
--------------------------------------------------------------------------------
/pip/setup.py:
--------------------------------------------------------------------------------
1 | from setuptools import setup
2 |
3 | setup(
4 | name='serverchan-sdk',
5 | version='1.0.6',
6 | description='Python SDK for ServerChan',
7 | author='easychen',
8 | author_email='easychen@gmail.com',
9 | packages=['serverchan_sdk'],
10 | install_requires=[
11 | 'requests>=2.0.0',
12 | ],
13 | url='https://sct.ftqq.com',
14 | python_requires='>=3.6',
15 | )
16 |
--------------------------------------------------------------------------------
/pip/test.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | from serverchan_sdk import sc_send
3 |
4 | # 发送消息
5 | sendkey = "..."
6 | title = "py sdk测试"
7 | desp = "这是来自py sdk的消息内容"
8 | options = {"template": "markdown"} # 可选参数
9 |
10 | response = sc_send(sendkey, title, desp, options)
11 |
12 | # 输出响应
13 | print(response)
--------------------------------------------------------------------------------