├── Dockerfile
├── LICENSE
├── README.md
├── build
├── assets
│ ├── favicon.ico
│ └── images
│ │ ├── aws_edited.png
│ │ ├── azure.png
│ │ ├── cloudflare_edited.png
│ │ └── cloudshift.png
├── index.html
└── index_bundle.js
├── package-lock.json
├── package.json
└── server
├── controllers
├── assignController.js
├── fsController.js
├── rcloneController.js
└── resetAWSController.js
├── server.js
└── services
├── errorGenerator.js
└── rcloneCopyString.js
/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM node:18.12
2 | WORKDIR /usr/src/app
3 | COPY package.json /usr/src/app
4 | RUN npm install
5 | COPY . /usr/src/app
6 | RUN rm -rf /usr/src/app/.github
7 | EXPOSE 3000
8 | ENTRYPOINT [ "node", "./server/server.js" ]
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2023 OSLabs Beta
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 |
2 |
3 | 
4 |
5 |
6 |
7 | [](./LICENSE)
8 |
9 |
A free open source tool for securely migrating data between cloud providers. CloudShift currently supports AWS S3, Microsoft Azure Storage Accounts, and Cloudflare R2. Built on RClone .
10 |
11 |
12 |
13 |
14 |
15 | ## Table of Contents
16 |
17 | - [Installation & Getting Started](#installation--getting-started)
18 | - [Usage & Locating Credentials](#usage--locating-credentials)
19 | - [What CloudShift Does (and Doesn't)](#what-cloudshift-does-and-doesnt)
20 | - [Philosophy](#philosophy)
21 | - [Connect With the Team](#connect-with-the-team)
22 | - [Want to Contribute?](#want-to-contribute)
23 |
24 |
25 |
26 | ## Installation & Getting Started
27 |
28 | CloudShift is a web application available as a container on Docker Hub or for direct download by cloning this repo.
29 |
30 | Steps for installing and running CloudShift using either method is outlined below.
31 |
32 | #1. Docker (Recommended)
33 |
34 | If you do not have Docker installed, follow the [installation instructions here](https://docs.docker.com/get-docker/).
35 |
36 | USING DOCKER DESKTOP
37 |
38 | - Search for "cloudshiftdev/app" under the Containers tab.
39 |
40 | - Click the image. Making sure the latest tag is selected, click the "Pull" button to download.
41 |
42 | - After the download has completed, click "Run." Before clicking "Run" again , click Optional Settings and set the host post to your desired port.
43 |
44 | - In your browser, navigate to `localhost:HOST_PORT` where `HOST_PORT` is the host port set in the previous step.
45 |
46 | USING A TERMINAL
47 |
48 | - In an open terminal, type `docker pull cloudshiftdev/app:latest`
49 |
50 | - After the download is complete, run the container using `docker run -p HOST_PORT:3000 cloudshiftdev/app`, where `HOST_PORT` is your desired port.
51 |
52 | - In your browser, navigate to `localhost:HOST_PORT`.
53 |
54 | #2. Node
55 |
56 | Before installing, [download and install Node.js](https://nodejs.org/en/download/). Node.js 18.12 or higher is recommended.
57 |
58 | - In your terminal, run `git clone https://github.com/oslabs-beta/CloudShift.git`.
59 |
60 | - Navigate to the Cloudshift folder and run `npm install` followed by `npm start`.
61 |
62 | NOTE: By default, this will open your browser to `localhost:3000`, however you can change the port by opening your `package.json` file.
63 |
64 | Under `scripts` > `start`, change `localhost:3000` to any port value.
65 |
66 | ## Usage & Locating Credentials
67 |
68 | After installation & navigating to CloudShift in your browser, click on your origin & destination cloud providers.
69 |
70 | - Ex. if you are migrating an AWS S3 bucket to a Cloudflare R2 bucket, select AWS as origin and Cloudflare as destination.
71 |
72 | Origin & Destination will then populate with the necessary required credentials to complete the transfer process.
73 |
74 | Using root or admin level access credentials is recommended to ensure correct permissions for transferring data.
75 |
76 | Credentials
77 |
78 | - AWS
79 | - Access Key/Secret Key: These are both available by clicking on your Profile > Security credentials. You may have to create a new access key if one does not exist.
80 | - Azure Storage Account
81 | - Account ID: The name of your storage account.
82 | - Access Key: Within your storage account, click "Access keys" on the left navbar. Key1 or Key2 will work.
83 | - Cloudflare R2
84 | - Access Key/Secret Key: Under R2, click "Manage R2 API Tokens" > Create API Token. Make sure to select Edit permissions. Make note the Access Key ID & Secret Key.
85 | - Account ID: You can find your Account ID on the right side of the main Cloudflare R2 page (clicking R2 on the left navbar).
86 |
87 | Select your origin & destination buckets from the dropdown lists, which populate after you insert your credentials. Then, press the "Start Migration" button.
88 |
89 | - It might take time for the transfer to begin. When "Transfer is complete" becomes visible, your data is now available on your destination bucket!
90 |
91 | ## What CloudShift Does (and Doesn't)
92 |
93 | See [Philosophy](#philosophy) for the motivation behind our design decisions.
94 |
95 | Built on [Rclone](https://rclone.org/).
96 |
97 | Cloudshift...
98 |
99 | - Transfers data securely.
100 |
101 | - Will not corrupt your data or break your containers if the transfer process fails for any reason.
102 |
103 | Couldshift does NOT...
104 |
105 | - Delete your origin bucket or any data within your origin bucket upon completition.
106 |
107 | - Store credentials/data. All config files are auto deleted after the transfer completes.
108 |
109 | - Address specific use-cases that don't apply to most users.
110 |
111 | - Currently(!) support same provider transfers.
112 |
113 | If you find that CloudShift doesn't provide you with the granular control necessary for your use-case, or you wish to learn more about Rclone (and how the transfer process works), [visit the Rclone docs](https://rclone.org/).
114 |
115 | ## Philosophy
116 |
117 | For an in-depth read about our motivation, check out our [Medium article here](https://medium.com/cloudshift/cloudshift-data-migration-simplified-f5c4848d7cb8).
118 |
119 | CloudShift seeks to abstract as much of the cloud data migration process as possible for the majority of use-cases. If you require granular control of the transfer process, we recommend using the [Rclone CLI](https://rclone.org/).
120 |
121 | If you feel like CloudShift lacks a feature that fits with our design philosophy, [connect with us](#connect-with-the-team) or [get involved](#want-to-contribute).
122 |
123 | ## Connect With the Team
124 |
125 | Send us a [message on our LinkedIn](https://www.linkedin.com/company/93845906/).
126 |
127 | If this concerns a bug, [submit an issue](https://github.com/oslabs-beta/CloudShift/issues).
128 |
129 | ## Want to Contribute?
130 |
131 | CloudShift is an open-source product that is open to input and contributions from the community. After trying out the product, feel free to raise issues or submit a PR request.
132 |
133 | We welcome community contributions, including new developers who've never [made an open source Pull Request before](https://egghead.io/courses/how-to-contribute-to-an-open-source-project-on-github). If you'd like to start a new PR, we recommend [creating an issue](https://docs.github.com/en/github/managing-your-work-on-github/creating-an-issue) for discussion first. This lets us open a conversation, ensuring work is not duplicated unnecessarily and that the proposed PR is a fix or feature we're actively looking to add.
134 |
--------------------------------------------------------------------------------
/build/assets/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oslabs-beta/CloudShift/54648c945ae96eb947f7be1ec4dddbfaae8dbc82/build/assets/favicon.ico
--------------------------------------------------------------------------------
/build/assets/images/aws_edited.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oslabs-beta/CloudShift/54648c945ae96eb947f7be1ec4dddbfaae8dbc82/build/assets/images/aws_edited.png
--------------------------------------------------------------------------------
/build/assets/images/azure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oslabs-beta/CloudShift/54648c945ae96eb947f7be1ec4dddbfaae8dbc82/build/assets/images/azure.png
--------------------------------------------------------------------------------
/build/assets/images/cloudflare_edited.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oslabs-beta/CloudShift/54648c945ae96eb947f7be1ec4dddbfaae8dbc82/build/assets/images/cloudflare_edited.png
--------------------------------------------------------------------------------
/build/assets/images/cloudshift.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oslabs-beta/CloudShift/54648c945ae96eb947f7be1ec4dddbfaae8dbc82/build/assets/images/cloudshift.png
--------------------------------------------------------------------------------
/build/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | CloudShift
9 |
10 |
11 |
12 |
13 |
14 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "cloudshift",
3 | "version": "1.0.0",
4 | "lockfileVersion": 2,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "cloudshift",
9 | "version": "1.0.0",
10 | "license": "(MIT)",
11 | "dependencies": {
12 | "@azure/storage-blob": "12.13.0",
13 | "aws-sdk": "2.1346.0",
14 | "express": "4.18.2",
15 | "open-cli": "7.2.0",
16 | "rclone.js": "0.6.6",
17 | "socket.io": "4.6.1"
18 | }
19 | },
20 | "node_modules/@azure/abort-controller": {
21 | "version": "1.1.0",
22 | "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.1.0.tgz",
23 | "integrity": "sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==",
24 | "dependencies": {
25 | "tslib": "^2.2.0"
26 | },
27 | "engines": {
28 | "node": ">=12.0.0"
29 | }
30 | },
31 | "node_modules/@azure/core-auth": {
32 | "version": "1.4.0",
33 | "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.4.0.tgz",
34 | "integrity": "sha512-HFrcTgmuSuukRf/EdPmqBrc5l6Q5Uu+2TbuhaKbgaCpP2TfAeiNaQPAadxO+CYBRHGUzIDteMAjFspFLDLnKVQ==",
35 | "dependencies": {
36 | "@azure/abort-controller": "^1.0.0",
37 | "tslib": "^2.2.0"
38 | },
39 | "engines": {
40 | "node": ">=12.0.0"
41 | }
42 | },
43 | "node_modules/@azure/core-http": {
44 | "version": "3.0.1",
45 | "resolved": "https://registry.npmjs.org/@azure/core-http/-/core-http-3.0.1.tgz",
46 | "integrity": "sha512-A3x+um3cAPgQe42Lu7Iv/x8/fNjhL/nIoEfqFxfn30EyxK6zC13n+OUxzZBRC0IzQqssqIbt4INf5YG7lYYFtw==",
47 | "dependencies": {
48 | "@azure/abort-controller": "^1.0.0",
49 | "@azure/core-auth": "^1.3.0",
50 | "@azure/core-tracing": "1.0.0-preview.13",
51 | "@azure/core-util": "^1.1.1",
52 | "@azure/logger": "^1.0.0",
53 | "@types/node-fetch": "^2.5.0",
54 | "@types/tunnel": "^0.0.3",
55 | "form-data": "^4.0.0",
56 | "node-fetch": "^2.6.7",
57 | "process": "^0.11.10",
58 | "tslib": "^2.2.0",
59 | "tunnel": "^0.0.6",
60 | "uuid": "^8.3.0",
61 | "xml2js": "^0.5.0"
62 | },
63 | "engines": {
64 | "node": ">=14.0.0"
65 | }
66 | },
67 | "node_modules/@azure/core-lro": {
68 | "version": "2.5.2",
69 | "resolved": "https://registry.npmjs.org/@azure/core-lro/-/core-lro-2.5.2.tgz",
70 | "integrity": "sha512-tucUutPhBwCPu6v16KEFYML81npEL6gnT+iwewXvK5ZD55sr0/Vw2jfQETMiKVeARRrXHB2QQ3SpxxGi1zAUWg==",
71 | "dependencies": {
72 | "@azure/abort-controller": "^1.0.0",
73 | "@azure/core-util": "^1.2.0",
74 | "@azure/logger": "^1.0.0",
75 | "tslib": "^2.2.0"
76 | },
77 | "engines": {
78 | "node": ">=14.0.0"
79 | }
80 | },
81 | "node_modules/@azure/core-paging": {
82 | "version": "1.5.0",
83 | "resolved": "https://registry.npmjs.org/@azure/core-paging/-/core-paging-1.5.0.tgz",
84 | "integrity": "sha512-zqWdVIt+2Z+3wqxEOGzR5hXFZ8MGKK52x4vFLw8n58pR6ZfKRx3EXYTxTaYxYHc/PexPUTyimcTWFJbji9Z6Iw==",
85 | "dependencies": {
86 | "tslib": "^2.2.0"
87 | },
88 | "engines": {
89 | "node": ">=14.0.0"
90 | }
91 | },
92 | "node_modules/@azure/core-tracing": {
93 | "version": "1.0.0-preview.13",
94 | "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.0-preview.13.tgz",
95 | "integrity": "sha512-KxDlhXyMlh2Jhj2ykX6vNEU0Vou4nHr025KoSEiz7cS3BNiHNaZcdECk/DmLkEB0as5T7b/TpRcehJ5yV6NeXQ==",
96 | "dependencies": {
97 | "@opentelemetry/api": "^1.0.1",
98 | "tslib": "^2.2.0"
99 | },
100 | "engines": {
101 | "node": ">=12.0.0"
102 | }
103 | },
104 | "node_modules/@azure/core-util": {
105 | "version": "1.3.1",
106 | "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.3.1.tgz",
107 | "integrity": "sha512-pjfOUAb+MPLODhGuXot/Hy8wUgPD0UTqYkY3BiYcwEETrLcUCVM1t0roIvlQMgvn1lc48TGy5bsonsFpF862Jw==",
108 | "dependencies": {
109 | "@azure/abort-controller": "^1.0.0",
110 | "tslib": "^2.2.0"
111 | },
112 | "engines": {
113 | "node": ">=14.0.0"
114 | }
115 | },
116 | "node_modules/@azure/logger": {
117 | "version": "1.0.4",
118 | "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.0.4.tgz",
119 | "integrity": "sha512-ustrPY8MryhloQj7OWGe+HrYx+aoiOxzbXTtgblbV3xwCqpzUK36phH3XNHQKj3EPonyFUuDTfR3qFhTEAuZEg==",
120 | "dependencies": {
121 | "tslib": "^2.2.0"
122 | },
123 | "engines": {
124 | "node": ">=14.0.0"
125 | }
126 | },
127 | "node_modules/@azure/storage-blob": {
128 | "version": "12.13.0",
129 | "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.13.0.tgz",
130 | "integrity": "sha512-t3Q2lvBMJucgTjQcP5+hvEJMAsJSk0qmAnjDLie2td017IiduZbbC9BOcFfmwzR6y6cJdZOuewLCNFmEx9IrXA==",
131 | "dependencies": {
132 | "@azure/abort-controller": "^1.0.0",
133 | "@azure/core-http": "^3.0.0",
134 | "@azure/core-lro": "^2.2.0",
135 | "@azure/core-paging": "^1.1.1",
136 | "@azure/core-tracing": "1.0.0-preview.13",
137 | "@azure/logger": "^1.0.0",
138 | "events": "^3.0.0",
139 | "tslib": "^2.2.0"
140 | },
141 | "engines": {
142 | "node": ">=14.0.0"
143 | }
144 | },
145 | "node_modules/@babel/code-frame": {
146 | "version": "7.21.4",
147 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz",
148 | "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==",
149 | "dependencies": {
150 | "@babel/highlight": "^7.18.6"
151 | },
152 | "engines": {
153 | "node": ">=6.9.0"
154 | }
155 | },
156 | "node_modules/@babel/helper-validator-identifier": {
157 | "version": "7.19.1",
158 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
159 | "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
160 | "engines": {
161 | "node": ">=6.9.0"
162 | }
163 | },
164 | "node_modules/@babel/highlight": {
165 | "version": "7.18.6",
166 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
167 | "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
168 | "dependencies": {
169 | "@babel/helper-validator-identifier": "^7.18.6",
170 | "chalk": "^2.0.0",
171 | "js-tokens": "^4.0.0"
172 | },
173 | "engines": {
174 | "node": ">=6.9.0"
175 | }
176 | },
177 | "node_modules/@opentelemetry/api": {
178 | "version": "1.4.1",
179 | "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.4.1.tgz",
180 | "integrity": "sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA==",
181 | "engines": {
182 | "node": ">=8.0.0"
183 | }
184 | },
185 | "node_modules/@socket.io/component-emitter": {
186 | "version": "3.1.0",
187 | "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz",
188 | "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg=="
189 | },
190 | "node_modules/@tokenizer/token": {
191 | "version": "0.3.0",
192 | "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz",
193 | "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A=="
194 | },
195 | "node_modules/@types/cookie": {
196 | "version": "0.4.1",
197 | "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz",
198 | "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q=="
199 | },
200 | "node_modules/@types/cors": {
201 | "version": "2.8.13",
202 | "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.13.tgz",
203 | "integrity": "sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==",
204 | "dependencies": {
205 | "@types/node": "*"
206 | }
207 | },
208 | "node_modules/@types/minimist": {
209 | "version": "1.2.2",
210 | "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz",
211 | "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ=="
212 | },
213 | "node_modules/@types/node": {
214 | "version": "18.15.11",
215 | "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz",
216 | "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q=="
217 | },
218 | "node_modules/@types/node-fetch": {
219 | "version": "2.6.3",
220 | "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.3.tgz",
221 | "integrity": "sha512-ETTL1mOEdq/sxUtgtOhKjyB2Irra4cjxksvcMUR5Zr4n+PxVhsCD9WS46oPbHL3et9Zde7CNRr+WUNlcHvsX+w==",
222 | "dependencies": {
223 | "@types/node": "*",
224 | "form-data": "^3.0.0"
225 | }
226 | },
227 | "node_modules/@types/node-fetch/node_modules/form-data": {
228 | "version": "3.0.1",
229 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
230 | "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
231 | "dependencies": {
232 | "asynckit": "^0.4.0",
233 | "combined-stream": "^1.0.8",
234 | "mime-types": "^2.1.12"
235 | },
236 | "engines": {
237 | "node": ">= 6"
238 | }
239 | },
240 | "node_modules/@types/normalize-package-data": {
241 | "version": "2.4.1",
242 | "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz",
243 | "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw=="
244 | },
245 | "node_modules/@types/tunnel": {
246 | "version": "0.0.3",
247 | "resolved": "https://registry.npmjs.org/@types/tunnel/-/tunnel-0.0.3.tgz",
248 | "integrity": "sha512-sOUTGn6h1SfQ+gbgqC364jLFBw2lnFqkgF3q0WovEHRLMrVD1sd5aufqi/aJObLekJO+Aq5z646U4Oxy6shXMA==",
249 | "dependencies": {
250 | "@types/node": "*"
251 | }
252 | },
253 | "node_modules/accepts": {
254 | "version": "1.3.8",
255 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
256 | "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
257 | "dependencies": {
258 | "mime-types": "~2.1.34",
259 | "negotiator": "0.6.3"
260 | },
261 | "engines": {
262 | "node": ">= 0.6"
263 | }
264 | },
265 | "node_modules/adm-zip": {
266 | "version": "0.5.10",
267 | "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.10.tgz",
268 | "integrity": "sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ==",
269 | "engines": {
270 | "node": ">=6.0"
271 | }
272 | },
273 | "node_modules/ansi-styles": {
274 | "version": "3.2.1",
275 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
276 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
277 | "dependencies": {
278 | "color-convert": "^1.9.0"
279 | },
280 | "engines": {
281 | "node": ">=4"
282 | }
283 | },
284 | "node_modules/array-flatten": {
285 | "version": "1.1.1",
286 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
287 | "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
288 | },
289 | "node_modules/arrify": {
290 | "version": "1.0.1",
291 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
292 | "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==",
293 | "engines": {
294 | "node": ">=0.10.0"
295 | }
296 | },
297 | "node_modules/asynckit": {
298 | "version": "0.4.0",
299 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
300 | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
301 | },
302 | "node_modules/available-typed-arrays": {
303 | "version": "1.0.5",
304 | "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
305 | "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==",
306 | "engines": {
307 | "node": ">= 0.4"
308 | },
309 | "funding": {
310 | "url": "https://github.com/sponsors/ljharb"
311 | }
312 | },
313 | "node_modules/aws-sdk": {
314 | "version": "2.1346.0",
315 | "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1346.0.tgz",
316 | "integrity": "sha512-sLN7DUQ4KGkVCRN9uU5amz+k5qj5HFdwq0itH7WLtFGG63/vG/HnrqHj1G0PyMij0Zz6CGlRBACstWRm0niYhQ==",
317 | "dependencies": {
318 | "buffer": "4.9.2",
319 | "events": "1.1.1",
320 | "ieee754": "1.1.13",
321 | "jmespath": "0.16.0",
322 | "querystring": "0.2.0",
323 | "sax": "1.2.1",
324 | "url": "0.10.3",
325 | "util": "^0.12.4",
326 | "uuid": "8.0.0",
327 | "xml2js": "0.4.19"
328 | },
329 | "engines": {
330 | "node": ">= 10.0.0"
331 | }
332 | },
333 | "node_modules/aws-sdk/node_modules/events": {
334 | "version": "1.1.1",
335 | "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
336 | "integrity": "sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==",
337 | "engines": {
338 | "node": ">=0.4.x"
339 | }
340 | },
341 | "node_modules/aws-sdk/node_modules/uuid": {
342 | "version": "8.0.0",
343 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.0.0.tgz",
344 | "integrity": "sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw==",
345 | "bin": {
346 | "uuid": "dist/bin/uuid"
347 | }
348 | },
349 | "node_modules/aws-sdk/node_modules/xml2js": {
350 | "version": "0.4.19",
351 | "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz",
352 | "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==",
353 | "dependencies": {
354 | "sax": ">=0.6.0",
355 | "xmlbuilder": "~9.0.1"
356 | }
357 | },
358 | "node_modules/aws-sdk/node_modules/xmlbuilder": {
359 | "version": "9.0.7",
360 | "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz",
361 | "integrity": "sha512-7YXTQc3P2l9+0rjaUbLwMKRhtmwg1M1eDf6nag7urC7pIPYLD9W/jmzQ4ptRSUbodw5S0jfoGTflLemQibSpeQ==",
362 | "engines": {
363 | "node": ">=4.0"
364 | }
365 | },
366 | "node_modules/base64-js": {
367 | "version": "1.5.1",
368 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
369 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
370 | "funding": [
371 | {
372 | "type": "github",
373 | "url": "https://github.com/sponsors/feross"
374 | },
375 | {
376 | "type": "patreon",
377 | "url": "https://www.patreon.com/feross"
378 | },
379 | {
380 | "type": "consulting",
381 | "url": "https://feross.org/support"
382 | }
383 | ]
384 | },
385 | "node_modules/base64id": {
386 | "version": "2.0.0",
387 | "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz",
388 | "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==",
389 | "engines": {
390 | "node": "^4.5.0 || >= 5.9"
391 | }
392 | },
393 | "node_modules/big-integer": {
394 | "version": "1.6.51",
395 | "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz",
396 | "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==",
397 | "engines": {
398 | "node": ">=0.6"
399 | }
400 | },
401 | "node_modules/body-parser": {
402 | "version": "1.20.1",
403 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
404 | "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
405 | "dependencies": {
406 | "bytes": "3.1.2",
407 | "content-type": "~1.0.4",
408 | "debug": "2.6.9",
409 | "depd": "2.0.0",
410 | "destroy": "1.2.0",
411 | "http-errors": "2.0.0",
412 | "iconv-lite": "0.4.24",
413 | "on-finished": "2.4.1",
414 | "qs": "6.11.0",
415 | "raw-body": "2.5.1",
416 | "type-is": "~1.6.18",
417 | "unpipe": "1.0.0"
418 | },
419 | "engines": {
420 | "node": ">= 0.8",
421 | "npm": "1.2.8000 || >= 1.4.16"
422 | }
423 | },
424 | "node_modules/bplist-parser": {
425 | "version": "0.2.0",
426 | "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz",
427 | "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==",
428 | "dependencies": {
429 | "big-integer": "^1.6.44"
430 | },
431 | "engines": {
432 | "node": ">= 5.10.0"
433 | }
434 | },
435 | "node_modules/buffer": {
436 | "version": "4.9.2",
437 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz",
438 | "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==",
439 | "dependencies": {
440 | "base64-js": "^1.0.2",
441 | "ieee754": "^1.1.4",
442 | "isarray": "^1.0.0"
443 | }
444 | },
445 | "node_modules/bundle-name": {
446 | "version": "3.0.0",
447 | "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz",
448 | "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==",
449 | "dependencies": {
450 | "run-applescript": "^5.0.0"
451 | },
452 | "engines": {
453 | "node": ">=12"
454 | },
455 | "funding": {
456 | "url": "https://github.com/sponsors/sindresorhus"
457 | }
458 | },
459 | "node_modules/bytes": {
460 | "version": "3.1.2",
461 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
462 | "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
463 | "engines": {
464 | "node": ">= 0.8"
465 | }
466 | },
467 | "node_modules/call-bind": {
468 | "version": "1.0.2",
469 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
470 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
471 | "dependencies": {
472 | "function-bind": "^1.1.1",
473 | "get-intrinsic": "^1.0.2"
474 | },
475 | "funding": {
476 | "url": "https://github.com/sponsors/ljharb"
477 | }
478 | },
479 | "node_modules/camelcase": {
480 | "version": "7.0.1",
481 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz",
482 | "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==",
483 | "engines": {
484 | "node": ">=14.16"
485 | },
486 | "funding": {
487 | "url": "https://github.com/sponsors/sindresorhus"
488 | }
489 | },
490 | "node_modules/camelcase-keys": {
491 | "version": "8.0.2",
492 | "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-8.0.2.tgz",
493 | "integrity": "sha512-qMKdlOfsjlezMqxkUGGMaWWs17i2HoL15tM+wtx8ld4nLrUwU58TFdvyGOz/piNP842KeO8yXvggVQSdQ828NA==",
494 | "dependencies": {
495 | "camelcase": "^7.0.0",
496 | "map-obj": "^4.3.0",
497 | "quick-lru": "^6.1.1",
498 | "type-fest": "^2.13.0"
499 | },
500 | "engines": {
501 | "node": ">=14.16"
502 | },
503 | "funding": {
504 | "url": "https://github.com/sponsors/sindresorhus"
505 | }
506 | },
507 | "node_modules/camelcase-keys/node_modules/type-fest": {
508 | "version": "2.19.0",
509 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
510 | "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
511 | "engines": {
512 | "node": ">=12.20"
513 | },
514 | "funding": {
515 | "url": "https://github.com/sponsors/sindresorhus"
516 | }
517 | },
518 | "node_modules/chalk": {
519 | "version": "2.4.2",
520 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
521 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
522 | "dependencies": {
523 | "ansi-styles": "^3.2.1",
524 | "escape-string-regexp": "^1.0.5",
525 | "supports-color": "^5.3.0"
526 | },
527 | "engines": {
528 | "node": ">=4"
529 | }
530 | },
531 | "node_modules/color-convert": {
532 | "version": "1.9.3",
533 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
534 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
535 | "dependencies": {
536 | "color-name": "1.1.3"
537 | }
538 | },
539 | "node_modules/color-name": {
540 | "version": "1.1.3",
541 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
542 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
543 | },
544 | "node_modules/combined-stream": {
545 | "version": "1.0.8",
546 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
547 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
548 | "dependencies": {
549 | "delayed-stream": "~1.0.0"
550 | },
551 | "engines": {
552 | "node": ">= 0.8"
553 | }
554 | },
555 | "node_modules/content-disposition": {
556 | "version": "0.5.4",
557 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
558 | "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
559 | "dependencies": {
560 | "safe-buffer": "5.2.1"
561 | },
562 | "engines": {
563 | "node": ">= 0.6"
564 | }
565 | },
566 | "node_modules/content-type": {
567 | "version": "1.0.5",
568 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
569 | "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
570 | "engines": {
571 | "node": ">= 0.6"
572 | }
573 | },
574 | "node_modules/cookie": {
575 | "version": "0.5.0",
576 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
577 | "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
578 | "engines": {
579 | "node": ">= 0.6"
580 | }
581 | },
582 | "node_modules/cookie-signature": {
583 | "version": "1.0.6",
584 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
585 | "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
586 | },
587 | "node_modules/cors": {
588 | "version": "2.8.5",
589 | "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
590 | "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
591 | "dependencies": {
592 | "object-assign": "^4",
593 | "vary": "^1"
594 | },
595 | "engines": {
596 | "node": ">= 0.10"
597 | }
598 | },
599 | "node_modules/cross-spawn": {
600 | "version": "7.0.3",
601 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
602 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
603 | "dependencies": {
604 | "path-key": "^3.1.0",
605 | "shebang-command": "^2.0.0",
606 | "which": "^2.0.1"
607 | },
608 | "engines": {
609 | "node": ">= 8"
610 | }
611 | },
612 | "node_modules/crypto-random-string": {
613 | "version": "4.0.0",
614 | "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz",
615 | "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==",
616 | "dependencies": {
617 | "type-fest": "^1.0.1"
618 | },
619 | "engines": {
620 | "node": ">=12"
621 | },
622 | "funding": {
623 | "url": "https://github.com/sponsors/sindresorhus"
624 | }
625 | },
626 | "node_modules/crypto-random-string/node_modules/type-fest": {
627 | "version": "1.4.0",
628 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
629 | "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
630 | "engines": {
631 | "node": ">=10"
632 | },
633 | "funding": {
634 | "url": "https://github.com/sponsors/sindresorhus"
635 | }
636 | },
637 | "node_modules/debug": {
638 | "version": "2.6.9",
639 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
640 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
641 | "dependencies": {
642 | "ms": "2.0.0"
643 | }
644 | },
645 | "node_modules/decamelize": {
646 | "version": "6.0.0",
647 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-6.0.0.tgz",
648 | "integrity": "sha512-Fv96DCsdOgB6mdGl67MT5JaTNKRzrzill5OH5s8bjYJXVlcXyPYGyPsUkWyGV5p1TXI5esYIYMMeDJL0hEIwaA==",
649 | "engines": {
650 | "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
651 | },
652 | "funding": {
653 | "url": "https://github.com/sponsors/sindresorhus"
654 | }
655 | },
656 | "node_modules/decamelize-keys": {
657 | "version": "1.1.1",
658 | "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz",
659 | "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==",
660 | "dependencies": {
661 | "decamelize": "^1.1.0",
662 | "map-obj": "^1.0.0"
663 | },
664 | "engines": {
665 | "node": ">=0.10.0"
666 | },
667 | "funding": {
668 | "url": "https://github.com/sponsors/sindresorhus"
669 | }
670 | },
671 | "node_modules/decamelize-keys/node_modules/decamelize": {
672 | "version": "1.2.0",
673 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
674 | "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
675 | "engines": {
676 | "node": ">=0.10.0"
677 | }
678 | },
679 | "node_modules/decamelize-keys/node_modules/map-obj": {
680 | "version": "1.0.1",
681 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
682 | "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==",
683 | "engines": {
684 | "node": ">=0.10.0"
685 | }
686 | },
687 | "node_modules/default-browser": {
688 | "version": "4.0.0",
689 | "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz",
690 | "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==",
691 | "dependencies": {
692 | "bundle-name": "^3.0.0",
693 | "default-browser-id": "^3.0.0",
694 | "execa": "^7.1.1",
695 | "titleize": "^3.0.0"
696 | },
697 | "engines": {
698 | "node": ">=14.16"
699 | },
700 | "funding": {
701 | "url": "https://github.com/sponsors/sindresorhus"
702 | }
703 | },
704 | "node_modules/default-browser-id": {
705 | "version": "3.0.0",
706 | "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz",
707 | "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==",
708 | "dependencies": {
709 | "bplist-parser": "^0.2.0",
710 | "untildify": "^4.0.0"
711 | },
712 | "engines": {
713 | "node": ">=12"
714 | },
715 | "funding": {
716 | "url": "https://github.com/sponsors/sindresorhus"
717 | }
718 | },
719 | "node_modules/define-lazy-prop": {
720 | "version": "3.0.0",
721 | "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz",
722 | "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==",
723 | "engines": {
724 | "node": ">=12"
725 | },
726 | "funding": {
727 | "url": "https://github.com/sponsors/sindresorhus"
728 | }
729 | },
730 | "node_modules/delayed-stream": {
731 | "version": "1.0.0",
732 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
733 | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
734 | "engines": {
735 | "node": ">=0.4.0"
736 | }
737 | },
738 | "node_modules/depd": {
739 | "version": "2.0.0",
740 | "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
741 | "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
742 | "engines": {
743 | "node": ">= 0.8"
744 | }
745 | },
746 | "node_modules/destroy": {
747 | "version": "1.2.0",
748 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
749 | "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
750 | "engines": {
751 | "node": ">= 0.8",
752 | "npm": "1.2.8000 || >= 1.4.16"
753 | }
754 | },
755 | "node_modules/ee-first": {
756 | "version": "1.1.1",
757 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
758 | "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
759 | },
760 | "node_modules/encodeurl": {
761 | "version": "1.0.2",
762 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
763 | "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
764 | "engines": {
765 | "node": ">= 0.8"
766 | }
767 | },
768 | "node_modules/engine.io": {
769 | "version": "6.4.1",
770 | "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.4.1.tgz",
771 | "integrity": "sha512-JFYQurD/nbsA5BSPmbaOSLa3tSVj8L6o4srSwXXY3NqE+gGUNmmPTbhn8tjzcCtSqhFgIeqef81ngny8JM25hw==",
772 | "dependencies": {
773 | "@types/cookie": "^0.4.1",
774 | "@types/cors": "^2.8.12",
775 | "@types/node": ">=10.0.0",
776 | "accepts": "~1.3.4",
777 | "base64id": "2.0.0",
778 | "cookie": "~0.4.1",
779 | "cors": "~2.8.5",
780 | "debug": "~4.3.1",
781 | "engine.io-parser": "~5.0.3",
782 | "ws": "~8.11.0"
783 | },
784 | "engines": {
785 | "node": ">=10.0.0"
786 | }
787 | },
788 | "node_modules/engine.io-parser": {
789 | "version": "5.0.6",
790 | "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.6.tgz",
791 | "integrity": "sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw==",
792 | "engines": {
793 | "node": ">=10.0.0"
794 | }
795 | },
796 | "node_modules/engine.io/node_modules/cookie": {
797 | "version": "0.4.2",
798 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
799 | "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
800 | "engines": {
801 | "node": ">= 0.6"
802 | }
803 | },
804 | "node_modules/engine.io/node_modules/debug": {
805 | "version": "4.3.4",
806 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
807 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
808 | "dependencies": {
809 | "ms": "2.1.2"
810 | },
811 | "engines": {
812 | "node": ">=6.0"
813 | },
814 | "peerDependenciesMeta": {
815 | "supports-color": {
816 | "optional": true
817 | }
818 | }
819 | },
820 | "node_modules/engine.io/node_modules/ms": {
821 | "version": "2.1.2",
822 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
823 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
824 | },
825 | "node_modules/error-ex": {
826 | "version": "1.3.2",
827 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
828 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
829 | "dependencies": {
830 | "is-arrayish": "^0.2.1"
831 | }
832 | },
833 | "node_modules/escape-html": {
834 | "version": "1.0.3",
835 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
836 | "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
837 | },
838 | "node_modules/escape-string-regexp": {
839 | "version": "1.0.5",
840 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
841 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
842 | "engines": {
843 | "node": ">=0.8.0"
844 | }
845 | },
846 | "node_modules/etag": {
847 | "version": "1.8.1",
848 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
849 | "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
850 | "engines": {
851 | "node": ">= 0.6"
852 | }
853 | },
854 | "node_modules/events": {
855 | "version": "3.3.0",
856 | "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
857 | "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
858 | "engines": {
859 | "node": ">=0.8.x"
860 | }
861 | },
862 | "node_modules/execa": {
863 | "version": "7.1.1",
864 | "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz",
865 | "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==",
866 | "dependencies": {
867 | "cross-spawn": "^7.0.3",
868 | "get-stream": "^6.0.1",
869 | "human-signals": "^4.3.0",
870 | "is-stream": "^3.0.0",
871 | "merge-stream": "^2.0.0",
872 | "npm-run-path": "^5.1.0",
873 | "onetime": "^6.0.0",
874 | "signal-exit": "^3.0.7",
875 | "strip-final-newline": "^3.0.0"
876 | },
877 | "engines": {
878 | "node": "^14.18.0 || ^16.14.0 || >=18.0.0"
879 | },
880 | "funding": {
881 | "url": "https://github.com/sindresorhus/execa?sponsor=1"
882 | }
883 | },
884 | "node_modules/express": {
885 | "version": "4.18.2",
886 | "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
887 | "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
888 | "dependencies": {
889 | "accepts": "~1.3.8",
890 | "array-flatten": "1.1.1",
891 | "body-parser": "1.20.1",
892 | "content-disposition": "0.5.4",
893 | "content-type": "~1.0.4",
894 | "cookie": "0.5.0",
895 | "cookie-signature": "1.0.6",
896 | "debug": "2.6.9",
897 | "depd": "2.0.0",
898 | "encodeurl": "~1.0.2",
899 | "escape-html": "~1.0.3",
900 | "etag": "~1.8.1",
901 | "finalhandler": "1.2.0",
902 | "fresh": "0.5.2",
903 | "http-errors": "2.0.0",
904 | "merge-descriptors": "1.0.1",
905 | "methods": "~1.1.2",
906 | "on-finished": "2.4.1",
907 | "parseurl": "~1.3.3",
908 | "path-to-regexp": "0.1.7",
909 | "proxy-addr": "~2.0.7",
910 | "qs": "6.11.0",
911 | "range-parser": "~1.2.1",
912 | "safe-buffer": "5.2.1",
913 | "send": "0.18.0",
914 | "serve-static": "1.15.0",
915 | "setprototypeof": "1.2.0",
916 | "statuses": "2.0.1",
917 | "type-is": "~1.6.18",
918 | "utils-merge": "1.0.1",
919 | "vary": "~1.1.2"
920 | },
921 | "engines": {
922 | "node": ">= 0.10.0"
923 | }
924 | },
925 | "node_modules/file-type": {
926 | "version": "18.2.1",
927 | "resolved": "https://registry.npmjs.org/file-type/-/file-type-18.2.1.tgz",
928 | "integrity": "sha512-Yw5MtnMv7vgD2/6Bjmmuegc8bQEVA9GmAyaR18bMYWKqsWDG9wgYZ1j4I6gNMF5Y5JBDcUcjRQqNQx7Y8uotcg==",
929 | "dependencies": {
930 | "readable-web-to-node-stream": "^3.0.2",
931 | "strtok3": "^7.0.0",
932 | "token-types": "^5.0.1"
933 | },
934 | "engines": {
935 | "node": ">=14.16"
936 | },
937 | "funding": {
938 | "url": "https://github.com/sindresorhus/file-type?sponsor=1"
939 | }
940 | },
941 | "node_modules/finalhandler": {
942 | "version": "1.2.0",
943 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
944 | "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
945 | "dependencies": {
946 | "debug": "2.6.9",
947 | "encodeurl": "~1.0.2",
948 | "escape-html": "~1.0.3",
949 | "on-finished": "2.4.1",
950 | "parseurl": "~1.3.3",
951 | "statuses": "2.0.1",
952 | "unpipe": "~1.0.0"
953 | },
954 | "engines": {
955 | "node": ">= 0.8"
956 | }
957 | },
958 | "node_modules/find-up": {
959 | "version": "6.3.0",
960 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz",
961 | "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==",
962 | "dependencies": {
963 | "locate-path": "^7.1.0",
964 | "path-exists": "^5.0.0"
965 | },
966 | "engines": {
967 | "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
968 | },
969 | "funding": {
970 | "url": "https://github.com/sponsors/sindresorhus"
971 | }
972 | },
973 | "node_modules/for-each": {
974 | "version": "0.3.3",
975 | "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
976 | "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
977 | "dependencies": {
978 | "is-callable": "^1.1.3"
979 | }
980 | },
981 | "node_modules/form-data": {
982 | "version": "4.0.0",
983 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
984 | "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
985 | "dependencies": {
986 | "asynckit": "^0.4.0",
987 | "combined-stream": "^1.0.8",
988 | "mime-types": "^2.1.12"
989 | },
990 | "engines": {
991 | "node": ">= 6"
992 | }
993 | },
994 | "node_modules/forwarded": {
995 | "version": "0.2.0",
996 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
997 | "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
998 | "engines": {
999 | "node": ">= 0.6"
1000 | }
1001 | },
1002 | "node_modules/fresh": {
1003 | "version": "0.5.2",
1004 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
1005 | "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
1006 | "engines": {
1007 | "node": ">= 0.6"
1008 | }
1009 | },
1010 | "node_modules/function-bind": {
1011 | "version": "1.1.1",
1012 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
1013 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
1014 | },
1015 | "node_modules/get-intrinsic": {
1016 | "version": "1.2.0",
1017 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
1018 | "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
1019 | "dependencies": {
1020 | "function-bind": "^1.1.1",
1021 | "has": "^1.0.3",
1022 | "has-symbols": "^1.0.3"
1023 | },
1024 | "funding": {
1025 | "url": "https://github.com/sponsors/ljharb"
1026 | }
1027 | },
1028 | "node_modules/get-stdin": {
1029 | "version": "9.0.0",
1030 | "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz",
1031 | "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==",
1032 | "engines": {
1033 | "node": ">=12"
1034 | },
1035 | "funding": {
1036 | "url": "https://github.com/sponsors/sindresorhus"
1037 | }
1038 | },
1039 | "node_modules/get-stream": {
1040 | "version": "6.0.1",
1041 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
1042 | "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
1043 | "engines": {
1044 | "node": ">=10"
1045 | },
1046 | "funding": {
1047 | "url": "https://github.com/sponsors/sindresorhus"
1048 | }
1049 | },
1050 | "node_modules/gopd": {
1051 | "version": "1.0.1",
1052 | "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
1053 | "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
1054 | "dependencies": {
1055 | "get-intrinsic": "^1.1.3"
1056 | },
1057 | "funding": {
1058 | "url": "https://github.com/sponsors/ljharb"
1059 | }
1060 | },
1061 | "node_modules/hard-rejection": {
1062 | "version": "2.1.0",
1063 | "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz",
1064 | "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==",
1065 | "engines": {
1066 | "node": ">=6"
1067 | }
1068 | },
1069 | "node_modules/has": {
1070 | "version": "1.0.3",
1071 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
1072 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
1073 | "dependencies": {
1074 | "function-bind": "^1.1.1"
1075 | },
1076 | "engines": {
1077 | "node": ">= 0.4.0"
1078 | }
1079 | },
1080 | "node_modules/has-flag": {
1081 | "version": "3.0.0",
1082 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
1083 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
1084 | "engines": {
1085 | "node": ">=4"
1086 | }
1087 | },
1088 | "node_modules/has-symbols": {
1089 | "version": "1.0.3",
1090 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
1091 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
1092 | "engines": {
1093 | "node": ">= 0.4"
1094 | },
1095 | "funding": {
1096 | "url": "https://github.com/sponsors/ljharb"
1097 | }
1098 | },
1099 | "node_modules/has-tostringtag": {
1100 | "version": "1.0.0",
1101 | "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
1102 | "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
1103 | "dependencies": {
1104 | "has-symbols": "^1.0.2"
1105 | },
1106 | "engines": {
1107 | "node": ">= 0.4"
1108 | },
1109 | "funding": {
1110 | "url": "https://github.com/sponsors/ljharb"
1111 | }
1112 | },
1113 | "node_modules/hosted-git-info": {
1114 | "version": "5.2.1",
1115 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz",
1116 | "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==",
1117 | "dependencies": {
1118 | "lru-cache": "^7.5.1"
1119 | },
1120 | "engines": {
1121 | "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
1122 | }
1123 | },
1124 | "node_modules/http-errors": {
1125 | "version": "2.0.0",
1126 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
1127 | "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
1128 | "dependencies": {
1129 | "depd": "2.0.0",
1130 | "inherits": "2.0.4",
1131 | "setprototypeof": "1.2.0",
1132 | "statuses": "2.0.1",
1133 | "toidentifier": "1.0.1"
1134 | },
1135 | "engines": {
1136 | "node": ">= 0.8"
1137 | }
1138 | },
1139 | "node_modules/human-signals": {
1140 | "version": "4.3.1",
1141 | "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz",
1142 | "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==",
1143 | "engines": {
1144 | "node": ">=14.18.0"
1145 | }
1146 | },
1147 | "node_modules/iconv-lite": {
1148 | "version": "0.4.24",
1149 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
1150 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
1151 | "dependencies": {
1152 | "safer-buffer": ">= 2.1.2 < 3"
1153 | },
1154 | "engines": {
1155 | "node": ">=0.10.0"
1156 | }
1157 | },
1158 | "node_modules/ieee754": {
1159 | "version": "1.1.13",
1160 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
1161 | "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg=="
1162 | },
1163 | "node_modules/indent-string": {
1164 | "version": "5.0.0",
1165 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz",
1166 | "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==",
1167 | "engines": {
1168 | "node": ">=12"
1169 | },
1170 | "funding": {
1171 | "url": "https://github.com/sponsors/sindresorhus"
1172 | }
1173 | },
1174 | "node_modules/inherits": {
1175 | "version": "2.0.4",
1176 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1177 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
1178 | },
1179 | "node_modules/ipaddr.js": {
1180 | "version": "1.9.1",
1181 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
1182 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
1183 | "engines": {
1184 | "node": ">= 0.10"
1185 | }
1186 | },
1187 | "node_modules/is-arguments": {
1188 | "version": "1.1.1",
1189 | "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
1190 | "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
1191 | "dependencies": {
1192 | "call-bind": "^1.0.2",
1193 | "has-tostringtag": "^1.0.0"
1194 | },
1195 | "engines": {
1196 | "node": ">= 0.4"
1197 | },
1198 | "funding": {
1199 | "url": "https://github.com/sponsors/ljharb"
1200 | }
1201 | },
1202 | "node_modules/is-arrayish": {
1203 | "version": "0.2.1",
1204 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
1205 | "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="
1206 | },
1207 | "node_modules/is-callable": {
1208 | "version": "1.2.7",
1209 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
1210 | "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
1211 | "engines": {
1212 | "node": ">= 0.4"
1213 | },
1214 | "funding": {
1215 | "url": "https://github.com/sponsors/ljharb"
1216 | }
1217 | },
1218 | "node_modules/is-core-module": {
1219 | "version": "2.12.0",
1220 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz",
1221 | "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==",
1222 | "dependencies": {
1223 | "has": "^1.0.3"
1224 | },
1225 | "funding": {
1226 | "url": "https://github.com/sponsors/ljharb"
1227 | }
1228 | },
1229 | "node_modules/is-docker": {
1230 | "version": "3.0.0",
1231 | "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
1232 | "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==",
1233 | "bin": {
1234 | "is-docker": "cli.js"
1235 | },
1236 | "engines": {
1237 | "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
1238 | },
1239 | "funding": {
1240 | "url": "https://github.com/sponsors/sindresorhus"
1241 | }
1242 | },
1243 | "node_modules/is-generator-function": {
1244 | "version": "1.0.10",
1245 | "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
1246 | "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
1247 | "dependencies": {
1248 | "has-tostringtag": "^1.0.0"
1249 | },
1250 | "engines": {
1251 | "node": ">= 0.4"
1252 | },
1253 | "funding": {
1254 | "url": "https://github.com/sponsors/ljharb"
1255 | }
1256 | },
1257 | "node_modules/is-inside-container": {
1258 | "version": "1.0.0",
1259 | "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz",
1260 | "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==",
1261 | "dependencies": {
1262 | "is-docker": "^3.0.0"
1263 | },
1264 | "bin": {
1265 | "is-inside-container": "cli.js"
1266 | },
1267 | "engines": {
1268 | "node": ">=14.16"
1269 | },
1270 | "funding": {
1271 | "url": "https://github.com/sponsors/sindresorhus"
1272 | }
1273 | },
1274 | "node_modules/is-plain-obj": {
1275 | "version": "1.1.0",
1276 | "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
1277 | "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==",
1278 | "engines": {
1279 | "node": ">=0.10.0"
1280 | }
1281 | },
1282 | "node_modules/is-stream": {
1283 | "version": "3.0.0",
1284 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
1285 | "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
1286 | "engines": {
1287 | "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
1288 | },
1289 | "funding": {
1290 | "url": "https://github.com/sponsors/sindresorhus"
1291 | }
1292 | },
1293 | "node_modules/is-typed-array": {
1294 | "version": "1.1.10",
1295 | "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz",
1296 | "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==",
1297 | "dependencies": {
1298 | "available-typed-arrays": "^1.0.5",
1299 | "call-bind": "^1.0.2",
1300 | "for-each": "^0.3.3",
1301 | "gopd": "^1.0.1",
1302 | "has-tostringtag": "^1.0.0"
1303 | },
1304 | "engines": {
1305 | "node": ">= 0.4"
1306 | },
1307 | "funding": {
1308 | "url": "https://github.com/sponsors/ljharb"
1309 | }
1310 | },
1311 | "node_modules/is-wsl": {
1312 | "version": "2.2.0",
1313 | "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
1314 | "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
1315 | "dependencies": {
1316 | "is-docker": "^2.0.0"
1317 | },
1318 | "engines": {
1319 | "node": ">=8"
1320 | }
1321 | },
1322 | "node_modules/is-wsl/node_modules/is-docker": {
1323 | "version": "2.2.1",
1324 | "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
1325 | "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
1326 | "bin": {
1327 | "is-docker": "cli.js"
1328 | },
1329 | "engines": {
1330 | "node": ">=8"
1331 | },
1332 | "funding": {
1333 | "url": "https://github.com/sponsors/sindresorhus"
1334 | }
1335 | },
1336 | "node_modules/isarray": {
1337 | "version": "1.0.0",
1338 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1339 | "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
1340 | },
1341 | "node_modules/isexe": {
1342 | "version": "2.0.0",
1343 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1344 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
1345 | },
1346 | "node_modules/jmespath": {
1347 | "version": "0.16.0",
1348 | "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.16.0.tgz",
1349 | "integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==",
1350 | "engines": {
1351 | "node": ">= 0.6.0"
1352 | }
1353 | },
1354 | "node_modules/js-tokens": {
1355 | "version": "4.0.0",
1356 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
1357 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
1358 | },
1359 | "node_modules/json-parse-even-better-errors": {
1360 | "version": "2.3.1",
1361 | "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
1362 | "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
1363 | },
1364 | "node_modules/kind-of": {
1365 | "version": "6.0.3",
1366 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
1367 | "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
1368 | "engines": {
1369 | "node": ">=0.10.0"
1370 | }
1371 | },
1372 | "node_modules/lines-and-columns": {
1373 | "version": "1.2.4",
1374 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
1375 | "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
1376 | },
1377 | "node_modules/locate-path": {
1378 | "version": "7.2.0",
1379 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz",
1380 | "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==",
1381 | "dependencies": {
1382 | "p-locate": "^6.0.0"
1383 | },
1384 | "engines": {
1385 | "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
1386 | },
1387 | "funding": {
1388 | "url": "https://github.com/sponsors/sindresorhus"
1389 | }
1390 | },
1391 | "node_modules/lru-cache": {
1392 | "version": "7.18.3",
1393 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
1394 | "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==",
1395 | "engines": {
1396 | "node": ">=12"
1397 | }
1398 | },
1399 | "node_modules/map-obj": {
1400 | "version": "4.3.0",
1401 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz",
1402 | "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==",
1403 | "engines": {
1404 | "node": ">=8"
1405 | },
1406 | "funding": {
1407 | "url": "https://github.com/sponsors/sindresorhus"
1408 | }
1409 | },
1410 | "node_modules/media-typer": {
1411 | "version": "0.3.0",
1412 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
1413 | "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
1414 | "engines": {
1415 | "node": ">= 0.6"
1416 | }
1417 | },
1418 | "node_modules/meow": {
1419 | "version": "11.0.0",
1420 | "resolved": "https://registry.npmjs.org/meow/-/meow-11.0.0.tgz",
1421 | "integrity": "sha512-Cl0yeeIrko6d94KpUo1M+0X1sB14ikoaqlIGuTH1fW4I+E3+YljL54/hb/BWmVfrV9tTV9zU04+xjw08Fh2WkA==",
1422 | "dependencies": {
1423 | "@types/minimist": "^1.2.2",
1424 | "camelcase-keys": "^8.0.2",
1425 | "decamelize": "^6.0.0",
1426 | "decamelize-keys": "^1.1.0",
1427 | "hard-rejection": "^2.1.0",
1428 | "minimist-options": "4.1.0",
1429 | "normalize-package-data": "^4.0.1",
1430 | "read-pkg-up": "^9.1.0",
1431 | "redent": "^4.0.0",
1432 | "trim-newlines": "^4.0.2",
1433 | "type-fest": "^3.1.0",
1434 | "yargs-parser": "^21.1.1"
1435 | },
1436 | "engines": {
1437 | "node": ">=14.16"
1438 | },
1439 | "funding": {
1440 | "url": "https://github.com/sponsors/sindresorhus"
1441 | }
1442 | },
1443 | "node_modules/merge-descriptors": {
1444 | "version": "1.0.1",
1445 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
1446 | "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
1447 | },
1448 | "node_modules/merge-stream": {
1449 | "version": "2.0.0",
1450 | "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
1451 | "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
1452 | },
1453 | "node_modules/methods": {
1454 | "version": "1.1.2",
1455 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
1456 | "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
1457 | "engines": {
1458 | "node": ">= 0.6"
1459 | }
1460 | },
1461 | "node_modules/mime": {
1462 | "version": "1.6.0",
1463 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
1464 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
1465 | "bin": {
1466 | "mime": "cli.js"
1467 | },
1468 | "engines": {
1469 | "node": ">=4"
1470 | }
1471 | },
1472 | "node_modules/mime-db": {
1473 | "version": "1.52.0",
1474 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
1475 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
1476 | "engines": {
1477 | "node": ">= 0.6"
1478 | }
1479 | },
1480 | "node_modules/mime-types": {
1481 | "version": "2.1.35",
1482 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
1483 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
1484 | "dependencies": {
1485 | "mime-db": "1.52.0"
1486 | },
1487 | "engines": {
1488 | "node": ">= 0.6"
1489 | }
1490 | },
1491 | "node_modules/mimic-fn": {
1492 | "version": "4.0.0",
1493 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
1494 | "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
1495 | "engines": {
1496 | "node": ">=12"
1497 | },
1498 | "funding": {
1499 | "url": "https://github.com/sponsors/sindresorhus"
1500 | }
1501 | },
1502 | "node_modules/min-indent": {
1503 | "version": "1.0.1",
1504 | "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
1505 | "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
1506 | "engines": {
1507 | "node": ">=4"
1508 | }
1509 | },
1510 | "node_modules/minimist-options": {
1511 | "version": "4.1.0",
1512 | "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz",
1513 | "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==",
1514 | "dependencies": {
1515 | "arrify": "^1.0.1",
1516 | "is-plain-obj": "^1.1.0",
1517 | "kind-of": "^6.0.3"
1518 | },
1519 | "engines": {
1520 | "node": ">= 6"
1521 | }
1522 | },
1523 | "node_modules/mri": {
1524 | "version": "1.2.0",
1525 | "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
1526 | "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
1527 | "engines": {
1528 | "node": ">=4"
1529 | }
1530 | },
1531 | "node_modules/ms": {
1532 | "version": "2.0.0",
1533 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1534 | "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
1535 | },
1536 | "node_modules/negotiator": {
1537 | "version": "0.6.3",
1538 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
1539 | "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
1540 | "engines": {
1541 | "node": ">= 0.6"
1542 | }
1543 | },
1544 | "node_modules/node-fetch": {
1545 | "version": "2.6.9",
1546 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz",
1547 | "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==",
1548 | "dependencies": {
1549 | "whatwg-url": "^5.0.0"
1550 | },
1551 | "engines": {
1552 | "node": "4.x || >=6.0.0"
1553 | },
1554 | "peerDependencies": {
1555 | "encoding": "^0.1.0"
1556 | },
1557 | "peerDependenciesMeta": {
1558 | "encoding": {
1559 | "optional": true
1560 | }
1561 | }
1562 | },
1563 | "node_modules/normalize-package-data": {
1564 | "version": "4.0.1",
1565 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-4.0.1.tgz",
1566 | "integrity": "sha512-EBk5QKKuocMJhB3BILuKhmaPjI8vNRSpIfO9woLC6NyHVkKKdVEdAO1mrT0ZfxNR1lKwCcTkuZfmGIFdizZ8Pg==",
1567 | "dependencies": {
1568 | "hosted-git-info": "^5.0.0",
1569 | "is-core-module": "^2.8.1",
1570 | "semver": "^7.3.5",
1571 | "validate-npm-package-license": "^3.0.4"
1572 | },
1573 | "engines": {
1574 | "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
1575 | }
1576 | },
1577 | "node_modules/npm-run-path": {
1578 | "version": "5.1.0",
1579 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz",
1580 | "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==",
1581 | "dependencies": {
1582 | "path-key": "^4.0.0"
1583 | },
1584 | "engines": {
1585 | "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
1586 | },
1587 | "funding": {
1588 | "url": "https://github.com/sponsors/sindresorhus"
1589 | }
1590 | },
1591 | "node_modules/npm-run-path/node_modules/path-key": {
1592 | "version": "4.0.0",
1593 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
1594 | "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
1595 | "engines": {
1596 | "node": ">=12"
1597 | },
1598 | "funding": {
1599 | "url": "https://github.com/sponsors/sindresorhus"
1600 | }
1601 | },
1602 | "node_modules/object-assign": {
1603 | "version": "4.1.1",
1604 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1605 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
1606 | "engines": {
1607 | "node": ">=0.10.0"
1608 | }
1609 | },
1610 | "node_modules/object-inspect": {
1611 | "version": "1.12.3",
1612 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
1613 | "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
1614 | "funding": {
1615 | "url": "https://github.com/sponsors/ljharb"
1616 | }
1617 | },
1618 | "node_modules/on-finished": {
1619 | "version": "2.4.1",
1620 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
1621 | "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
1622 | "dependencies": {
1623 | "ee-first": "1.1.1"
1624 | },
1625 | "engines": {
1626 | "node": ">= 0.8"
1627 | }
1628 | },
1629 | "node_modules/onetime": {
1630 | "version": "6.0.0",
1631 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
1632 | "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
1633 | "dependencies": {
1634 | "mimic-fn": "^4.0.0"
1635 | },
1636 | "engines": {
1637 | "node": ">=12"
1638 | },
1639 | "funding": {
1640 | "url": "https://github.com/sponsors/sindresorhus"
1641 | }
1642 | },
1643 | "node_modules/open": {
1644 | "version": "9.1.0",
1645 | "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz",
1646 | "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==",
1647 | "dependencies": {
1648 | "default-browser": "^4.0.0",
1649 | "define-lazy-prop": "^3.0.0",
1650 | "is-inside-container": "^1.0.0",
1651 | "is-wsl": "^2.2.0"
1652 | },
1653 | "engines": {
1654 | "node": ">=14.16"
1655 | },
1656 | "funding": {
1657 | "url": "https://github.com/sponsors/sindresorhus"
1658 | }
1659 | },
1660 | "node_modules/open-cli": {
1661 | "version": "7.2.0",
1662 | "resolved": "https://registry.npmjs.org/open-cli/-/open-cli-7.2.0.tgz",
1663 | "integrity": "sha512-1ANJc8oJ92FiaNZ0o2Hw4WBvDJoXs1P74aFMtpAvlbkIPV4uPcQvDz7V6kMOrsZkmB4tglrHVMlLQaafuUuxXg==",
1664 | "dependencies": {
1665 | "file-type": "^18.2.1",
1666 | "get-stdin": "^9.0.0",
1667 | "meow": "^11.0.0",
1668 | "open": "^9.0.0",
1669 | "tempy": "^3.0.0"
1670 | },
1671 | "bin": {
1672 | "open-cli": "cli.js"
1673 | },
1674 | "engines": {
1675 | "node": ">=14.16"
1676 | },
1677 | "funding": {
1678 | "url": "https://github.com/sponsors/sindresorhus"
1679 | }
1680 | },
1681 | "node_modules/p-limit": {
1682 | "version": "4.0.0",
1683 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz",
1684 | "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==",
1685 | "dependencies": {
1686 | "yocto-queue": "^1.0.0"
1687 | },
1688 | "engines": {
1689 | "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
1690 | },
1691 | "funding": {
1692 | "url": "https://github.com/sponsors/sindresorhus"
1693 | }
1694 | },
1695 | "node_modules/p-locate": {
1696 | "version": "6.0.0",
1697 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz",
1698 | "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==",
1699 | "dependencies": {
1700 | "p-limit": "^4.0.0"
1701 | },
1702 | "engines": {
1703 | "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
1704 | },
1705 | "funding": {
1706 | "url": "https://github.com/sponsors/sindresorhus"
1707 | }
1708 | },
1709 | "node_modules/parse-json": {
1710 | "version": "5.2.0",
1711 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
1712 | "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
1713 | "dependencies": {
1714 | "@babel/code-frame": "^7.0.0",
1715 | "error-ex": "^1.3.1",
1716 | "json-parse-even-better-errors": "^2.3.0",
1717 | "lines-and-columns": "^1.1.6"
1718 | },
1719 | "engines": {
1720 | "node": ">=8"
1721 | },
1722 | "funding": {
1723 | "url": "https://github.com/sponsors/sindresorhus"
1724 | }
1725 | },
1726 | "node_modules/parseurl": {
1727 | "version": "1.3.3",
1728 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
1729 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
1730 | "engines": {
1731 | "node": ">= 0.8"
1732 | }
1733 | },
1734 | "node_modules/path-exists": {
1735 | "version": "5.0.0",
1736 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz",
1737 | "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==",
1738 | "engines": {
1739 | "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
1740 | }
1741 | },
1742 | "node_modules/path-key": {
1743 | "version": "3.1.1",
1744 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
1745 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
1746 | "engines": {
1747 | "node": ">=8"
1748 | }
1749 | },
1750 | "node_modules/path-to-regexp": {
1751 | "version": "0.1.7",
1752 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
1753 | "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
1754 | },
1755 | "node_modules/peek-readable": {
1756 | "version": "5.0.0",
1757 | "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.0.0.tgz",
1758 | "integrity": "sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==",
1759 | "engines": {
1760 | "node": ">=14.16"
1761 | },
1762 | "funding": {
1763 | "type": "github",
1764 | "url": "https://github.com/sponsors/Borewit"
1765 | }
1766 | },
1767 | "node_modules/process": {
1768 | "version": "0.11.10",
1769 | "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
1770 | "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
1771 | "engines": {
1772 | "node": ">= 0.6.0"
1773 | }
1774 | },
1775 | "node_modules/proxy-addr": {
1776 | "version": "2.0.7",
1777 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
1778 | "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
1779 | "dependencies": {
1780 | "forwarded": "0.2.0",
1781 | "ipaddr.js": "1.9.1"
1782 | },
1783 | "engines": {
1784 | "node": ">= 0.10"
1785 | }
1786 | },
1787 | "node_modules/punycode": {
1788 | "version": "1.3.2",
1789 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
1790 | "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw=="
1791 | },
1792 | "node_modules/qs": {
1793 | "version": "6.11.0",
1794 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
1795 | "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
1796 | "dependencies": {
1797 | "side-channel": "^1.0.4"
1798 | },
1799 | "engines": {
1800 | "node": ">=0.6"
1801 | },
1802 | "funding": {
1803 | "url": "https://github.com/sponsors/ljharb"
1804 | }
1805 | },
1806 | "node_modules/querystring": {
1807 | "version": "0.2.0",
1808 | "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
1809 | "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==",
1810 | "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.",
1811 | "engines": {
1812 | "node": ">=0.4.x"
1813 | }
1814 | },
1815 | "node_modules/quick-lru": {
1816 | "version": "6.1.1",
1817 | "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-6.1.1.tgz",
1818 | "integrity": "sha512-S27GBT+F0NTRiehtbrgaSE1idUAJ5bX8dPAQTdylEyNlrdcH5X4Lz7Edz3DYzecbsCluD5zO8ZNEe04z3D3u6Q==",
1819 | "engines": {
1820 | "node": ">=12"
1821 | },
1822 | "funding": {
1823 | "url": "https://github.com/sponsors/sindresorhus"
1824 | }
1825 | },
1826 | "node_modules/range-parser": {
1827 | "version": "1.2.1",
1828 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
1829 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
1830 | "engines": {
1831 | "node": ">= 0.6"
1832 | }
1833 | },
1834 | "node_modules/raw-body": {
1835 | "version": "2.5.1",
1836 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
1837 | "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
1838 | "dependencies": {
1839 | "bytes": "3.1.2",
1840 | "http-errors": "2.0.0",
1841 | "iconv-lite": "0.4.24",
1842 | "unpipe": "1.0.0"
1843 | },
1844 | "engines": {
1845 | "node": ">= 0.8"
1846 | }
1847 | },
1848 | "node_modules/rclone.js": {
1849 | "version": "0.6.6",
1850 | "resolved": "https://registry.npmjs.org/rclone.js/-/rclone.js-0.6.6.tgz",
1851 | "integrity": "sha512-Dxh34cab/fNjFq5SSm0fYLNkGzG2cQSBy782UW9WwxJCEiVO4cGXkvaXcNlgv817dK8K8PuQ+NHUqSAMMhWujQ==",
1852 | "cpu": [
1853 | "arm",
1854 | "arm64",
1855 | "mips",
1856 | "mipsel",
1857 | "x32",
1858 | "x64"
1859 | ],
1860 | "hasInstallScript": true,
1861 | "os": [
1862 | "darwin",
1863 | "freebsd",
1864 | "linux",
1865 | "openbsd",
1866 | "sunos",
1867 | "win32"
1868 | ],
1869 | "dependencies": {
1870 | "adm-zip": "^0.5.9",
1871 | "mri": "^1.2.0"
1872 | },
1873 | "bin": {
1874 | "rclone": "bin/rclone.js"
1875 | },
1876 | "engines": {
1877 | "node": ">=12"
1878 | }
1879 | },
1880 | "node_modules/read-pkg": {
1881 | "version": "7.1.0",
1882 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz",
1883 | "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==",
1884 | "dependencies": {
1885 | "@types/normalize-package-data": "^2.4.1",
1886 | "normalize-package-data": "^3.0.2",
1887 | "parse-json": "^5.2.0",
1888 | "type-fest": "^2.0.0"
1889 | },
1890 | "engines": {
1891 | "node": ">=12.20"
1892 | },
1893 | "funding": {
1894 | "url": "https://github.com/sponsors/sindresorhus"
1895 | }
1896 | },
1897 | "node_modules/read-pkg-up": {
1898 | "version": "9.1.0",
1899 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-9.1.0.tgz",
1900 | "integrity": "sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==",
1901 | "dependencies": {
1902 | "find-up": "^6.3.0",
1903 | "read-pkg": "^7.1.0",
1904 | "type-fest": "^2.5.0"
1905 | },
1906 | "engines": {
1907 | "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
1908 | },
1909 | "funding": {
1910 | "url": "https://github.com/sponsors/sindresorhus"
1911 | }
1912 | },
1913 | "node_modules/read-pkg-up/node_modules/type-fest": {
1914 | "version": "2.19.0",
1915 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
1916 | "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
1917 | "engines": {
1918 | "node": ">=12.20"
1919 | },
1920 | "funding": {
1921 | "url": "https://github.com/sponsors/sindresorhus"
1922 | }
1923 | },
1924 | "node_modules/read-pkg/node_modules/hosted-git-info": {
1925 | "version": "4.1.0",
1926 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
1927 | "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
1928 | "dependencies": {
1929 | "lru-cache": "^6.0.0"
1930 | },
1931 | "engines": {
1932 | "node": ">=10"
1933 | }
1934 | },
1935 | "node_modules/read-pkg/node_modules/lru-cache": {
1936 | "version": "6.0.0",
1937 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
1938 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
1939 | "dependencies": {
1940 | "yallist": "^4.0.0"
1941 | },
1942 | "engines": {
1943 | "node": ">=10"
1944 | }
1945 | },
1946 | "node_modules/read-pkg/node_modules/normalize-package-data": {
1947 | "version": "3.0.3",
1948 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
1949 | "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==",
1950 | "dependencies": {
1951 | "hosted-git-info": "^4.0.1",
1952 | "is-core-module": "^2.5.0",
1953 | "semver": "^7.3.4",
1954 | "validate-npm-package-license": "^3.0.1"
1955 | },
1956 | "engines": {
1957 | "node": ">=10"
1958 | }
1959 | },
1960 | "node_modules/read-pkg/node_modules/type-fest": {
1961 | "version": "2.19.0",
1962 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
1963 | "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
1964 | "engines": {
1965 | "node": ">=12.20"
1966 | },
1967 | "funding": {
1968 | "url": "https://github.com/sponsors/sindresorhus"
1969 | }
1970 | },
1971 | "node_modules/readable-stream": {
1972 | "version": "3.6.2",
1973 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
1974 | "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
1975 | "dependencies": {
1976 | "inherits": "^2.0.3",
1977 | "string_decoder": "^1.1.1",
1978 | "util-deprecate": "^1.0.1"
1979 | },
1980 | "engines": {
1981 | "node": ">= 6"
1982 | }
1983 | },
1984 | "node_modules/readable-web-to-node-stream": {
1985 | "version": "3.0.2",
1986 | "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz",
1987 | "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==",
1988 | "dependencies": {
1989 | "readable-stream": "^3.6.0"
1990 | },
1991 | "engines": {
1992 | "node": ">=8"
1993 | },
1994 | "funding": {
1995 | "type": "github",
1996 | "url": "https://github.com/sponsors/Borewit"
1997 | }
1998 | },
1999 | "node_modules/redent": {
2000 | "version": "4.0.0",
2001 | "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz",
2002 | "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==",
2003 | "dependencies": {
2004 | "indent-string": "^5.0.0",
2005 | "strip-indent": "^4.0.0"
2006 | },
2007 | "engines": {
2008 | "node": ">=12"
2009 | },
2010 | "funding": {
2011 | "url": "https://github.com/sponsors/sindresorhus"
2012 | }
2013 | },
2014 | "node_modules/run-applescript": {
2015 | "version": "5.0.0",
2016 | "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz",
2017 | "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==",
2018 | "dependencies": {
2019 | "execa": "^5.0.0"
2020 | },
2021 | "engines": {
2022 | "node": ">=12"
2023 | },
2024 | "funding": {
2025 | "url": "https://github.com/sponsors/sindresorhus"
2026 | }
2027 | },
2028 | "node_modules/run-applescript/node_modules/execa": {
2029 | "version": "5.1.1",
2030 | "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
2031 | "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
2032 | "dependencies": {
2033 | "cross-spawn": "^7.0.3",
2034 | "get-stream": "^6.0.0",
2035 | "human-signals": "^2.1.0",
2036 | "is-stream": "^2.0.0",
2037 | "merge-stream": "^2.0.0",
2038 | "npm-run-path": "^4.0.1",
2039 | "onetime": "^5.1.2",
2040 | "signal-exit": "^3.0.3",
2041 | "strip-final-newline": "^2.0.0"
2042 | },
2043 | "engines": {
2044 | "node": ">=10"
2045 | },
2046 | "funding": {
2047 | "url": "https://github.com/sindresorhus/execa?sponsor=1"
2048 | }
2049 | },
2050 | "node_modules/run-applescript/node_modules/human-signals": {
2051 | "version": "2.1.0",
2052 | "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
2053 | "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
2054 | "engines": {
2055 | "node": ">=10.17.0"
2056 | }
2057 | },
2058 | "node_modules/run-applescript/node_modules/is-stream": {
2059 | "version": "2.0.1",
2060 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
2061 | "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
2062 | "engines": {
2063 | "node": ">=8"
2064 | },
2065 | "funding": {
2066 | "url": "https://github.com/sponsors/sindresorhus"
2067 | }
2068 | },
2069 | "node_modules/run-applescript/node_modules/mimic-fn": {
2070 | "version": "2.1.0",
2071 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
2072 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
2073 | "engines": {
2074 | "node": ">=6"
2075 | }
2076 | },
2077 | "node_modules/run-applescript/node_modules/npm-run-path": {
2078 | "version": "4.0.1",
2079 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
2080 | "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
2081 | "dependencies": {
2082 | "path-key": "^3.0.0"
2083 | },
2084 | "engines": {
2085 | "node": ">=8"
2086 | }
2087 | },
2088 | "node_modules/run-applescript/node_modules/onetime": {
2089 | "version": "5.1.2",
2090 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
2091 | "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
2092 | "dependencies": {
2093 | "mimic-fn": "^2.1.0"
2094 | },
2095 | "engines": {
2096 | "node": ">=6"
2097 | },
2098 | "funding": {
2099 | "url": "https://github.com/sponsors/sindresorhus"
2100 | }
2101 | },
2102 | "node_modules/run-applescript/node_modules/strip-final-newline": {
2103 | "version": "2.0.0",
2104 | "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
2105 | "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
2106 | "engines": {
2107 | "node": ">=6"
2108 | }
2109 | },
2110 | "node_modules/safe-buffer": {
2111 | "version": "5.2.1",
2112 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
2113 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
2114 | "funding": [
2115 | {
2116 | "type": "github",
2117 | "url": "https://github.com/sponsors/feross"
2118 | },
2119 | {
2120 | "type": "patreon",
2121 | "url": "https://www.patreon.com/feross"
2122 | },
2123 | {
2124 | "type": "consulting",
2125 | "url": "https://feross.org/support"
2126 | }
2127 | ]
2128 | },
2129 | "node_modules/safer-buffer": {
2130 | "version": "2.1.2",
2131 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
2132 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
2133 | },
2134 | "node_modules/sax": {
2135 | "version": "1.2.1",
2136 | "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz",
2137 | "integrity": "sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA=="
2138 | },
2139 | "node_modules/semver": {
2140 | "version": "7.5.0",
2141 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz",
2142 | "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==",
2143 | "dependencies": {
2144 | "lru-cache": "^6.0.0"
2145 | },
2146 | "bin": {
2147 | "semver": "bin/semver.js"
2148 | },
2149 | "engines": {
2150 | "node": ">=10"
2151 | }
2152 | },
2153 | "node_modules/semver/node_modules/lru-cache": {
2154 | "version": "6.0.0",
2155 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
2156 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
2157 | "dependencies": {
2158 | "yallist": "^4.0.0"
2159 | },
2160 | "engines": {
2161 | "node": ">=10"
2162 | }
2163 | },
2164 | "node_modules/send": {
2165 | "version": "0.18.0",
2166 | "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
2167 | "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
2168 | "dependencies": {
2169 | "debug": "2.6.9",
2170 | "depd": "2.0.0",
2171 | "destroy": "1.2.0",
2172 | "encodeurl": "~1.0.2",
2173 | "escape-html": "~1.0.3",
2174 | "etag": "~1.8.1",
2175 | "fresh": "0.5.2",
2176 | "http-errors": "2.0.0",
2177 | "mime": "1.6.0",
2178 | "ms": "2.1.3",
2179 | "on-finished": "2.4.1",
2180 | "range-parser": "~1.2.1",
2181 | "statuses": "2.0.1"
2182 | },
2183 | "engines": {
2184 | "node": ">= 0.8.0"
2185 | }
2186 | },
2187 | "node_modules/send/node_modules/ms": {
2188 | "version": "2.1.3",
2189 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
2190 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
2191 | },
2192 | "node_modules/serve-static": {
2193 | "version": "1.15.0",
2194 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
2195 | "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
2196 | "dependencies": {
2197 | "encodeurl": "~1.0.2",
2198 | "escape-html": "~1.0.3",
2199 | "parseurl": "~1.3.3",
2200 | "send": "0.18.0"
2201 | },
2202 | "engines": {
2203 | "node": ">= 0.8.0"
2204 | }
2205 | },
2206 | "node_modules/setprototypeof": {
2207 | "version": "1.2.0",
2208 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
2209 | "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
2210 | },
2211 | "node_modules/shebang-command": {
2212 | "version": "2.0.0",
2213 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
2214 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
2215 | "dependencies": {
2216 | "shebang-regex": "^3.0.0"
2217 | },
2218 | "engines": {
2219 | "node": ">=8"
2220 | }
2221 | },
2222 | "node_modules/shebang-regex": {
2223 | "version": "3.0.0",
2224 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
2225 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
2226 | "engines": {
2227 | "node": ">=8"
2228 | }
2229 | },
2230 | "node_modules/side-channel": {
2231 | "version": "1.0.4",
2232 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
2233 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
2234 | "dependencies": {
2235 | "call-bind": "^1.0.0",
2236 | "get-intrinsic": "^1.0.2",
2237 | "object-inspect": "^1.9.0"
2238 | },
2239 | "funding": {
2240 | "url": "https://github.com/sponsors/ljharb"
2241 | }
2242 | },
2243 | "node_modules/signal-exit": {
2244 | "version": "3.0.7",
2245 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
2246 | "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
2247 | },
2248 | "node_modules/socket.io": {
2249 | "version": "4.6.1",
2250 | "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.6.1.tgz",
2251 | "integrity": "sha512-KMcaAi4l/8+xEjkRICl6ak8ySoxsYG+gG6/XfRCPJPQ/haCRIJBTL4wIl8YCsmtaBovcAXGLOShyVWQ/FG8GZA==",
2252 | "dependencies": {
2253 | "accepts": "~1.3.4",
2254 | "base64id": "~2.0.0",
2255 | "debug": "~4.3.2",
2256 | "engine.io": "~6.4.1",
2257 | "socket.io-adapter": "~2.5.2",
2258 | "socket.io-parser": "~4.2.1"
2259 | },
2260 | "engines": {
2261 | "node": ">=10.0.0"
2262 | }
2263 | },
2264 | "node_modules/socket.io-adapter": {
2265 | "version": "2.5.2",
2266 | "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz",
2267 | "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==",
2268 | "dependencies": {
2269 | "ws": "~8.11.0"
2270 | }
2271 | },
2272 | "node_modules/socket.io-parser": {
2273 | "version": "4.2.2",
2274 | "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.2.tgz",
2275 | "integrity": "sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw==",
2276 | "dependencies": {
2277 | "@socket.io/component-emitter": "~3.1.0",
2278 | "debug": "~4.3.1"
2279 | },
2280 | "engines": {
2281 | "node": ">=10.0.0"
2282 | }
2283 | },
2284 | "node_modules/socket.io-parser/node_modules/debug": {
2285 | "version": "4.3.4",
2286 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
2287 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
2288 | "dependencies": {
2289 | "ms": "2.1.2"
2290 | },
2291 | "engines": {
2292 | "node": ">=6.0"
2293 | },
2294 | "peerDependenciesMeta": {
2295 | "supports-color": {
2296 | "optional": true
2297 | }
2298 | }
2299 | },
2300 | "node_modules/socket.io-parser/node_modules/ms": {
2301 | "version": "2.1.2",
2302 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
2303 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
2304 | },
2305 | "node_modules/socket.io/node_modules/debug": {
2306 | "version": "4.3.4",
2307 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
2308 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
2309 | "dependencies": {
2310 | "ms": "2.1.2"
2311 | },
2312 | "engines": {
2313 | "node": ">=6.0"
2314 | },
2315 | "peerDependenciesMeta": {
2316 | "supports-color": {
2317 | "optional": true
2318 | }
2319 | }
2320 | },
2321 | "node_modules/socket.io/node_modules/ms": {
2322 | "version": "2.1.2",
2323 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
2324 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
2325 | },
2326 | "node_modules/spdx-correct": {
2327 | "version": "3.2.0",
2328 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
2329 | "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
2330 | "dependencies": {
2331 | "spdx-expression-parse": "^3.0.0",
2332 | "spdx-license-ids": "^3.0.0"
2333 | }
2334 | },
2335 | "node_modules/spdx-exceptions": {
2336 | "version": "2.3.0",
2337 | "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
2338 | "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A=="
2339 | },
2340 | "node_modules/spdx-expression-parse": {
2341 | "version": "3.0.1",
2342 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
2343 | "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
2344 | "dependencies": {
2345 | "spdx-exceptions": "^2.1.0",
2346 | "spdx-license-ids": "^3.0.0"
2347 | }
2348 | },
2349 | "node_modules/spdx-license-ids": {
2350 | "version": "3.0.13",
2351 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz",
2352 | "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w=="
2353 | },
2354 | "node_modules/statuses": {
2355 | "version": "2.0.1",
2356 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
2357 | "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
2358 | "engines": {
2359 | "node": ">= 0.8"
2360 | }
2361 | },
2362 | "node_modules/string_decoder": {
2363 | "version": "1.3.0",
2364 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
2365 | "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
2366 | "dependencies": {
2367 | "safe-buffer": "~5.2.0"
2368 | }
2369 | },
2370 | "node_modules/strip-final-newline": {
2371 | "version": "3.0.0",
2372 | "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
2373 | "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
2374 | "engines": {
2375 | "node": ">=12"
2376 | },
2377 | "funding": {
2378 | "url": "https://github.com/sponsors/sindresorhus"
2379 | }
2380 | },
2381 | "node_modules/strip-indent": {
2382 | "version": "4.0.0",
2383 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz",
2384 | "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==",
2385 | "dependencies": {
2386 | "min-indent": "^1.0.1"
2387 | },
2388 | "engines": {
2389 | "node": ">=12"
2390 | },
2391 | "funding": {
2392 | "url": "https://github.com/sponsors/sindresorhus"
2393 | }
2394 | },
2395 | "node_modules/strtok3": {
2396 | "version": "7.0.0",
2397 | "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-7.0.0.tgz",
2398 | "integrity": "sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==",
2399 | "dependencies": {
2400 | "@tokenizer/token": "^0.3.0",
2401 | "peek-readable": "^5.0.0"
2402 | },
2403 | "engines": {
2404 | "node": ">=14.16"
2405 | },
2406 | "funding": {
2407 | "type": "github",
2408 | "url": "https://github.com/sponsors/Borewit"
2409 | }
2410 | },
2411 | "node_modules/supports-color": {
2412 | "version": "5.5.0",
2413 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
2414 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
2415 | "dependencies": {
2416 | "has-flag": "^3.0.0"
2417 | },
2418 | "engines": {
2419 | "node": ">=4"
2420 | }
2421 | },
2422 | "node_modules/temp-dir": {
2423 | "version": "2.0.0",
2424 | "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz",
2425 | "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==",
2426 | "engines": {
2427 | "node": ">=8"
2428 | }
2429 | },
2430 | "node_modules/tempy": {
2431 | "version": "3.0.0",
2432 | "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.0.0.tgz",
2433 | "integrity": "sha512-B2I9X7+o2wOaW4r/CWMkpOO9mdiTRCxXNgob6iGvPmfPWgH/KyUD6Uy5crtWBxIBe3YrNZKR2lSzv1JJKWD4vA==",
2434 | "dependencies": {
2435 | "is-stream": "^3.0.0",
2436 | "temp-dir": "^2.0.0",
2437 | "type-fest": "^2.12.2",
2438 | "unique-string": "^3.0.0"
2439 | },
2440 | "engines": {
2441 | "node": ">=14.16"
2442 | },
2443 | "funding": {
2444 | "url": "https://github.com/sponsors/sindresorhus"
2445 | }
2446 | },
2447 | "node_modules/tempy/node_modules/type-fest": {
2448 | "version": "2.19.0",
2449 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
2450 | "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
2451 | "engines": {
2452 | "node": ">=12.20"
2453 | },
2454 | "funding": {
2455 | "url": "https://github.com/sponsors/sindresorhus"
2456 | }
2457 | },
2458 | "node_modules/titleize": {
2459 | "version": "3.0.0",
2460 | "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz",
2461 | "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==",
2462 | "engines": {
2463 | "node": ">=12"
2464 | },
2465 | "funding": {
2466 | "url": "https://github.com/sponsors/sindresorhus"
2467 | }
2468 | },
2469 | "node_modules/toidentifier": {
2470 | "version": "1.0.1",
2471 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
2472 | "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
2473 | "engines": {
2474 | "node": ">=0.6"
2475 | }
2476 | },
2477 | "node_modules/token-types": {
2478 | "version": "5.0.1",
2479 | "resolved": "https://registry.npmjs.org/token-types/-/token-types-5.0.1.tgz",
2480 | "integrity": "sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg==",
2481 | "dependencies": {
2482 | "@tokenizer/token": "^0.3.0",
2483 | "ieee754": "^1.2.1"
2484 | },
2485 | "engines": {
2486 | "node": ">=14.16"
2487 | },
2488 | "funding": {
2489 | "type": "github",
2490 | "url": "https://github.com/sponsors/Borewit"
2491 | }
2492 | },
2493 | "node_modules/token-types/node_modules/ieee754": {
2494 | "version": "1.2.1",
2495 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
2496 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
2497 | "funding": [
2498 | {
2499 | "type": "github",
2500 | "url": "https://github.com/sponsors/feross"
2501 | },
2502 | {
2503 | "type": "patreon",
2504 | "url": "https://www.patreon.com/feross"
2505 | },
2506 | {
2507 | "type": "consulting",
2508 | "url": "https://feross.org/support"
2509 | }
2510 | ]
2511 | },
2512 | "node_modules/tr46": {
2513 | "version": "0.0.3",
2514 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
2515 | "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
2516 | },
2517 | "node_modules/trim-newlines": {
2518 | "version": "4.1.1",
2519 | "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.1.1.tgz",
2520 | "integrity": "sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==",
2521 | "engines": {
2522 | "node": ">=12"
2523 | },
2524 | "funding": {
2525 | "url": "https://github.com/sponsors/sindresorhus"
2526 | }
2527 | },
2528 | "node_modules/tslib": {
2529 | "version": "2.5.0",
2530 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
2531 | "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
2532 | },
2533 | "node_modules/tunnel": {
2534 | "version": "0.0.6",
2535 | "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
2536 | "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==",
2537 | "engines": {
2538 | "node": ">=0.6.11 <=0.7.0 || >=0.7.3"
2539 | }
2540 | },
2541 | "node_modules/type-fest": {
2542 | "version": "3.8.0",
2543 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.8.0.tgz",
2544 | "integrity": "sha512-FVNSzGQz9Th+/9R6Lvv7WIAkstylfHN2/JYxkyhhmKFYh9At2DST8t6L6Lref9eYO8PXFTfG9Sg1Agg0K3vq3Q==",
2545 | "engines": {
2546 | "node": ">=14.16"
2547 | },
2548 | "funding": {
2549 | "url": "https://github.com/sponsors/sindresorhus"
2550 | }
2551 | },
2552 | "node_modules/type-is": {
2553 | "version": "1.6.18",
2554 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
2555 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
2556 | "dependencies": {
2557 | "media-typer": "0.3.0",
2558 | "mime-types": "~2.1.24"
2559 | },
2560 | "engines": {
2561 | "node": ">= 0.6"
2562 | }
2563 | },
2564 | "node_modules/unique-string": {
2565 | "version": "3.0.0",
2566 | "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz",
2567 | "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==",
2568 | "dependencies": {
2569 | "crypto-random-string": "^4.0.0"
2570 | },
2571 | "engines": {
2572 | "node": ">=12"
2573 | },
2574 | "funding": {
2575 | "url": "https://github.com/sponsors/sindresorhus"
2576 | }
2577 | },
2578 | "node_modules/unpipe": {
2579 | "version": "1.0.0",
2580 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
2581 | "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
2582 | "engines": {
2583 | "node": ">= 0.8"
2584 | }
2585 | },
2586 | "node_modules/untildify": {
2587 | "version": "4.0.0",
2588 | "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz",
2589 | "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==",
2590 | "engines": {
2591 | "node": ">=8"
2592 | }
2593 | },
2594 | "node_modules/url": {
2595 | "version": "0.10.3",
2596 | "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz",
2597 | "integrity": "sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ==",
2598 | "dependencies": {
2599 | "punycode": "1.3.2",
2600 | "querystring": "0.2.0"
2601 | }
2602 | },
2603 | "node_modules/util": {
2604 | "version": "0.12.5",
2605 | "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
2606 | "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
2607 | "dependencies": {
2608 | "inherits": "^2.0.3",
2609 | "is-arguments": "^1.0.4",
2610 | "is-generator-function": "^1.0.7",
2611 | "is-typed-array": "^1.1.3",
2612 | "which-typed-array": "^1.1.2"
2613 | }
2614 | },
2615 | "node_modules/util-deprecate": {
2616 | "version": "1.0.2",
2617 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
2618 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
2619 | },
2620 | "node_modules/utils-merge": {
2621 | "version": "1.0.1",
2622 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
2623 | "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
2624 | "engines": {
2625 | "node": ">= 0.4.0"
2626 | }
2627 | },
2628 | "node_modules/uuid": {
2629 | "version": "8.3.2",
2630 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
2631 | "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
2632 | "bin": {
2633 | "uuid": "dist/bin/uuid"
2634 | }
2635 | },
2636 | "node_modules/validate-npm-package-license": {
2637 | "version": "3.0.4",
2638 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
2639 | "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
2640 | "dependencies": {
2641 | "spdx-correct": "^3.0.0",
2642 | "spdx-expression-parse": "^3.0.0"
2643 | }
2644 | },
2645 | "node_modules/vary": {
2646 | "version": "1.1.2",
2647 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
2648 | "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
2649 | "engines": {
2650 | "node": ">= 0.8"
2651 | }
2652 | },
2653 | "node_modules/webidl-conversions": {
2654 | "version": "3.0.1",
2655 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
2656 | "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
2657 | },
2658 | "node_modules/whatwg-url": {
2659 | "version": "5.0.0",
2660 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
2661 | "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
2662 | "dependencies": {
2663 | "tr46": "~0.0.3",
2664 | "webidl-conversions": "^3.0.0"
2665 | }
2666 | },
2667 | "node_modules/which": {
2668 | "version": "2.0.2",
2669 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
2670 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
2671 | "dependencies": {
2672 | "isexe": "^2.0.0"
2673 | },
2674 | "bin": {
2675 | "node-which": "bin/node-which"
2676 | },
2677 | "engines": {
2678 | "node": ">= 8"
2679 | }
2680 | },
2681 | "node_modules/which-typed-array": {
2682 | "version": "1.1.9",
2683 | "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz",
2684 | "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==",
2685 | "dependencies": {
2686 | "available-typed-arrays": "^1.0.5",
2687 | "call-bind": "^1.0.2",
2688 | "for-each": "^0.3.3",
2689 | "gopd": "^1.0.1",
2690 | "has-tostringtag": "^1.0.0",
2691 | "is-typed-array": "^1.1.10"
2692 | },
2693 | "engines": {
2694 | "node": ">= 0.4"
2695 | },
2696 | "funding": {
2697 | "url": "https://github.com/sponsors/ljharb"
2698 | }
2699 | },
2700 | "node_modules/ws": {
2701 | "version": "8.11.0",
2702 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz",
2703 | "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==",
2704 | "engines": {
2705 | "node": ">=10.0.0"
2706 | },
2707 | "peerDependencies": {
2708 | "bufferutil": "^4.0.1",
2709 | "utf-8-validate": "^5.0.2"
2710 | },
2711 | "peerDependenciesMeta": {
2712 | "bufferutil": {
2713 | "optional": true
2714 | },
2715 | "utf-8-validate": {
2716 | "optional": true
2717 | }
2718 | }
2719 | },
2720 | "node_modules/xml2js": {
2721 | "version": "0.5.0",
2722 | "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz",
2723 | "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==",
2724 | "dependencies": {
2725 | "sax": ">=0.6.0",
2726 | "xmlbuilder": "~11.0.0"
2727 | },
2728 | "engines": {
2729 | "node": ">=4.0.0"
2730 | }
2731 | },
2732 | "node_modules/xmlbuilder": {
2733 | "version": "11.0.1",
2734 | "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
2735 | "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
2736 | "engines": {
2737 | "node": ">=4.0"
2738 | }
2739 | },
2740 | "node_modules/yallist": {
2741 | "version": "4.0.0",
2742 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
2743 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
2744 | },
2745 | "node_modules/yargs-parser": {
2746 | "version": "21.1.1",
2747 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
2748 | "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
2749 | "engines": {
2750 | "node": ">=12"
2751 | }
2752 | },
2753 | "node_modules/yocto-queue": {
2754 | "version": "1.0.0",
2755 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz",
2756 | "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==",
2757 | "engines": {
2758 | "node": ">=12.20"
2759 | },
2760 | "funding": {
2761 | "url": "https://github.com/sponsors/sindresorhus"
2762 | }
2763 | }
2764 | },
2765 | "dependencies": {
2766 | "@azure/abort-controller": {
2767 | "version": "1.1.0",
2768 | "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.1.0.tgz",
2769 | "integrity": "sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==",
2770 | "requires": {
2771 | "tslib": "^2.2.0"
2772 | }
2773 | },
2774 | "@azure/core-auth": {
2775 | "version": "1.4.0",
2776 | "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.4.0.tgz",
2777 | "integrity": "sha512-HFrcTgmuSuukRf/EdPmqBrc5l6Q5Uu+2TbuhaKbgaCpP2TfAeiNaQPAadxO+CYBRHGUzIDteMAjFspFLDLnKVQ==",
2778 | "requires": {
2779 | "@azure/abort-controller": "^1.0.0",
2780 | "tslib": "^2.2.0"
2781 | }
2782 | },
2783 | "@azure/core-http": {
2784 | "version": "3.0.1",
2785 | "resolved": "https://registry.npmjs.org/@azure/core-http/-/core-http-3.0.1.tgz",
2786 | "integrity": "sha512-A3x+um3cAPgQe42Lu7Iv/x8/fNjhL/nIoEfqFxfn30EyxK6zC13n+OUxzZBRC0IzQqssqIbt4INf5YG7lYYFtw==",
2787 | "requires": {
2788 | "@azure/abort-controller": "^1.0.0",
2789 | "@azure/core-auth": "^1.3.0",
2790 | "@azure/core-tracing": "1.0.0-preview.13",
2791 | "@azure/core-util": "^1.1.1",
2792 | "@azure/logger": "^1.0.0",
2793 | "@types/node-fetch": "^2.5.0",
2794 | "@types/tunnel": "^0.0.3",
2795 | "form-data": "^4.0.0",
2796 | "node-fetch": "^2.6.7",
2797 | "process": "^0.11.10",
2798 | "tslib": "^2.2.0",
2799 | "tunnel": "^0.0.6",
2800 | "uuid": "^8.3.0",
2801 | "xml2js": "^0.5.0"
2802 | }
2803 | },
2804 | "@azure/core-lro": {
2805 | "version": "2.5.2",
2806 | "resolved": "https://registry.npmjs.org/@azure/core-lro/-/core-lro-2.5.2.tgz",
2807 | "integrity": "sha512-tucUutPhBwCPu6v16KEFYML81npEL6gnT+iwewXvK5ZD55sr0/Vw2jfQETMiKVeARRrXHB2QQ3SpxxGi1zAUWg==",
2808 | "requires": {
2809 | "@azure/abort-controller": "^1.0.0",
2810 | "@azure/core-util": "^1.2.0",
2811 | "@azure/logger": "^1.0.0",
2812 | "tslib": "^2.2.0"
2813 | }
2814 | },
2815 | "@azure/core-paging": {
2816 | "version": "1.5.0",
2817 | "resolved": "https://registry.npmjs.org/@azure/core-paging/-/core-paging-1.5.0.tgz",
2818 | "integrity": "sha512-zqWdVIt+2Z+3wqxEOGzR5hXFZ8MGKK52x4vFLw8n58pR6ZfKRx3EXYTxTaYxYHc/PexPUTyimcTWFJbji9Z6Iw==",
2819 | "requires": {
2820 | "tslib": "^2.2.0"
2821 | }
2822 | },
2823 | "@azure/core-tracing": {
2824 | "version": "1.0.0-preview.13",
2825 | "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.0-preview.13.tgz",
2826 | "integrity": "sha512-KxDlhXyMlh2Jhj2ykX6vNEU0Vou4nHr025KoSEiz7cS3BNiHNaZcdECk/DmLkEB0as5T7b/TpRcehJ5yV6NeXQ==",
2827 | "requires": {
2828 | "@opentelemetry/api": "^1.0.1",
2829 | "tslib": "^2.2.0"
2830 | }
2831 | },
2832 | "@azure/core-util": {
2833 | "version": "1.3.1",
2834 | "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.3.1.tgz",
2835 | "integrity": "sha512-pjfOUAb+MPLODhGuXot/Hy8wUgPD0UTqYkY3BiYcwEETrLcUCVM1t0roIvlQMgvn1lc48TGy5bsonsFpF862Jw==",
2836 | "requires": {
2837 | "@azure/abort-controller": "^1.0.0",
2838 | "tslib": "^2.2.0"
2839 | }
2840 | },
2841 | "@azure/logger": {
2842 | "version": "1.0.4",
2843 | "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.0.4.tgz",
2844 | "integrity": "sha512-ustrPY8MryhloQj7OWGe+HrYx+aoiOxzbXTtgblbV3xwCqpzUK36phH3XNHQKj3EPonyFUuDTfR3qFhTEAuZEg==",
2845 | "requires": {
2846 | "tslib": "^2.2.0"
2847 | }
2848 | },
2849 | "@azure/storage-blob": {
2850 | "version": "12.13.0",
2851 | "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.13.0.tgz",
2852 | "integrity": "sha512-t3Q2lvBMJucgTjQcP5+hvEJMAsJSk0qmAnjDLie2td017IiduZbbC9BOcFfmwzR6y6cJdZOuewLCNFmEx9IrXA==",
2853 | "requires": {
2854 | "@azure/abort-controller": "^1.0.0",
2855 | "@azure/core-http": "^3.0.0",
2856 | "@azure/core-lro": "^2.2.0",
2857 | "@azure/core-paging": "^1.1.1",
2858 | "@azure/core-tracing": "1.0.0-preview.13",
2859 | "@azure/logger": "^1.0.0",
2860 | "events": "^3.0.0",
2861 | "tslib": "^2.2.0"
2862 | }
2863 | },
2864 | "@babel/code-frame": {
2865 | "version": "7.21.4",
2866 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz",
2867 | "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==",
2868 | "requires": {
2869 | "@babel/highlight": "^7.18.6"
2870 | }
2871 | },
2872 | "@babel/helper-validator-identifier": {
2873 | "version": "7.19.1",
2874 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
2875 | "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w=="
2876 | },
2877 | "@babel/highlight": {
2878 | "version": "7.18.6",
2879 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
2880 | "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
2881 | "requires": {
2882 | "@babel/helper-validator-identifier": "^7.18.6",
2883 | "chalk": "^2.0.0",
2884 | "js-tokens": "^4.0.0"
2885 | }
2886 | },
2887 | "@opentelemetry/api": {
2888 | "version": "1.4.1",
2889 | "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.4.1.tgz",
2890 | "integrity": "sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA=="
2891 | },
2892 | "@socket.io/component-emitter": {
2893 | "version": "3.1.0",
2894 | "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz",
2895 | "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg=="
2896 | },
2897 | "@tokenizer/token": {
2898 | "version": "0.3.0",
2899 | "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz",
2900 | "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A=="
2901 | },
2902 | "@types/cookie": {
2903 | "version": "0.4.1",
2904 | "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz",
2905 | "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q=="
2906 | },
2907 | "@types/cors": {
2908 | "version": "2.8.13",
2909 | "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.13.tgz",
2910 | "integrity": "sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==",
2911 | "requires": {
2912 | "@types/node": "*"
2913 | }
2914 | },
2915 | "@types/minimist": {
2916 | "version": "1.2.2",
2917 | "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz",
2918 | "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ=="
2919 | },
2920 | "@types/node": {
2921 | "version": "18.15.11",
2922 | "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz",
2923 | "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q=="
2924 | },
2925 | "@types/node-fetch": {
2926 | "version": "2.6.3",
2927 | "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.3.tgz",
2928 | "integrity": "sha512-ETTL1mOEdq/sxUtgtOhKjyB2Irra4cjxksvcMUR5Zr4n+PxVhsCD9WS46oPbHL3et9Zde7CNRr+WUNlcHvsX+w==",
2929 | "requires": {
2930 | "@types/node": "*",
2931 | "form-data": "^3.0.0"
2932 | },
2933 | "dependencies": {
2934 | "form-data": {
2935 | "version": "3.0.1",
2936 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
2937 | "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
2938 | "requires": {
2939 | "asynckit": "^0.4.0",
2940 | "combined-stream": "^1.0.8",
2941 | "mime-types": "^2.1.12"
2942 | }
2943 | }
2944 | }
2945 | },
2946 | "@types/normalize-package-data": {
2947 | "version": "2.4.1",
2948 | "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz",
2949 | "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw=="
2950 | },
2951 | "@types/tunnel": {
2952 | "version": "0.0.3",
2953 | "resolved": "https://registry.npmjs.org/@types/tunnel/-/tunnel-0.0.3.tgz",
2954 | "integrity": "sha512-sOUTGn6h1SfQ+gbgqC364jLFBw2lnFqkgF3q0WovEHRLMrVD1sd5aufqi/aJObLekJO+Aq5z646U4Oxy6shXMA==",
2955 | "requires": {
2956 | "@types/node": "*"
2957 | }
2958 | },
2959 | "accepts": {
2960 | "version": "1.3.8",
2961 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
2962 | "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
2963 | "requires": {
2964 | "mime-types": "~2.1.34",
2965 | "negotiator": "0.6.3"
2966 | }
2967 | },
2968 | "adm-zip": {
2969 | "version": "0.5.10",
2970 | "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.10.tgz",
2971 | "integrity": "sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ=="
2972 | },
2973 | "ansi-styles": {
2974 | "version": "3.2.1",
2975 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
2976 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
2977 | "requires": {
2978 | "color-convert": "^1.9.0"
2979 | }
2980 | },
2981 | "array-flatten": {
2982 | "version": "1.1.1",
2983 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
2984 | "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
2985 | },
2986 | "arrify": {
2987 | "version": "1.0.1",
2988 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
2989 | "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA=="
2990 | },
2991 | "asynckit": {
2992 | "version": "0.4.0",
2993 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
2994 | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
2995 | },
2996 | "available-typed-arrays": {
2997 | "version": "1.0.5",
2998 | "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
2999 | "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw=="
3000 | },
3001 | "aws-sdk": {
3002 | "version": "2.1346.0",
3003 | "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1346.0.tgz",
3004 | "integrity": "sha512-sLN7DUQ4KGkVCRN9uU5amz+k5qj5HFdwq0itH7WLtFGG63/vG/HnrqHj1G0PyMij0Zz6CGlRBACstWRm0niYhQ==",
3005 | "requires": {
3006 | "buffer": "4.9.2",
3007 | "events": "1.1.1",
3008 | "ieee754": "1.1.13",
3009 | "jmespath": "0.16.0",
3010 | "querystring": "0.2.0",
3011 | "sax": "1.2.1",
3012 | "url": "0.10.3",
3013 | "util": "^0.12.4",
3014 | "uuid": "8.0.0",
3015 | "xml2js": "0.4.19"
3016 | },
3017 | "dependencies": {
3018 | "events": {
3019 | "version": "1.1.1",
3020 | "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
3021 | "integrity": "sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw=="
3022 | },
3023 | "uuid": {
3024 | "version": "8.0.0",
3025 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.0.0.tgz",
3026 | "integrity": "sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw=="
3027 | },
3028 | "xml2js": {
3029 | "version": "0.4.19",
3030 | "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz",
3031 | "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==",
3032 | "requires": {
3033 | "sax": ">=0.6.0",
3034 | "xmlbuilder": "~9.0.1"
3035 | }
3036 | },
3037 | "xmlbuilder": {
3038 | "version": "9.0.7",
3039 | "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz",
3040 | "integrity": "sha512-7YXTQc3P2l9+0rjaUbLwMKRhtmwg1M1eDf6nag7urC7pIPYLD9W/jmzQ4ptRSUbodw5S0jfoGTflLemQibSpeQ=="
3041 | }
3042 | }
3043 | },
3044 | "base64-js": {
3045 | "version": "1.5.1",
3046 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
3047 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
3048 | },
3049 | "base64id": {
3050 | "version": "2.0.0",
3051 | "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz",
3052 | "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog=="
3053 | },
3054 | "big-integer": {
3055 | "version": "1.6.51",
3056 | "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz",
3057 | "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg=="
3058 | },
3059 | "body-parser": {
3060 | "version": "1.20.1",
3061 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
3062 | "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
3063 | "requires": {
3064 | "bytes": "3.1.2",
3065 | "content-type": "~1.0.4",
3066 | "debug": "2.6.9",
3067 | "depd": "2.0.0",
3068 | "destroy": "1.2.0",
3069 | "http-errors": "2.0.0",
3070 | "iconv-lite": "0.4.24",
3071 | "on-finished": "2.4.1",
3072 | "qs": "6.11.0",
3073 | "raw-body": "2.5.1",
3074 | "type-is": "~1.6.18",
3075 | "unpipe": "1.0.0"
3076 | }
3077 | },
3078 | "bplist-parser": {
3079 | "version": "0.2.0",
3080 | "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz",
3081 | "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==",
3082 | "requires": {
3083 | "big-integer": "^1.6.44"
3084 | }
3085 | },
3086 | "buffer": {
3087 | "version": "4.9.2",
3088 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz",
3089 | "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==",
3090 | "requires": {
3091 | "base64-js": "^1.0.2",
3092 | "ieee754": "^1.1.4",
3093 | "isarray": "^1.0.0"
3094 | }
3095 | },
3096 | "bundle-name": {
3097 | "version": "3.0.0",
3098 | "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz",
3099 | "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==",
3100 | "requires": {
3101 | "run-applescript": "^5.0.0"
3102 | }
3103 | },
3104 | "bytes": {
3105 | "version": "3.1.2",
3106 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
3107 | "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
3108 | },
3109 | "call-bind": {
3110 | "version": "1.0.2",
3111 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
3112 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
3113 | "requires": {
3114 | "function-bind": "^1.1.1",
3115 | "get-intrinsic": "^1.0.2"
3116 | }
3117 | },
3118 | "camelcase": {
3119 | "version": "7.0.1",
3120 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz",
3121 | "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw=="
3122 | },
3123 | "camelcase-keys": {
3124 | "version": "8.0.2",
3125 | "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-8.0.2.tgz",
3126 | "integrity": "sha512-qMKdlOfsjlezMqxkUGGMaWWs17i2HoL15tM+wtx8ld4nLrUwU58TFdvyGOz/piNP842KeO8yXvggVQSdQ828NA==",
3127 | "requires": {
3128 | "camelcase": "^7.0.0",
3129 | "map-obj": "^4.3.0",
3130 | "quick-lru": "^6.1.1",
3131 | "type-fest": "^2.13.0"
3132 | },
3133 | "dependencies": {
3134 | "type-fest": {
3135 | "version": "2.19.0",
3136 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
3137 | "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA=="
3138 | }
3139 | }
3140 | },
3141 | "chalk": {
3142 | "version": "2.4.2",
3143 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
3144 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
3145 | "requires": {
3146 | "ansi-styles": "^3.2.1",
3147 | "escape-string-regexp": "^1.0.5",
3148 | "supports-color": "^5.3.0"
3149 | }
3150 | },
3151 | "color-convert": {
3152 | "version": "1.9.3",
3153 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
3154 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
3155 | "requires": {
3156 | "color-name": "1.1.3"
3157 | }
3158 | },
3159 | "color-name": {
3160 | "version": "1.1.3",
3161 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
3162 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
3163 | },
3164 | "combined-stream": {
3165 | "version": "1.0.8",
3166 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
3167 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
3168 | "requires": {
3169 | "delayed-stream": "~1.0.0"
3170 | }
3171 | },
3172 | "content-disposition": {
3173 | "version": "0.5.4",
3174 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
3175 | "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
3176 | "requires": {
3177 | "safe-buffer": "5.2.1"
3178 | }
3179 | },
3180 | "content-type": {
3181 | "version": "1.0.5",
3182 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
3183 | "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="
3184 | },
3185 | "cookie": {
3186 | "version": "0.5.0",
3187 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
3188 | "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw=="
3189 | },
3190 | "cookie-signature": {
3191 | "version": "1.0.6",
3192 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
3193 | "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
3194 | },
3195 | "cors": {
3196 | "version": "2.8.5",
3197 | "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
3198 | "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
3199 | "requires": {
3200 | "object-assign": "^4",
3201 | "vary": "^1"
3202 | }
3203 | },
3204 | "cross-spawn": {
3205 | "version": "7.0.3",
3206 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
3207 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
3208 | "requires": {
3209 | "path-key": "^3.1.0",
3210 | "shebang-command": "^2.0.0",
3211 | "which": "^2.0.1"
3212 | }
3213 | },
3214 | "crypto-random-string": {
3215 | "version": "4.0.0",
3216 | "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz",
3217 | "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==",
3218 | "requires": {
3219 | "type-fest": "^1.0.1"
3220 | },
3221 | "dependencies": {
3222 | "type-fest": {
3223 | "version": "1.4.0",
3224 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
3225 | "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA=="
3226 | }
3227 | }
3228 | },
3229 | "debug": {
3230 | "version": "2.6.9",
3231 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
3232 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
3233 | "requires": {
3234 | "ms": "2.0.0"
3235 | }
3236 | },
3237 | "decamelize": {
3238 | "version": "6.0.0",
3239 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-6.0.0.tgz",
3240 | "integrity": "sha512-Fv96DCsdOgB6mdGl67MT5JaTNKRzrzill5OH5s8bjYJXVlcXyPYGyPsUkWyGV5p1TXI5esYIYMMeDJL0hEIwaA=="
3241 | },
3242 | "decamelize-keys": {
3243 | "version": "1.1.1",
3244 | "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz",
3245 | "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==",
3246 | "requires": {
3247 | "decamelize": "^1.1.0",
3248 | "map-obj": "^1.0.0"
3249 | },
3250 | "dependencies": {
3251 | "decamelize": {
3252 | "version": "1.2.0",
3253 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
3254 | "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA=="
3255 | },
3256 | "map-obj": {
3257 | "version": "1.0.1",
3258 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
3259 | "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg=="
3260 | }
3261 | }
3262 | },
3263 | "default-browser": {
3264 | "version": "4.0.0",
3265 | "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz",
3266 | "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==",
3267 | "requires": {
3268 | "bundle-name": "^3.0.0",
3269 | "default-browser-id": "^3.0.0",
3270 | "execa": "^7.1.1",
3271 | "titleize": "^3.0.0"
3272 | }
3273 | },
3274 | "default-browser-id": {
3275 | "version": "3.0.0",
3276 | "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz",
3277 | "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==",
3278 | "requires": {
3279 | "bplist-parser": "^0.2.0",
3280 | "untildify": "^4.0.0"
3281 | }
3282 | },
3283 | "define-lazy-prop": {
3284 | "version": "3.0.0",
3285 | "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz",
3286 | "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg=="
3287 | },
3288 | "delayed-stream": {
3289 | "version": "1.0.0",
3290 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
3291 | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
3292 | },
3293 | "depd": {
3294 | "version": "2.0.0",
3295 | "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
3296 | "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
3297 | },
3298 | "destroy": {
3299 | "version": "1.2.0",
3300 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
3301 | "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
3302 | },
3303 | "ee-first": {
3304 | "version": "1.1.1",
3305 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
3306 | "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
3307 | },
3308 | "encodeurl": {
3309 | "version": "1.0.2",
3310 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
3311 | "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="
3312 | },
3313 | "engine.io": {
3314 | "version": "6.4.1",
3315 | "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.4.1.tgz",
3316 | "integrity": "sha512-JFYQurD/nbsA5BSPmbaOSLa3tSVj8L6o4srSwXXY3NqE+gGUNmmPTbhn8tjzcCtSqhFgIeqef81ngny8JM25hw==",
3317 | "requires": {
3318 | "@types/cookie": "^0.4.1",
3319 | "@types/cors": "^2.8.12",
3320 | "@types/node": ">=10.0.0",
3321 | "accepts": "~1.3.4",
3322 | "base64id": "2.0.0",
3323 | "cookie": "~0.4.1",
3324 | "cors": "~2.8.5",
3325 | "debug": "~4.3.1",
3326 | "engine.io-parser": "~5.0.3",
3327 | "ws": "~8.11.0"
3328 | },
3329 | "dependencies": {
3330 | "cookie": {
3331 | "version": "0.4.2",
3332 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
3333 | "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA=="
3334 | },
3335 | "debug": {
3336 | "version": "4.3.4",
3337 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
3338 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
3339 | "requires": {
3340 | "ms": "2.1.2"
3341 | }
3342 | },
3343 | "ms": {
3344 | "version": "2.1.2",
3345 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
3346 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
3347 | }
3348 | }
3349 | },
3350 | "engine.io-parser": {
3351 | "version": "5.0.6",
3352 | "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.6.tgz",
3353 | "integrity": "sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw=="
3354 | },
3355 | "error-ex": {
3356 | "version": "1.3.2",
3357 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
3358 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
3359 | "requires": {
3360 | "is-arrayish": "^0.2.1"
3361 | }
3362 | },
3363 | "escape-html": {
3364 | "version": "1.0.3",
3365 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
3366 | "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
3367 | },
3368 | "escape-string-regexp": {
3369 | "version": "1.0.5",
3370 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
3371 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="
3372 | },
3373 | "etag": {
3374 | "version": "1.8.1",
3375 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
3376 | "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="
3377 | },
3378 | "events": {
3379 | "version": "3.3.0",
3380 | "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
3381 | "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q=="
3382 | },
3383 | "execa": {
3384 | "version": "7.1.1",
3385 | "resolved": "https://registry.npmjs.org/execa/-/execa-7.1.1.tgz",
3386 | "integrity": "sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==",
3387 | "requires": {
3388 | "cross-spawn": "^7.0.3",
3389 | "get-stream": "^6.0.1",
3390 | "human-signals": "^4.3.0",
3391 | "is-stream": "^3.0.0",
3392 | "merge-stream": "^2.0.0",
3393 | "npm-run-path": "^5.1.0",
3394 | "onetime": "^6.0.0",
3395 | "signal-exit": "^3.0.7",
3396 | "strip-final-newline": "^3.0.0"
3397 | }
3398 | },
3399 | "express": {
3400 | "version": "4.18.2",
3401 | "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
3402 | "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
3403 | "requires": {
3404 | "accepts": "~1.3.8",
3405 | "array-flatten": "1.1.1",
3406 | "body-parser": "1.20.1",
3407 | "content-disposition": "0.5.4",
3408 | "content-type": "~1.0.4",
3409 | "cookie": "0.5.0",
3410 | "cookie-signature": "1.0.6",
3411 | "debug": "2.6.9",
3412 | "depd": "2.0.0",
3413 | "encodeurl": "~1.0.2",
3414 | "escape-html": "~1.0.3",
3415 | "etag": "~1.8.1",
3416 | "finalhandler": "1.2.0",
3417 | "fresh": "0.5.2",
3418 | "http-errors": "2.0.0",
3419 | "merge-descriptors": "1.0.1",
3420 | "methods": "~1.1.2",
3421 | "on-finished": "2.4.1",
3422 | "parseurl": "~1.3.3",
3423 | "path-to-regexp": "0.1.7",
3424 | "proxy-addr": "~2.0.7",
3425 | "qs": "6.11.0",
3426 | "range-parser": "~1.2.1",
3427 | "safe-buffer": "5.2.1",
3428 | "send": "0.18.0",
3429 | "serve-static": "1.15.0",
3430 | "setprototypeof": "1.2.0",
3431 | "statuses": "2.0.1",
3432 | "type-is": "~1.6.18",
3433 | "utils-merge": "1.0.1",
3434 | "vary": "~1.1.2"
3435 | }
3436 | },
3437 | "file-type": {
3438 | "version": "18.2.1",
3439 | "resolved": "https://registry.npmjs.org/file-type/-/file-type-18.2.1.tgz",
3440 | "integrity": "sha512-Yw5MtnMv7vgD2/6Bjmmuegc8bQEVA9GmAyaR18bMYWKqsWDG9wgYZ1j4I6gNMF5Y5JBDcUcjRQqNQx7Y8uotcg==",
3441 | "requires": {
3442 | "readable-web-to-node-stream": "^3.0.2",
3443 | "strtok3": "^7.0.0",
3444 | "token-types": "^5.0.1"
3445 | }
3446 | },
3447 | "finalhandler": {
3448 | "version": "1.2.0",
3449 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
3450 | "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
3451 | "requires": {
3452 | "debug": "2.6.9",
3453 | "encodeurl": "~1.0.2",
3454 | "escape-html": "~1.0.3",
3455 | "on-finished": "2.4.1",
3456 | "parseurl": "~1.3.3",
3457 | "statuses": "2.0.1",
3458 | "unpipe": "~1.0.0"
3459 | }
3460 | },
3461 | "find-up": {
3462 | "version": "6.3.0",
3463 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz",
3464 | "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==",
3465 | "requires": {
3466 | "locate-path": "^7.1.0",
3467 | "path-exists": "^5.0.0"
3468 | }
3469 | },
3470 | "for-each": {
3471 | "version": "0.3.3",
3472 | "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
3473 | "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
3474 | "requires": {
3475 | "is-callable": "^1.1.3"
3476 | }
3477 | },
3478 | "form-data": {
3479 | "version": "4.0.0",
3480 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
3481 | "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
3482 | "requires": {
3483 | "asynckit": "^0.4.0",
3484 | "combined-stream": "^1.0.8",
3485 | "mime-types": "^2.1.12"
3486 | }
3487 | },
3488 | "forwarded": {
3489 | "version": "0.2.0",
3490 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
3491 | "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="
3492 | },
3493 | "fresh": {
3494 | "version": "0.5.2",
3495 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
3496 | "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="
3497 | },
3498 | "function-bind": {
3499 | "version": "1.1.1",
3500 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
3501 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
3502 | },
3503 | "get-intrinsic": {
3504 | "version": "1.2.0",
3505 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
3506 | "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
3507 | "requires": {
3508 | "function-bind": "^1.1.1",
3509 | "has": "^1.0.3",
3510 | "has-symbols": "^1.0.3"
3511 | }
3512 | },
3513 | "get-stdin": {
3514 | "version": "9.0.0",
3515 | "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz",
3516 | "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA=="
3517 | },
3518 | "get-stream": {
3519 | "version": "6.0.1",
3520 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
3521 | "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="
3522 | },
3523 | "gopd": {
3524 | "version": "1.0.1",
3525 | "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
3526 | "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
3527 | "requires": {
3528 | "get-intrinsic": "^1.1.3"
3529 | }
3530 | },
3531 | "hard-rejection": {
3532 | "version": "2.1.0",
3533 | "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz",
3534 | "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA=="
3535 | },
3536 | "has": {
3537 | "version": "1.0.3",
3538 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
3539 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
3540 | "requires": {
3541 | "function-bind": "^1.1.1"
3542 | }
3543 | },
3544 | "has-flag": {
3545 | "version": "3.0.0",
3546 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
3547 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="
3548 | },
3549 | "has-symbols": {
3550 | "version": "1.0.3",
3551 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
3552 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
3553 | },
3554 | "has-tostringtag": {
3555 | "version": "1.0.0",
3556 | "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
3557 | "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
3558 | "requires": {
3559 | "has-symbols": "^1.0.2"
3560 | }
3561 | },
3562 | "hosted-git-info": {
3563 | "version": "5.2.1",
3564 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz",
3565 | "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==",
3566 | "requires": {
3567 | "lru-cache": "^7.5.1"
3568 | }
3569 | },
3570 | "http-errors": {
3571 | "version": "2.0.0",
3572 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
3573 | "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
3574 | "requires": {
3575 | "depd": "2.0.0",
3576 | "inherits": "2.0.4",
3577 | "setprototypeof": "1.2.0",
3578 | "statuses": "2.0.1",
3579 | "toidentifier": "1.0.1"
3580 | }
3581 | },
3582 | "human-signals": {
3583 | "version": "4.3.1",
3584 | "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz",
3585 | "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ=="
3586 | },
3587 | "iconv-lite": {
3588 | "version": "0.4.24",
3589 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
3590 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
3591 | "requires": {
3592 | "safer-buffer": ">= 2.1.2 < 3"
3593 | }
3594 | },
3595 | "ieee754": {
3596 | "version": "1.1.13",
3597 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
3598 | "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg=="
3599 | },
3600 | "indent-string": {
3601 | "version": "5.0.0",
3602 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz",
3603 | "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg=="
3604 | },
3605 | "inherits": {
3606 | "version": "2.0.4",
3607 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
3608 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
3609 | },
3610 | "ipaddr.js": {
3611 | "version": "1.9.1",
3612 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
3613 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
3614 | },
3615 | "is-arguments": {
3616 | "version": "1.1.1",
3617 | "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
3618 | "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
3619 | "requires": {
3620 | "call-bind": "^1.0.2",
3621 | "has-tostringtag": "^1.0.0"
3622 | }
3623 | },
3624 | "is-arrayish": {
3625 | "version": "0.2.1",
3626 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
3627 | "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="
3628 | },
3629 | "is-callable": {
3630 | "version": "1.2.7",
3631 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
3632 | "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA=="
3633 | },
3634 | "is-core-module": {
3635 | "version": "2.12.0",
3636 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz",
3637 | "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==",
3638 | "requires": {
3639 | "has": "^1.0.3"
3640 | }
3641 | },
3642 | "is-docker": {
3643 | "version": "3.0.0",
3644 | "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
3645 | "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ=="
3646 | },
3647 | "is-generator-function": {
3648 | "version": "1.0.10",
3649 | "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
3650 | "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
3651 | "requires": {
3652 | "has-tostringtag": "^1.0.0"
3653 | }
3654 | },
3655 | "is-inside-container": {
3656 | "version": "1.0.0",
3657 | "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz",
3658 | "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==",
3659 | "requires": {
3660 | "is-docker": "^3.0.0"
3661 | }
3662 | },
3663 | "is-plain-obj": {
3664 | "version": "1.1.0",
3665 | "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
3666 | "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg=="
3667 | },
3668 | "is-stream": {
3669 | "version": "3.0.0",
3670 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
3671 | "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA=="
3672 | },
3673 | "is-typed-array": {
3674 | "version": "1.1.10",
3675 | "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz",
3676 | "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==",
3677 | "requires": {
3678 | "available-typed-arrays": "^1.0.5",
3679 | "call-bind": "^1.0.2",
3680 | "for-each": "^0.3.3",
3681 | "gopd": "^1.0.1",
3682 | "has-tostringtag": "^1.0.0"
3683 | }
3684 | },
3685 | "is-wsl": {
3686 | "version": "2.2.0",
3687 | "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
3688 | "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
3689 | "requires": {
3690 | "is-docker": "^2.0.0"
3691 | },
3692 | "dependencies": {
3693 | "is-docker": {
3694 | "version": "2.2.1",
3695 | "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
3696 | "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ=="
3697 | }
3698 | }
3699 | },
3700 | "isarray": {
3701 | "version": "1.0.0",
3702 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
3703 | "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
3704 | },
3705 | "isexe": {
3706 | "version": "2.0.0",
3707 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
3708 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
3709 | },
3710 | "jmespath": {
3711 | "version": "0.16.0",
3712 | "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.16.0.tgz",
3713 | "integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw=="
3714 | },
3715 | "js-tokens": {
3716 | "version": "4.0.0",
3717 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
3718 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
3719 | },
3720 | "json-parse-even-better-errors": {
3721 | "version": "2.3.1",
3722 | "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
3723 | "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
3724 | },
3725 | "kind-of": {
3726 | "version": "6.0.3",
3727 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
3728 | "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="
3729 | },
3730 | "lines-and-columns": {
3731 | "version": "1.2.4",
3732 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
3733 | "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
3734 | },
3735 | "locate-path": {
3736 | "version": "7.2.0",
3737 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz",
3738 | "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==",
3739 | "requires": {
3740 | "p-locate": "^6.0.0"
3741 | }
3742 | },
3743 | "lru-cache": {
3744 | "version": "7.18.3",
3745 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz",
3746 | "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA=="
3747 | },
3748 | "map-obj": {
3749 | "version": "4.3.0",
3750 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz",
3751 | "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ=="
3752 | },
3753 | "media-typer": {
3754 | "version": "0.3.0",
3755 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
3756 | "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ=="
3757 | },
3758 | "meow": {
3759 | "version": "11.0.0",
3760 | "resolved": "https://registry.npmjs.org/meow/-/meow-11.0.0.tgz",
3761 | "integrity": "sha512-Cl0yeeIrko6d94KpUo1M+0X1sB14ikoaqlIGuTH1fW4I+E3+YljL54/hb/BWmVfrV9tTV9zU04+xjw08Fh2WkA==",
3762 | "requires": {
3763 | "@types/minimist": "^1.2.2",
3764 | "camelcase-keys": "^8.0.2",
3765 | "decamelize": "^6.0.0",
3766 | "decamelize-keys": "^1.1.0",
3767 | "hard-rejection": "^2.1.0",
3768 | "minimist-options": "4.1.0",
3769 | "normalize-package-data": "^4.0.1",
3770 | "read-pkg-up": "^9.1.0",
3771 | "redent": "^4.0.0",
3772 | "trim-newlines": "^4.0.2",
3773 | "type-fest": "^3.1.0",
3774 | "yargs-parser": "^21.1.1"
3775 | }
3776 | },
3777 | "merge-descriptors": {
3778 | "version": "1.0.1",
3779 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
3780 | "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
3781 | },
3782 | "merge-stream": {
3783 | "version": "2.0.0",
3784 | "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
3785 | "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
3786 | },
3787 | "methods": {
3788 | "version": "1.1.2",
3789 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
3790 | "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w=="
3791 | },
3792 | "mime": {
3793 | "version": "1.6.0",
3794 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
3795 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
3796 | },
3797 | "mime-db": {
3798 | "version": "1.52.0",
3799 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
3800 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
3801 | },
3802 | "mime-types": {
3803 | "version": "2.1.35",
3804 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
3805 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
3806 | "requires": {
3807 | "mime-db": "1.52.0"
3808 | }
3809 | },
3810 | "mimic-fn": {
3811 | "version": "4.0.0",
3812 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
3813 | "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw=="
3814 | },
3815 | "min-indent": {
3816 | "version": "1.0.1",
3817 | "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
3818 | "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg=="
3819 | },
3820 | "minimist-options": {
3821 | "version": "4.1.0",
3822 | "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz",
3823 | "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==",
3824 | "requires": {
3825 | "arrify": "^1.0.1",
3826 | "is-plain-obj": "^1.1.0",
3827 | "kind-of": "^6.0.3"
3828 | }
3829 | },
3830 | "mri": {
3831 | "version": "1.2.0",
3832 | "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
3833 | "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA=="
3834 | },
3835 | "ms": {
3836 | "version": "2.0.0",
3837 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
3838 | "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
3839 | },
3840 | "negotiator": {
3841 | "version": "0.6.3",
3842 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
3843 | "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
3844 | },
3845 | "node-fetch": {
3846 | "version": "2.6.9",
3847 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz",
3848 | "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==",
3849 | "requires": {
3850 | "whatwg-url": "^5.0.0"
3851 | }
3852 | },
3853 | "normalize-package-data": {
3854 | "version": "4.0.1",
3855 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-4.0.1.tgz",
3856 | "integrity": "sha512-EBk5QKKuocMJhB3BILuKhmaPjI8vNRSpIfO9woLC6NyHVkKKdVEdAO1mrT0ZfxNR1lKwCcTkuZfmGIFdizZ8Pg==",
3857 | "requires": {
3858 | "hosted-git-info": "^5.0.0",
3859 | "is-core-module": "^2.8.1",
3860 | "semver": "^7.3.5",
3861 | "validate-npm-package-license": "^3.0.4"
3862 | }
3863 | },
3864 | "npm-run-path": {
3865 | "version": "5.1.0",
3866 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz",
3867 | "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==",
3868 | "requires": {
3869 | "path-key": "^4.0.0"
3870 | },
3871 | "dependencies": {
3872 | "path-key": {
3873 | "version": "4.0.0",
3874 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
3875 | "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ=="
3876 | }
3877 | }
3878 | },
3879 | "object-assign": {
3880 | "version": "4.1.1",
3881 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
3882 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="
3883 | },
3884 | "object-inspect": {
3885 | "version": "1.12.3",
3886 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
3887 | "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g=="
3888 | },
3889 | "on-finished": {
3890 | "version": "2.4.1",
3891 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
3892 | "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
3893 | "requires": {
3894 | "ee-first": "1.1.1"
3895 | }
3896 | },
3897 | "onetime": {
3898 | "version": "6.0.0",
3899 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
3900 | "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
3901 | "requires": {
3902 | "mimic-fn": "^4.0.0"
3903 | }
3904 | },
3905 | "open": {
3906 | "version": "9.1.0",
3907 | "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz",
3908 | "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==",
3909 | "requires": {
3910 | "default-browser": "^4.0.0",
3911 | "define-lazy-prop": "^3.0.0",
3912 | "is-inside-container": "^1.0.0",
3913 | "is-wsl": "^2.2.0"
3914 | }
3915 | },
3916 | "open-cli": {
3917 | "version": "7.2.0",
3918 | "resolved": "https://registry.npmjs.org/open-cli/-/open-cli-7.2.0.tgz",
3919 | "integrity": "sha512-1ANJc8oJ92FiaNZ0o2Hw4WBvDJoXs1P74aFMtpAvlbkIPV4uPcQvDz7V6kMOrsZkmB4tglrHVMlLQaafuUuxXg==",
3920 | "requires": {
3921 | "file-type": "^18.2.1",
3922 | "get-stdin": "^9.0.0",
3923 | "meow": "^11.0.0",
3924 | "open": "^9.0.0",
3925 | "tempy": "^3.0.0"
3926 | }
3927 | },
3928 | "p-limit": {
3929 | "version": "4.0.0",
3930 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz",
3931 | "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==",
3932 | "requires": {
3933 | "yocto-queue": "^1.0.0"
3934 | }
3935 | },
3936 | "p-locate": {
3937 | "version": "6.0.0",
3938 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz",
3939 | "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==",
3940 | "requires": {
3941 | "p-limit": "^4.0.0"
3942 | }
3943 | },
3944 | "parse-json": {
3945 | "version": "5.2.0",
3946 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
3947 | "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
3948 | "requires": {
3949 | "@babel/code-frame": "^7.0.0",
3950 | "error-ex": "^1.3.1",
3951 | "json-parse-even-better-errors": "^2.3.0",
3952 | "lines-and-columns": "^1.1.6"
3953 | }
3954 | },
3955 | "parseurl": {
3956 | "version": "1.3.3",
3957 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
3958 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
3959 | },
3960 | "path-exists": {
3961 | "version": "5.0.0",
3962 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz",
3963 | "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ=="
3964 | },
3965 | "path-key": {
3966 | "version": "3.1.1",
3967 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
3968 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
3969 | },
3970 | "path-to-regexp": {
3971 | "version": "0.1.7",
3972 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
3973 | "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
3974 | },
3975 | "peek-readable": {
3976 | "version": "5.0.0",
3977 | "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.0.0.tgz",
3978 | "integrity": "sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A=="
3979 | },
3980 | "process": {
3981 | "version": "0.11.10",
3982 | "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
3983 | "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A=="
3984 | },
3985 | "proxy-addr": {
3986 | "version": "2.0.7",
3987 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
3988 | "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
3989 | "requires": {
3990 | "forwarded": "0.2.0",
3991 | "ipaddr.js": "1.9.1"
3992 | }
3993 | },
3994 | "punycode": {
3995 | "version": "1.3.2",
3996 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
3997 | "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw=="
3998 | },
3999 | "qs": {
4000 | "version": "6.11.0",
4001 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
4002 | "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
4003 | "requires": {
4004 | "side-channel": "^1.0.4"
4005 | }
4006 | },
4007 | "querystring": {
4008 | "version": "0.2.0",
4009 | "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
4010 | "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g=="
4011 | },
4012 | "quick-lru": {
4013 | "version": "6.1.1",
4014 | "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-6.1.1.tgz",
4015 | "integrity": "sha512-S27GBT+F0NTRiehtbrgaSE1idUAJ5bX8dPAQTdylEyNlrdcH5X4Lz7Edz3DYzecbsCluD5zO8ZNEe04z3D3u6Q=="
4016 | },
4017 | "range-parser": {
4018 | "version": "1.2.1",
4019 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
4020 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
4021 | },
4022 | "raw-body": {
4023 | "version": "2.5.1",
4024 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
4025 | "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
4026 | "requires": {
4027 | "bytes": "3.1.2",
4028 | "http-errors": "2.0.0",
4029 | "iconv-lite": "0.4.24",
4030 | "unpipe": "1.0.0"
4031 | }
4032 | },
4033 | "rclone.js": {
4034 | "version": "0.6.6",
4035 | "resolved": "https://registry.npmjs.org/rclone.js/-/rclone.js-0.6.6.tgz",
4036 | "integrity": "sha512-Dxh34cab/fNjFq5SSm0fYLNkGzG2cQSBy782UW9WwxJCEiVO4cGXkvaXcNlgv817dK8K8PuQ+NHUqSAMMhWujQ==",
4037 | "requires": {
4038 | "adm-zip": "^0.5.9",
4039 | "mri": "^1.2.0"
4040 | }
4041 | },
4042 | "read-pkg": {
4043 | "version": "7.1.0",
4044 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-7.1.0.tgz",
4045 | "integrity": "sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==",
4046 | "requires": {
4047 | "@types/normalize-package-data": "^2.4.1",
4048 | "normalize-package-data": "^3.0.2",
4049 | "parse-json": "^5.2.0",
4050 | "type-fest": "^2.0.0"
4051 | },
4052 | "dependencies": {
4053 | "hosted-git-info": {
4054 | "version": "4.1.0",
4055 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
4056 | "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
4057 | "requires": {
4058 | "lru-cache": "^6.0.0"
4059 | }
4060 | },
4061 | "lru-cache": {
4062 | "version": "6.0.0",
4063 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
4064 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
4065 | "requires": {
4066 | "yallist": "^4.0.0"
4067 | }
4068 | },
4069 | "normalize-package-data": {
4070 | "version": "3.0.3",
4071 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
4072 | "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==",
4073 | "requires": {
4074 | "hosted-git-info": "^4.0.1",
4075 | "is-core-module": "^2.5.0",
4076 | "semver": "^7.3.4",
4077 | "validate-npm-package-license": "^3.0.1"
4078 | }
4079 | },
4080 | "type-fest": {
4081 | "version": "2.19.0",
4082 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
4083 | "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA=="
4084 | }
4085 | }
4086 | },
4087 | "read-pkg-up": {
4088 | "version": "9.1.0",
4089 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-9.1.0.tgz",
4090 | "integrity": "sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==",
4091 | "requires": {
4092 | "find-up": "^6.3.0",
4093 | "read-pkg": "^7.1.0",
4094 | "type-fest": "^2.5.0"
4095 | },
4096 | "dependencies": {
4097 | "type-fest": {
4098 | "version": "2.19.0",
4099 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
4100 | "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA=="
4101 | }
4102 | }
4103 | },
4104 | "readable-stream": {
4105 | "version": "3.6.2",
4106 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
4107 | "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
4108 | "requires": {
4109 | "inherits": "^2.0.3",
4110 | "string_decoder": "^1.1.1",
4111 | "util-deprecate": "^1.0.1"
4112 | }
4113 | },
4114 | "readable-web-to-node-stream": {
4115 | "version": "3.0.2",
4116 | "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz",
4117 | "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==",
4118 | "requires": {
4119 | "readable-stream": "^3.6.0"
4120 | }
4121 | },
4122 | "redent": {
4123 | "version": "4.0.0",
4124 | "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz",
4125 | "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==",
4126 | "requires": {
4127 | "indent-string": "^5.0.0",
4128 | "strip-indent": "^4.0.0"
4129 | }
4130 | },
4131 | "run-applescript": {
4132 | "version": "5.0.0",
4133 | "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz",
4134 | "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==",
4135 | "requires": {
4136 | "execa": "^5.0.0"
4137 | },
4138 | "dependencies": {
4139 | "execa": {
4140 | "version": "5.1.1",
4141 | "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
4142 | "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
4143 | "requires": {
4144 | "cross-spawn": "^7.0.3",
4145 | "get-stream": "^6.0.0",
4146 | "human-signals": "^2.1.0",
4147 | "is-stream": "^2.0.0",
4148 | "merge-stream": "^2.0.0",
4149 | "npm-run-path": "^4.0.1",
4150 | "onetime": "^5.1.2",
4151 | "signal-exit": "^3.0.3",
4152 | "strip-final-newline": "^2.0.0"
4153 | }
4154 | },
4155 | "human-signals": {
4156 | "version": "2.1.0",
4157 | "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
4158 | "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw=="
4159 | },
4160 | "is-stream": {
4161 | "version": "2.0.1",
4162 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
4163 | "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="
4164 | },
4165 | "mimic-fn": {
4166 | "version": "2.1.0",
4167 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
4168 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="
4169 | },
4170 | "npm-run-path": {
4171 | "version": "4.0.1",
4172 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
4173 | "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
4174 | "requires": {
4175 | "path-key": "^3.0.0"
4176 | }
4177 | },
4178 | "onetime": {
4179 | "version": "5.1.2",
4180 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
4181 | "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
4182 | "requires": {
4183 | "mimic-fn": "^2.1.0"
4184 | }
4185 | },
4186 | "strip-final-newline": {
4187 | "version": "2.0.0",
4188 | "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
4189 | "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA=="
4190 | }
4191 | }
4192 | },
4193 | "safe-buffer": {
4194 | "version": "5.2.1",
4195 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
4196 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
4197 | },
4198 | "safer-buffer": {
4199 | "version": "2.1.2",
4200 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
4201 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
4202 | },
4203 | "sax": {
4204 | "version": "1.2.1",
4205 | "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz",
4206 | "integrity": "sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA=="
4207 | },
4208 | "semver": {
4209 | "version": "7.5.0",
4210 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz",
4211 | "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==",
4212 | "requires": {
4213 | "lru-cache": "^6.0.0"
4214 | },
4215 | "dependencies": {
4216 | "lru-cache": {
4217 | "version": "6.0.0",
4218 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
4219 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
4220 | "requires": {
4221 | "yallist": "^4.0.0"
4222 | }
4223 | }
4224 | }
4225 | },
4226 | "send": {
4227 | "version": "0.18.0",
4228 | "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
4229 | "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
4230 | "requires": {
4231 | "debug": "2.6.9",
4232 | "depd": "2.0.0",
4233 | "destroy": "1.2.0",
4234 | "encodeurl": "~1.0.2",
4235 | "escape-html": "~1.0.3",
4236 | "etag": "~1.8.1",
4237 | "fresh": "0.5.2",
4238 | "http-errors": "2.0.0",
4239 | "mime": "1.6.0",
4240 | "ms": "2.1.3",
4241 | "on-finished": "2.4.1",
4242 | "range-parser": "~1.2.1",
4243 | "statuses": "2.0.1"
4244 | },
4245 | "dependencies": {
4246 | "ms": {
4247 | "version": "2.1.3",
4248 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
4249 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
4250 | }
4251 | }
4252 | },
4253 | "serve-static": {
4254 | "version": "1.15.0",
4255 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
4256 | "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
4257 | "requires": {
4258 | "encodeurl": "~1.0.2",
4259 | "escape-html": "~1.0.3",
4260 | "parseurl": "~1.3.3",
4261 | "send": "0.18.0"
4262 | }
4263 | },
4264 | "setprototypeof": {
4265 | "version": "1.2.0",
4266 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
4267 | "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
4268 | },
4269 | "shebang-command": {
4270 | "version": "2.0.0",
4271 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
4272 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
4273 | "requires": {
4274 | "shebang-regex": "^3.0.0"
4275 | }
4276 | },
4277 | "shebang-regex": {
4278 | "version": "3.0.0",
4279 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
4280 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
4281 | },
4282 | "side-channel": {
4283 | "version": "1.0.4",
4284 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
4285 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
4286 | "requires": {
4287 | "call-bind": "^1.0.0",
4288 | "get-intrinsic": "^1.0.2",
4289 | "object-inspect": "^1.9.0"
4290 | }
4291 | },
4292 | "signal-exit": {
4293 | "version": "3.0.7",
4294 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
4295 | "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
4296 | },
4297 | "socket.io": {
4298 | "version": "4.6.1",
4299 | "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.6.1.tgz",
4300 | "integrity": "sha512-KMcaAi4l/8+xEjkRICl6ak8ySoxsYG+gG6/XfRCPJPQ/haCRIJBTL4wIl8YCsmtaBovcAXGLOShyVWQ/FG8GZA==",
4301 | "requires": {
4302 | "accepts": "~1.3.4",
4303 | "base64id": "~2.0.0",
4304 | "debug": "~4.3.2",
4305 | "engine.io": "~6.4.1",
4306 | "socket.io-adapter": "~2.5.2",
4307 | "socket.io-parser": "~4.2.1"
4308 | },
4309 | "dependencies": {
4310 | "debug": {
4311 | "version": "4.3.4",
4312 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
4313 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
4314 | "requires": {
4315 | "ms": "2.1.2"
4316 | }
4317 | },
4318 | "ms": {
4319 | "version": "2.1.2",
4320 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
4321 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
4322 | }
4323 | }
4324 | },
4325 | "socket.io-adapter": {
4326 | "version": "2.5.2",
4327 | "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz",
4328 | "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==",
4329 | "requires": {
4330 | "ws": "~8.11.0"
4331 | }
4332 | },
4333 | "socket.io-parser": {
4334 | "version": "4.2.2",
4335 | "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.2.tgz",
4336 | "integrity": "sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw==",
4337 | "requires": {
4338 | "@socket.io/component-emitter": "~3.1.0",
4339 | "debug": "~4.3.1"
4340 | },
4341 | "dependencies": {
4342 | "debug": {
4343 | "version": "4.3.4",
4344 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
4345 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
4346 | "requires": {
4347 | "ms": "2.1.2"
4348 | }
4349 | },
4350 | "ms": {
4351 | "version": "2.1.2",
4352 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
4353 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
4354 | }
4355 | }
4356 | },
4357 | "spdx-correct": {
4358 | "version": "3.2.0",
4359 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
4360 | "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
4361 | "requires": {
4362 | "spdx-expression-parse": "^3.0.0",
4363 | "spdx-license-ids": "^3.0.0"
4364 | }
4365 | },
4366 | "spdx-exceptions": {
4367 | "version": "2.3.0",
4368 | "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
4369 | "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A=="
4370 | },
4371 | "spdx-expression-parse": {
4372 | "version": "3.0.1",
4373 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
4374 | "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
4375 | "requires": {
4376 | "spdx-exceptions": "^2.1.0",
4377 | "spdx-license-ids": "^3.0.0"
4378 | }
4379 | },
4380 | "spdx-license-ids": {
4381 | "version": "3.0.13",
4382 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz",
4383 | "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w=="
4384 | },
4385 | "statuses": {
4386 | "version": "2.0.1",
4387 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
4388 | "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
4389 | },
4390 | "string_decoder": {
4391 | "version": "1.3.0",
4392 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
4393 | "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
4394 | "requires": {
4395 | "safe-buffer": "~5.2.0"
4396 | }
4397 | },
4398 | "strip-final-newline": {
4399 | "version": "3.0.0",
4400 | "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
4401 | "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw=="
4402 | },
4403 | "strip-indent": {
4404 | "version": "4.0.0",
4405 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz",
4406 | "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==",
4407 | "requires": {
4408 | "min-indent": "^1.0.1"
4409 | }
4410 | },
4411 | "strtok3": {
4412 | "version": "7.0.0",
4413 | "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-7.0.0.tgz",
4414 | "integrity": "sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==",
4415 | "requires": {
4416 | "@tokenizer/token": "^0.3.0",
4417 | "peek-readable": "^5.0.0"
4418 | }
4419 | },
4420 | "supports-color": {
4421 | "version": "5.5.0",
4422 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
4423 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
4424 | "requires": {
4425 | "has-flag": "^3.0.0"
4426 | }
4427 | },
4428 | "temp-dir": {
4429 | "version": "2.0.0",
4430 | "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz",
4431 | "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg=="
4432 | },
4433 | "tempy": {
4434 | "version": "3.0.0",
4435 | "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.0.0.tgz",
4436 | "integrity": "sha512-B2I9X7+o2wOaW4r/CWMkpOO9mdiTRCxXNgob6iGvPmfPWgH/KyUD6Uy5crtWBxIBe3YrNZKR2lSzv1JJKWD4vA==",
4437 | "requires": {
4438 | "is-stream": "^3.0.0",
4439 | "temp-dir": "^2.0.0",
4440 | "type-fest": "^2.12.2",
4441 | "unique-string": "^3.0.0"
4442 | },
4443 | "dependencies": {
4444 | "type-fest": {
4445 | "version": "2.19.0",
4446 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
4447 | "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA=="
4448 | }
4449 | }
4450 | },
4451 | "titleize": {
4452 | "version": "3.0.0",
4453 | "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz",
4454 | "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ=="
4455 | },
4456 | "toidentifier": {
4457 | "version": "1.0.1",
4458 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
4459 | "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
4460 | },
4461 | "token-types": {
4462 | "version": "5.0.1",
4463 | "resolved": "https://registry.npmjs.org/token-types/-/token-types-5.0.1.tgz",
4464 | "integrity": "sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg==",
4465 | "requires": {
4466 | "@tokenizer/token": "^0.3.0",
4467 | "ieee754": "^1.2.1"
4468 | },
4469 | "dependencies": {
4470 | "ieee754": {
4471 | "version": "1.2.1",
4472 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
4473 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
4474 | }
4475 | }
4476 | },
4477 | "tr46": {
4478 | "version": "0.0.3",
4479 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
4480 | "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
4481 | },
4482 | "trim-newlines": {
4483 | "version": "4.1.1",
4484 | "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.1.1.tgz",
4485 | "integrity": "sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ=="
4486 | },
4487 | "tslib": {
4488 | "version": "2.5.0",
4489 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
4490 | "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
4491 | },
4492 | "tunnel": {
4493 | "version": "0.0.6",
4494 | "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
4495 | "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg=="
4496 | },
4497 | "type-fest": {
4498 | "version": "3.8.0",
4499 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.8.0.tgz",
4500 | "integrity": "sha512-FVNSzGQz9Th+/9R6Lvv7WIAkstylfHN2/JYxkyhhmKFYh9At2DST8t6L6Lref9eYO8PXFTfG9Sg1Agg0K3vq3Q=="
4501 | },
4502 | "type-is": {
4503 | "version": "1.6.18",
4504 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
4505 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
4506 | "requires": {
4507 | "media-typer": "0.3.0",
4508 | "mime-types": "~2.1.24"
4509 | }
4510 | },
4511 | "unique-string": {
4512 | "version": "3.0.0",
4513 | "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz",
4514 | "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==",
4515 | "requires": {
4516 | "crypto-random-string": "^4.0.0"
4517 | }
4518 | },
4519 | "unpipe": {
4520 | "version": "1.0.0",
4521 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
4522 | "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="
4523 | },
4524 | "untildify": {
4525 | "version": "4.0.0",
4526 | "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz",
4527 | "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw=="
4528 | },
4529 | "url": {
4530 | "version": "0.10.3",
4531 | "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz",
4532 | "integrity": "sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ==",
4533 | "requires": {
4534 | "punycode": "1.3.2",
4535 | "querystring": "0.2.0"
4536 | }
4537 | },
4538 | "util": {
4539 | "version": "0.12.5",
4540 | "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
4541 | "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
4542 | "requires": {
4543 | "inherits": "^2.0.3",
4544 | "is-arguments": "^1.0.4",
4545 | "is-generator-function": "^1.0.7",
4546 | "is-typed-array": "^1.1.3",
4547 | "which-typed-array": "^1.1.2"
4548 | }
4549 | },
4550 | "util-deprecate": {
4551 | "version": "1.0.2",
4552 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
4553 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
4554 | },
4555 | "utils-merge": {
4556 | "version": "1.0.1",
4557 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
4558 | "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA=="
4559 | },
4560 | "uuid": {
4561 | "version": "8.3.2",
4562 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
4563 | "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
4564 | },
4565 | "validate-npm-package-license": {
4566 | "version": "3.0.4",
4567 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
4568 | "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
4569 | "requires": {
4570 | "spdx-correct": "^3.0.0",
4571 | "spdx-expression-parse": "^3.0.0"
4572 | }
4573 | },
4574 | "vary": {
4575 | "version": "1.1.2",
4576 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
4577 | "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="
4578 | },
4579 | "webidl-conversions": {
4580 | "version": "3.0.1",
4581 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
4582 | "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
4583 | },
4584 | "whatwg-url": {
4585 | "version": "5.0.0",
4586 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
4587 | "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
4588 | "requires": {
4589 | "tr46": "~0.0.3",
4590 | "webidl-conversions": "^3.0.0"
4591 | }
4592 | },
4593 | "which": {
4594 | "version": "2.0.2",
4595 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
4596 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
4597 | "requires": {
4598 | "isexe": "^2.0.0"
4599 | }
4600 | },
4601 | "which-typed-array": {
4602 | "version": "1.1.9",
4603 | "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz",
4604 | "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==",
4605 | "requires": {
4606 | "available-typed-arrays": "^1.0.5",
4607 | "call-bind": "^1.0.2",
4608 | "for-each": "^0.3.3",
4609 | "gopd": "^1.0.1",
4610 | "has-tostringtag": "^1.0.0",
4611 | "is-typed-array": "^1.1.10"
4612 | }
4613 | },
4614 | "ws": {
4615 | "version": "8.11.0",
4616 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz",
4617 | "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==",
4618 | "requires": {}
4619 | },
4620 | "xml2js": {
4621 | "version": "0.5.0",
4622 | "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz",
4623 | "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==",
4624 | "requires": {
4625 | "sax": ">=0.6.0",
4626 | "xmlbuilder": "~11.0.0"
4627 | }
4628 | },
4629 | "xmlbuilder": {
4630 | "version": "11.0.1",
4631 | "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
4632 | "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA=="
4633 | },
4634 | "yallist": {
4635 | "version": "4.0.0",
4636 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
4637 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
4638 | },
4639 | "yargs-parser": {
4640 | "version": "21.1.1",
4641 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
4642 | "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw=="
4643 | },
4644 | "yocto-queue": {
4645 | "version": "1.0.0",
4646 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz",
4647 | "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g=="
4648 | }
4649 | }
4650 | }
4651 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "cloudshift",
3 | "version": "1.0.0",
4 | "description": "A cloud-to-cloud migration tool.",
5 | "main": "index.js",
6 | "scripts": {
7 | "start": "open-cli http://localhost:3000 & NODE_ENV=production node server/server.js"
8 | },
9 | "repository": {
10 | "type": "git",
11 | "url": "git+https://github.com/oslabs-beta/CloudShift.git"
12 | },
13 | "keywords": [
14 | "cloud",
15 | "migration",
16 | "aws",
17 | "cloudshift",
18 | "cloudflare",
19 | "r2",
20 | "s3"
21 | ],
22 | "author": "Andrew Altman, Ansel Santos, Jamey Huffnagle, Philip Luc, Zachary de Jesus",
23 | "license": "(MIT)",
24 | "bugs": {
25 | "url": "https://github.com/oslabs-beta/CloudShift/issues"
26 | },
27 | "homepage": "https://github.com/oslabs-beta/CloudShift#readme",
28 | "dependencies": {
29 | "@azure/storage-blob": "12.13.0",
30 | "aws-sdk": "2.1346.0",
31 | "express": "4.18.2",
32 | "open-cli": "7.2.0",
33 | "rclone.js": "0.6.6",
34 | "socket.io": "4.6.1"
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/server/controllers/assignController.js:
--------------------------------------------------------------------------------
1 | const AWS = require("aws-sdk");
2 |
3 | const getBucketLoc = async (req, res, next) => {
4 | if (
5 | req.body.originProvider === "AWS" ||
6 | req.body.destinationProvider === "AWS"
7 | ) {
8 | if (req.body.originProvider === "AWS") {
9 | try {
10 | AWS.config.update({
11 | accessKeyId: req.body.originAccessId,
12 | secretAccessKey: req.body.originSecretKey,
13 | });
14 | const s3 = new AWS.S3();
15 | const data = await s3
16 | .getBucketLocation({ Bucket: req.body.originBucket })
17 | .promise();
18 | res.locals.awsRegion = data.LocationConstraint;
19 | //NEED TO RETURN US-EAST-1 IF STRING IS ''.
20 | if (res.locals.awsRegion === "") res.locals.awsRegion = "us-east-1";
21 | } catch (err) {
22 | return next({
23 | log: `Unkown error:, ${err}`,
24 | message: "Unknown error when getting bucket location.",
25 | });
26 | }
27 | }
28 | if (req.body.destinationProvider === "AWS") {
29 | try {
30 | AWS.config.update({
31 | accessKeyId: req.body.destAccessId,
32 | secretAccessKey: req.body.destSecretKey,
33 | });
34 | const s3 = new AWS.S3();
35 | const data = await s3
36 | .getBucketLocation({ Bucket: req.body.destinationBucket })
37 | .promise();
38 | res.locals.awsRegion = data.LocationConstraint;
39 | //NEED TO RETURN US-EAST-1 IF STRING IS ''.
40 | if (res.locals.awsRegion === "") res.locals.awsRegion = "us-east-1";
41 | } catch (err) {
42 | return next({
43 | log: `Unkown error:, ${err}`,
44 | message: "Unknown error when getting bucket location.",
45 | });
46 | }
47 | }
48 | //WILL NEED TO MODIFY LOGIC TO CONSIDER IF BOTH BUCKETS ARE AWS AT SOME POINT.
49 | if (!res.locals.awsRegion) {
50 | return next({
51 | log: "Error in getBucketLoc",
52 | message: `Could not select AWS region for bucket ${
53 | req.body.originProvider === "AWS"
54 | ? req.body.originBucket
55 | : req.body.destinationBucket
56 | }. Make sure your credentials have correct permissions and try again.`,
57 | });
58 | }
59 | }
60 | return next();
61 | };
62 |
63 | //This controller parses the req.body and assigns provided input variables to variables that can be used by the fsController.
64 | const assignVariablesForFS = (req, res, next) => {
65 | const {
66 | originProvider,
67 | originAccessId,
68 | originSecretKey,
69 | originAccountId,
70 | destinationProvider,
71 | destAccessId,
72 | destSecretKey,
73 | destAccountId,
74 | } = req.body;
75 |
76 | //Set the origin info.
77 | if (originProvider === "AWS") {
78 | res.locals.awsAccessId = originAccessId;
79 | res.locals.awsSecretKey = originSecretKey;
80 | } else if (originProvider === "Cloudflare") {
81 | res.locals.cloudflareAccessId = originAccessId;
82 | res.locals.cloudflareSecretKey = originSecretKey;
83 | res.locals.cloudflareAccountId = originAccountId;
84 | } else if (originProvider === "azureblob") {
85 | res.locals.azureBlobAccessId = originAccessId;
86 | res.locals.azureBlobSecretKey = originSecretKey;
87 | }
88 | //Set the destination info.
89 | if (destinationProvider === "AWS") {
90 | res.locals.awsAccessId = destAccessId;
91 | res.locals.awsSecretKey = destSecretKey;
92 | } else if (destinationProvider === "Cloudflare") {
93 | res.locals.cloudflareAccessId = destAccessId;
94 | res.locals.cloudflareSecretKey = destSecretKey;
95 | res.locals.cloudflareAccountId = destAccountId;
96 | } else if (destinationProvider === "azureblob") {
97 | res.locals.azureBlobAccessId = destAccessId;
98 | res.locals.azureBlobSecretKey = destSecretKey;
99 | }
100 | return next();
101 | };
102 |
103 | module.exports = { assignVariablesForFS, getBucketLoc };
104 |
--------------------------------------------------------------------------------
/server/controllers/fsController.js:
--------------------------------------------------------------------------------
1 | const fs = require("fs");
2 | const path = require("path");
3 |
4 | const fsController = {
5 | config: (req, res, next) => {
6 | let content = "";
7 | if (res.locals.awsAccessId) {
8 | content = `[aws]
9 | type = s3
10 | provider = AWS
11 | access_key_id = ${res.locals.awsAccessId}
12 | secret_access_key = ${res.locals.awsSecretKey}
13 | region = ${res.locals.awsRegion}`;
14 | }
15 | if (res.locals.cloudflareAccessId) {
16 | const starterString = content.length ? "\n" : "";
17 | content += `${starterString}[cloudflare]
18 | type = s3
19 | provider = Cloudflare
20 | access_key_id = ${res.locals.cloudflareAccessId}
21 | secret_access_key = ${res.locals.cloudflareSecretKey}
22 | region = auto
23 | endpoint = https://${res.locals.cloudflareAccountId}.r2.cloudflarestorage.com/`;
24 | }
25 | if (res.locals.azureBlobAccessId) {
26 | const starterString = content.length ? "\n" : "";
27 | content += `${starterString}[azureblob]
28 | type = azureblob
29 | account = ${res.locals.azureBlobAccessId}
30 | key = ${res.locals.azureBlobSecretKey}`;
31 | }
32 |
33 | fs.writeFileSync(path.resolve(__dirname, "../../rclone.conf"), content);
34 | return next();
35 | },
36 |
37 | removeConfig: (req, res, next) => {
38 | try {
39 | fs.unlinkSync(path.resolve(__dirname, "../../rclone.conf"));
40 | return next();
41 | } catch {
42 | return next({
43 | log: error.message,
44 | message:
45 | "Error removing rclone config file. See server console for details.",
46 | });
47 | }
48 | },
49 | };
50 |
51 | module.exports = fsController;
52 |
--------------------------------------------------------------------------------
/server/controllers/rcloneController.js:
--------------------------------------------------------------------------------
1 | const rclone = require("rclone.js");
2 | const { resolve } = require("path");
3 | const errorGenerator = require("../services/errorGenerator");
4 |
5 | const rCloneCopyController = (req, res, next) => {
6 | // Build the strings for rClone to do the copying.
7 | const {
8 | originProvider,
9 | destinationProvider,
10 | originBucket,
11 | destinationBucket,
12 | } = req.body;
13 |
14 | //CloudShift currently does not support same origin and destination transfer.
15 | if (originProvider === destinationProvider)
16 | return next({
17 | log: "Error in rcloneListBuckets middleware.",
18 | message:
19 | "CloudShift currently does not support same origin/desintation provider transfer.",
20 | });
21 |
22 | const originString = `${originProvider.toLowerCase()}:${originBucket.toLowerCase()}`;
23 | const destinationString = `${destinationProvider.toLowerCase()}:${destinationBucket.toLowerCase()}`;
24 |
25 | try {
26 | res.locals.rcloneCopy = rclone("copy", originString, destinationString, {
27 | env: {
28 | RCLONE_CONFIG: resolve(__dirname, "../../rclone.conf"),
29 | },
30 | progress: true,
31 | });
32 |
33 | return next();
34 | } catch (e) {
35 | return next({
36 | log: `Unkown error:, ${err}`,
37 | message: "Unknown error during rcloneCopy process.",
38 | });
39 | }
40 | };
41 |
42 | const rcloneListBuckets = async (req, res, next) => {
43 | const { accessId, secretKey, serviceProvider, accountId } = req.body;
44 | //Make sure all required parameters exist on the req.body.
45 | if (!accessId || !secretKey || !serviceProvider)
46 | return next({
47 | log: "Error in rcloneListBuckets middleware.",
48 | message:
49 | "Must POST a Service Provider, Access ID, Secret Key, and an Account ID.",
50 | });
51 | //Cloudflare specific required parameters.
52 | if (serviceProvider === "Cloudflare" && !accountId)
53 | return next({
54 | log: "Error in rcloneListBuckets middleware.",
55 | message: "Must POST an Account ID when using Cloudflare.",
56 | });
57 |
58 | try {
59 | let data, buckets;
60 | //Update the AWS config file with correct credentials depending on the service.
61 | if (serviceProvider === "AWS" || serviceProvider === "Cloudflare") {
62 | const AWS = require("aws-sdk");
63 | if (serviceProvider === "AWS") {
64 | AWS.config.update({
65 | accessKeyId: accessId,
66 | secretAccessKey: secretKey,
67 | });
68 | } else if (serviceProvider === "Cloudflare") {
69 | AWS.config.update({
70 | accessKeyId: accessId,
71 | secretAccessKey: secretKey,
72 | signatureVersion: "v4",
73 | endpoint: `https://${accountId}.r2.cloudflarestorage.com/`,
74 | });
75 | }
76 |
77 | const s3 = new AWS.S3();
78 |
79 | //Return the list of buckets, names only.
80 | data = await s3.listBuckets().promise();
81 | //Translate the bucket array data into an array of bucket string names.
82 | buckets = data.Buckets.map((bucket) => bucket.Name);
83 | }
84 | //Handle the Microsoft Azure case.
85 | else if (serviceProvider === "azureblob") {
86 | //Import necessary classes from azure library.
87 | const {
88 | BlobServiceClient,
89 | StorageSharedKeyCredential,
90 | } = require("@azure/storage-blob");
91 | //Pass credentials to Azure sdk library.
92 | const sharedKeyCredential = new StorageSharedKeyCredential(
93 | accessId,
94 | secretKey
95 | );
96 | const blobServiceClient = new BlobServiceClient(
97 | `https://${accessId}.blob.core.windows.net`,
98 | sharedKeyCredential
99 | );
100 |
101 | //Return the list of buckets, names only.
102 | data = blobServiceClient.listContainers();
103 | buckets = [];
104 | for await (const container of data) {
105 | buckets.push(container.name);
106 | }
107 | }
108 |
109 | //Throw an error if there are no buckets associated with
110 | if (!buckets.length)
111 | return next({
112 | message: `There are no buckets associated with your ${serviceProvider} account.`,
113 | });
114 | res.locals.buckets = buckets;
115 | return next();
116 | } catch (error) {
117 | const { message, field } = errorGenerator(error, serviceProvider);
118 | return next({
119 | log: error.message,
120 | message,
121 | field,
122 | });
123 | }
124 | };
125 |
126 | module.exports = { rCloneCopyController, rcloneListBuckets };
127 |
--------------------------------------------------------------------------------
/server/controllers/resetAWSController.js:
--------------------------------------------------------------------------------
1 | const AWS = require("aws-sdk");
2 |
3 | //Reset the config file. Prevents bugs within transfer services that relies on the AWS-SDK library.
4 | const resetAWSConfig = (req, res, next) => {
5 | //Reset AWS config file if it's created.
6 | if (AWS.config.credentials) {
7 | AWS.config.credentials = null;
8 | //Make sure other properties are reset as well.
9 | if (AWS.config.signatureVersion) delete AWS.config.signatureVersion;
10 | if (AWS.config.endpoint) delete AWS.config.endpoint;
11 | }
12 | return next();
13 | };
14 |
15 | module.exports = resetAWSConfig;
16 |
--------------------------------------------------------------------------------
/server/server.js:
--------------------------------------------------------------------------------
1 | const path = require("path");
2 | const express = require("express");
3 | const fsController = require("./controllers/fsController.js");
4 | const {
5 | rCloneCopyController,
6 | rcloneListBuckets,
7 | } = require("./controllers/rcloneController");
8 | const {
9 | assignVariablesForFS,
10 | getBucketLoc,
11 | } = require("./controllers/assignController.js");
12 | const resetAWSConfig = require("./controllers/resetAWSController.js");
13 | const { rcloneCopyString } = require("./services/rcloneCopyString.js");
14 | const app = express();
15 | const http = require("http");
16 | const server = http.createServer(app);
17 | const { Server } = require("socket.io");
18 | const io = new Server(server, {
19 | cors: {
20 | origin: "*",
21 | },
22 | });
23 |
24 | app.use(express.json());
25 |
26 | const servePath =
27 | process.env.NODE_ENV === "development" ? "../client/public" : "../build";
28 |
29 | app.use(express.static(path.resolve(__dirname, servePath)));
30 |
31 | app.post("/listBuckets", resetAWSConfig, rcloneListBuckets, (req, res) => {
32 | return res.status(200).json(res.locals.buckets);
33 | });
34 |
35 | app.post(
36 | "/transfer",
37 | resetAWSConfig,
38 | getBucketLoc,
39 | assignVariablesForFS,
40 | fsController.config,
41 | rCloneCopyController,
42 | (req, res) => {
43 | //If a string ever returns 'access denied', pass that to the client.
44 | let isAccessDenied = false;
45 | res.locals.rcloneCopy.stdout.on("data", (data) => {
46 | if (isAccessDenied) return;
47 | const relevantString = rcloneCopyString(data.toString());
48 | if (relevantString === "accessDenied") isAccessDenied = true;
49 | io.emit("data transfer", relevantString);
50 | });
51 | return res.sendStatus(200);
52 | }
53 | );
54 |
55 | app.get("/removeConfig", fsController.removeConfig, (req, res) => {
56 | return res.sendStatus(200);
57 | });
58 |
59 | //Redirect if there's any request to a page that doesn't exist.
60 | app.get("*", (req, res) => {
61 | return res.redirect("/");
62 | });
63 |
64 | //GLOBAL ERROR HANDLER NEEDED.
65 | app.use((err, req, res, next) => {
66 | const defaultErr = {
67 | log: "Express error handler caught unknown middleware error",
68 | status: 500,
69 | message: { err: "An error occurred" },
70 | field: "",
71 | };
72 | const errorObj = Object.assign({}, defaultErr, err);
73 | console.log(errorObj.log);
74 | return res
75 | .status(errorObj.status)
76 | .json({ message: errorObj.message, field: errorObj.field });
77 | });
78 |
79 | server.listen(3000, () => console.log("Serving listening on port 3000..."));
80 |
81 | module.exports = { io };
82 |
--------------------------------------------------------------------------------
/server/services/errorGenerator.js:
--------------------------------------------------------------------------------
1 | /*
2 | Generates more helpful error messages given various error messages from
3 | cloud providers.
4 | */
5 |
6 | const errorCredentialString = (field) => {
7 | return `Your ${field} is possibly incorrect. Please check your credentials and try again.`;
8 | };
9 |
10 | const errorGenerator = (error, serviceProvider) => {
11 | //The client side error message.
12 | let message = "";
13 | //The client side error field (when applicable).
14 | let field = "";
15 |
16 | //General errors.
17 | //System clock error.
18 | if (error.code === "RequestTimeTooSkewed")
19 | message = `Difference between ${serviceProvider} request time & current time is too large. Either resync your system clock or restart your computer to fix.`;
20 |
21 | //Cloudflare specific errors.
22 | if (serviceProvider === "Cloudflare") {
23 | //Invalid Access ID.
24 | if (error.code === "Unauthorized") {
25 | message = errorCredentialString("Access ID");
26 | field = "accessId";
27 | }
28 | //Invalid secret key.
29 | else if (error.code === "SignatureDoesNotMatch") {
30 | message = errorCredentialString("Secret Key");
31 | field = "secretKey";
32 | }
33 | //Invalid Account ID.
34 | else if (error.code === "UnknownEndpoint") {
35 | message = errorCredentialString("Account ID");
36 | field = "accountId";
37 | }
38 | }
39 |
40 | //Amazon specific errors.
41 | else if (serviceProvider === "AWS") {
42 | //Invalid Access ID.
43 | if (error.code === "InvalidAccessKeyId") {
44 | message = errorCredentialString("Access ID");
45 | field = "accessId";
46 | }
47 | //Invalid secret key.
48 | else if (error.code === "SignatureDoesNotMatch") {
49 | message = errorCredentialString("Secret Key");
50 | field = "secretKey";
51 | }
52 | }
53 |
54 | //Catch all error if nothing else works.
55 | if (!message.length)
56 | message = `An unknown error occurred when querying ${serviceProvider}. Error code ${error.code}.`;
57 |
58 | return { message, field };
59 | };
60 |
61 | module.exports = errorGenerator;
62 |
--------------------------------------------------------------------------------
/server/services/rcloneCopyString.js:
--------------------------------------------------------------------------------
1 | /*
2 | Extract the relevant transfer data from the rclone copy output.
3 | */
4 |
5 | const rcloneCopyString = (fullString) => {
6 | //First see if the string contains an access denied error.
7 | const accessDenied = fullString.includes("AccessDenied") ? true : false;
8 | if (accessDenied) return "accessDenied";
9 | //Get the string between the first and second occurence of the word "transferred".
10 | try {
11 | let first = fullString.indexOf("Transferred:");
12 | let second = fullString.indexOf("Transferred:", first + 1);
13 | let slicedStr = fullString.slice(first, second);
14 | //Now get the overall percentage as the number.
15 | first = slicedStr.indexOf(",");
16 | second = slicedStr.indexOf("%");
17 | slicedStr = slicedStr.slice(first + 1, second).trim();
18 | //If final string is the total transfer percent, return it.
19 | if (!isNaN(slicedStr)) return slicedStr;
20 | //If the string contains "checks" (buckets likely already in sync) and shows a number, return it.
21 | first = slicedStr.indexOf("Checks:");
22 | slicedStr = slicedStr.slice(first + 1);
23 | second = slicedStr.indexOf(",");
24 | slicedStr = slicedStr.slice(second + 1).trim();
25 | if (!isNaN(slicedStr)) return slicedStr;
26 | //Otherwise, return an empty string.
27 | return "";
28 | } catch {
29 | return "";
30 | }
31 | };
32 |
33 | module.exports = { rcloneCopyString };
34 |
--------------------------------------------------------------------------------