├── .DS_Store
├── .gitattributes
├── .gitignore
├── LICENSE
├── README.md
├── index.js
├── model
├── aidream
│ └── index.js
├── base.js
├── forefront
│ └── index.js
├── index.js
├── phind
│ └── index.js
└── you
│ └── index.js
├── package-lock.json
├── package.json
├── pool
└── puppeteer.js
└── utils
├── emailFactory.js
├── index.js
└── proxyAgent.js
/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Thaon/gpt4free-js/ad1ef0b4bb8be79ae099743566a79d3ae85ef14f/.DS_Store
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | lerna-debug.log*
8 | .pnpm-debug.log*
9 |
10 | # Diagnostic reports (https://nodejs.org/api/report.html)
11 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
12 |
13 | # Runtime data
14 | pids
15 | *.pid
16 | *.seed
17 | *.pid.lock
18 |
19 | # Directory for instrumented libs generated by jscoverage/JSCover
20 | lib-cov
21 |
22 | # Coverage directory used by tools like istanbul
23 | coverage
24 | *.lcov
25 |
26 | # nyc test coverage
27 | .nyc_output
28 |
29 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
30 | .grunt
31 |
32 | # Bower dependency directory (https://bower.io/)
33 | bower_components
34 |
35 | # node-waf configuration
36 | .lock-wscript
37 |
38 | # Compiled binary addons (https://nodejs.org/api/addons.html)
39 | build/Release
40 |
41 | # Dependency directories
42 | node_modules/
43 | jspm_packages/
44 |
45 | # Snowpack dependency directory (https://snowpack.dev/)
46 | web_modules/
47 |
48 | # TypeScript cache
49 | *.tsbuildinfo
50 |
51 | # Optional npm cache directory
52 | .npm
53 |
54 | # Optional eslint cache
55 | .eslintcache
56 |
57 | # Optional stylelint cache
58 | .stylelintcache
59 |
60 | # Microbundle cache
61 | .rpt2_cache/
62 | .rts2_cache_cjs/
63 | .rts2_cache_es/
64 | .rts2_cache_umd/
65 |
66 | # Optional REPL history
67 | .node_repl_history
68 |
69 | # Output of 'npm pack'
70 | *.tgz
71 |
72 | # Yarn Integrity file
73 | .yarn-integrity
74 |
75 | # dotenv environment variable files
76 | .env
77 | .env.development.local
78 | .env.test.local
79 | .env.production.local
80 | .env.local
81 |
82 | # parcel-bundler cache (https://parceljs.org/)
83 | .cache
84 | .parcel-cache
85 |
86 | # Next.js build output
87 | .next
88 | out
89 |
90 | # Nuxt.js build / generate output
91 | .nuxt
92 | dist
93 |
94 | # Gatsby files
95 | .cache/
96 | # Comment in the public line in if your project uses Gatsby and not Next.js
97 | # https://nextjs.org/blog/next-9-1#public-directory-support
98 | # public
99 |
100 | # vuepress build output
101 | .vuepress/dist
102 |
103 | # vuepress v2.x temp and cache directory
104 | .temp
105 | .cache
106 |
107 | # Serverless directories
108 | .serverless/
109 |
110 | # FuseBox cache
111 | .fusebox/
112 |
113 | # DynamoDB Local files
114 | .dynamodb/
115 |
116 | # TernJS port file
117 | .tern-port
118 |
119 | # Stores VSCode versions used for testing VSCode extensions
120 | .vscode-test
121 |
122 | # yarn v2
123 | .yarn/cache
124 | .yarn/unplugged
125 | .yarn/build-state.yml
126 | .yarn/install-state.gz
127 | .pnp.*
128 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2023 YAP!
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 | This is a replication project for the JavaScript version of [gpt4free](https://github.com/xtekky/gpt4free) and using a rewrite of [gpt4free-ts](xiangsx/gpt4free-ts)
2 |
3 | ## Active Models
4 |
5 | Still striving to keep updating.
6 |
7 | Have implemented models here:
8 | If you do not want your website to appear here, please raise an issue and I will remove it immediately.
9 | |model|support|status|
10 | |--|--|--|
11 | |[forefront.ai](forefront.ai)|GPT-4/gpt3.5|
12 | |[aidream](http://aidream.cloud)|GPT-3.5|
13 | |[you.com](you.com)|GPT-3.5|
14 | |[phind.com](https://www.phind.com/)|GPT-4 / Internet / search|
15 |
16 | ## Run locally
17 |
18 | ```shell
19 | # clone project
20 | git clone
21 | # install modules
22 | npm i
23 | ```
24 |
25 | ```javascript
26 | // import project
27 | import { generate } from gpt4free-js
28 | // use it
29 | generate('you', 'what's the capital of Italy?', [options]).then((res) => console.log(res.text))
30 | ```
31 |
32 | Note: at the moment only the YOU provider works, sorry, working on it.
33 |
34 | ## generate Params
35 |
36 | ```
37 | prompt: string; // required
38 | ```
39 |
40 | aidread options
41 |
42 | ```
43 | parentMessageId: string // if you need context try this
44 | systemMessage: string // default: You are ChatGPT, a large language model trained by OpenAI. Follow the user's instructions carefully. Respond using markdown.
45 | temperature: number; // default: 1
46 | top_p: number // default:1
47 | parse: boolean; // default:true only valid in stream;if set false,return source data contains parentMessageId...
48 | ```
49 |
50 | forefront options
51 |
52 | ```
53 | chatId?: string;
54 | actionType?: Action; // 'new' or 'continue'
55 | defaultPersona?: string;
56 | gptmodel?: Model; // gpt-4 or gpt-3.5-turbo
57 | resignup?: number; // default 0 if set 1, auto sign up when gpt4 times use up
58 | // event: error
59 | // data: GPT-4 rate limit exceeded (>5 messages every 3 hours). Time remaining: 179 minutes
60 | // if you see this try set resignup=1 or use gpt-3.5-turbo
61 |
62 | // if you want chat with context, set actionType=continue and chatId={Defined constant uuid}
63 | ```
64 |
65 | ## 🌟 Star History
66 |
67 | [](https://star-history.com/#thaon/gpt4free-js&&type=Date)
68 |
69 |
70 |
71 | ## Legal Notice
72 |
73 | This repository is _not_ associated with or endorsed by providers of the APIs contained in this GitHub repository. This
74 | project is intended **for educational purposes only**. This is just a little personal project. Sites may contact me to
75 | improve their security or request the removal of their site from this repository.
76 |
77 | Please note the following:
78 |
79 | 1. **Disclaimer**: The APIs, services, and trademarks mentioned in this repository belong to their respective owners.
80 | This project is _not_ claiming any right over them nor is it affiliated with or endorsed by any of the providers
81 | mentioned.
82 |
83 | 2. **Responsibility**: The author of this repository is _not_ responsible for any consequences, damages, or losses
84 | arising from the use or misuse of this repository or the content provided by the third-party APIs. Users are solely
85 | responsible for their actions and any repercussions that may follow. We strongly recommend the users to follow the
86 | TOS of the each Website.
87 |
88 | 3. **Educational Purposes Only**: This repository and its content are provided strictly for educational purposes. By
89 | using the information and code provided, users acknowledge that they are using the APIs and models at their own risk
90 | and agree to comply with any applicable laws and regulations.
91 |
92 | 4. **Copyright**: All content in this repository, including but not limited to code, images, and documentation, is the
93 | intellectual property of the repository author, unless otherwise stated. Unauthorized copying, distribution, or use
94 | of any content in this repository is strictly prohibited without the express written consent of the repository
95 | author.
96 |
97 | 5. **Indemnification**: Users agree to indemnify, defend, and hold harmless the author of this repository from and
98 | against any and all claims, liabilities, damages, losses, or expenses, including legal fees and costs, arising out of
99 | or in any way connected with their use or misuse of this repository, its content, or related third-party APIs.
100 |
101 | 6. **Updates and Changes**: The author reserves the right to modify, update, or remove any content, information, or
102 | features in this repository at any time without prior notice. Users are responsible for regularly reviewing the
103 | content and any changes made to this repository.
104 |
105 | By using this repository or any code related to it, you agree to these terms. The author is not responsible for any
106 | copies, forks, or reuploads made by other users. This is the author's only account and repository. To prevent
107 | impersonation or irresponsible actions, you may comply with the GNU GPL license this Repository uses.
108 |
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | import { ChatModelFactory } from "./model/index.js";
2 | import dotenv from "dotenv";
3 |
4 | dotenv.config();
5 |
6 | export const generate = async (model, prompt, options) => {
7 | const chatModel = new ChatModelFactory();
8 |
9 | if (!prompt) {
10 | return "please input prompt";
11 | }
12 | const chat = chatModel.get(model);
13 | if (!chat) {
14 | return "Unsupported model";
15 | }
16 | const res = await chat.ask({ prompt, options });
17 |
18 | return res;
19 | };
20 |
--------------------------------------------------------------------------------
/model/aidream/index.js:
--------------------------------------------------------------------------------
1 | import { Chat } from "../base.js";
2 | import { CreateAxiosProxy } from "../../utils/proxyAgent.js";
3 | import es from "event-stream";
4 | import { parseJSON } from "../../utils/index.js";
5 |
6 | export class AiDream extends Chat {
7 | client;
8 |
9 | constructor(options) {
10 | super(options);
11 | this.client = CreateAxiosProxy({
12 | baseURL: "http://aidream.cloud/api/",
13 | headers: {
14 | "Cache-Control": "no-cache",
15 | "Proxy-Connection": "keep-alive",
16 | },
17 | });
18 | }
19 |
20 | async ask(req) {
21 | req.options = req.options || {};
22 | const res = await this.askStream(req);
23 | const result = {
24 | text: "",
25 | other: {},
26 | };
27 | return new Promise((resolve) => {
28 | res.text
29 | .pipe(es.split(/\r?\n/))
30 | .pipe(
31 | es.map(async (chunk, cb) => {
32 | const data = parseJSON(chunk, {});
33 | if (!data?.detail?.choices) {
34 | cb(null, "");
35 | return;
36 | }
37 | const [
38 | {
39 | delta: { content },
40 | },
41 | ] = data.detail.choices;
42 | result.other.parentMessageId = data.parentMessageId;
43 | cb(null, content);
44 | })
45 | )
46 | .on("data", (data) => {
47 | result.text += data;
48 | })
49 | .on("close", () => {
50 | resolve(result);
51 | });
52 | });
53 | }
54 |
55 | async askStream(req) {
56 | const { prompt = "" } = req;
57 | const {
58 | systemMessage = "You are ChatGPT, a large language model trained by OpenAI. Follow the user's instructions carefully. Respond using markdown.",
59 | temperature = 1.0,
60 | top_p = 1,
61 | parentMessageId,
62 | parse = true,
63 | } = req.options;
64 | const data = {
65 | options: { parentMessageId },
66 | prompt,
67 | systemMessage,
68 | temperature,
69 | top_p,
70 | };
71 | const res = await this.client.post("/chat-process", data, {
72 | responseType: "stream",
73 | });
74 | if (parse) {
75 | return {
76 | text: this.parseData(res.data),
77 | };
78 | }
79 | return { text: res.data };
80 | }
81 |
82 | parseData(v) {
83 | return v.pipe(es.split(/\r?\n/)).pipe(
84 | es.map(async (chunk, cb) => {
85 | const data = parseJSON(chunk, {});
86 | if (!data?.detail?.choices) {
87 | cb(null, "");
88 | return;
89 | }
90 | const [
91 | {
92 | delta: { content },
93 | },
94 | ] = data.detail.choices;
95 | cb(null, content);
96 | })
97 | );
98 | }
99 | }
100 |
--------------------------------------------------------------------------------
/model/base.js:
--------------------------------------------------------------------------------
1 | import { Stream } from "stream";
2 |
3 | // export interface ChatOptions {
4 | // }
5 |
6 | // export interface Response {
7 | // text: string | null;
8 | // other?: any;
9 | // }
10 |
11 | // export interface ResponseStream {
12 | // text: Stream;
13 | // other?: any;
14 | // }
15 |
16 | // export interface Request {
17 | // prompt: string;
18 | // options?: any;
19 | // }
20 |
21 | export class Chat {
22 | options;
23 |
24 | constructor(options) {
25 | this.options = options;
26 | }
27 |
28 | ask(req) {}
29 |
30 | askStream(req) {}
31 | }
32 |
--------------------------------------------------------------------------------
/model/forefront/index.js:
--------------------------------------------------------------------------------
1 | import { Chat } from "../base.js";
2 | import { freeBrowserPool } from "../../pool/puppeteer.js";
3 | import { CreateEmail } from "../../utils/emailFactory.js";
4 | import { CreateTlsProxy } from "../../utils/proxyAgent.js";
5 | import { PassThrough } from "stream";
6 |
7 | export class Forefrontnew extends Chat {
8 | browser;
9 | page = undefined;
10 | url = "https://chat.forefront.ai/";
11 | writing = undefined;
12 |
13 | constructor(options) {
14 | super(options);
15 | }
16 |
17 | async ask(req) {
18 | const res = await this.askStream(req);
19 | let text = "";
20 | return new Promise((resolve) => {
21 | res.text
22 | .on("data", (data) => {
23 | if (!data) {
24 | return;
25 | }
26 | text += data;
27 | })
28 | .on("close", () => {
29 | resolve({ text, other: res.other });
30 | });
31 | });
32 | }
33 |
34 | async askStream(req) {
35 | if (this.writing) {
36 | const pt = new PassThrough();
37 | pt.write("Other conversation");
38 | pt.end();
39 | return { text: pt };
40 | }
41 | await freeBrowserPool.init(1, false);
42 | if (!this.browser) {
43 | this.browser = freeBrowserPool.getRandom();
44 | }
45 | let needRegister = false;
46 | if (!this.page) {
47 | this.page = await this.browser.getPage(this.url);
48 | await this.page.setViewport({ width: 1920, height: 1080 });
49 | }
50 | if (this.page.url() !== this.url) {
51 | await this.page.goto(this.url);
52 | }
53 | try {
54 | console.log("try find text input");
55 | await this.page.waitForSelector(
56 | ".relative > .flex > .w-full > .text-th-primary-dark > div",
57 | { timeout: 10000 }
58 | );
59 | } catch (e) {
60 | console.log("not found text input.");
61 | console.log("try register");
62 | await this.page.waitForSelector(
63 | ".cl-rootBox > .cl-card > .cl-footer > .cl-footerAction > .cl-footerActionLink",
64 | { timeout: 10000 }
65 | );
66 | await this.page.click(
67 | ".cl-rootBox > .cl-card > .cl-footer > .cl-footerAction > .cl-footerActionLink"
68 | );
69 | await this.page.waitForSelector("#emailAddress-field");
70 | await this.page.click("#emailAddress-field");
71 |
72 | await this.page.waitForSelector(
73 | ".cl-rootBox > .cl-card > .cl-main > .cl-form > .cl-formButtonPrimary"
74 | );
75 | await this.page.click(
76 | ".cl-rootBox > .cl-card > .cl-main > .cl-form > .cl-formButtonPrimary"
77 | );
78 |
79 | const emailBox = CreateEmail("temp-email44");
80 | const emailAddress = await emailBox.getMailAddress();
81 | // 将文本键入焦点元素
82 | await this.page.keyboard.type(emailAddress, { delay: 10 });
83 | await this.page.keyboard.press("Enter");
84 |
85 | const msgs = await emailBox.waitMails();
86 | let validateURL;
87 | for (const msg of msgs) {
88 | validateURL = msg.content.match(
89 | /https:\/\/clerk\.forefront\.ai\/v1\/verify\?token=[^\s"]+/i
90 | )?.[0];
91 | if (validateURL) {
92 | break;
93 | }
94 | }
95 | if (!validateURL) {
96 | throw new Error("Error while obtaining verfication URL!");
97 | }
98 | const tsl = await CreateTlsProxy({ clientIdentifier: "chrome_108" }).get(
99 | validateURL
100 | );
101 | console.log("register successfully");
102 | await this.page.waitForSelector(
103 | ".flex > .modal > .modal-box > .flex > .px-3:nth-child(1)",
104 | { timeout: 10000 }
105 | );
106 | await this.page.click(
107 | ".flex > .modal > .modal-box > .flex > .px-3:nth-child(1)"
108 | );
109 | await this.page.waitForSelector(
110 | ".relative > .flex > .w-full > .text-th-primary-dark > div",
111 | { timeout: 10000 }
112 | );
113 | console.log("try save cookie");
114 | console.log("save cookie successfully");
115 | } finally {
116 | const se = await this.page.$("#model-select");
117 | if (se) {
118 | await this.page.click("#model-select");
119 | await this.page.select("#model-select", "gpt-4");
120 | }
121 | }
122 | console.log("try to find input");
123 | await this.page.waitForSelector(
124 | ".relative > .flex > .w-full > .text-th-primary-dark > div",
125 | {
126 | timeout: 10000,
127 | visible: true,
128 | }
129 | );
130 | console.log("found");
131 | await this.page.click(
132 | ".relative > .flex > .w-full > .text-th-primary-dark > div"
133 | );
134 | await this.page.focus(
135 | ".relative > .flex > .w-full > .text-th-primary-dark > div"
136 | );
137 | await this.page.keyboard.type(req.prompt, { delay: 10 });
138 | await this.page.keyboard.press("Enter");
139 | await this.page.waitForSelector(
140 | "#__next > .flex > .relative > .relative > .flex-1"
141 | );
142 | // find markdown list container
143 | const mdList = await this.page.$(
144 | "#__next > .flex > .relative > .relative > .flex-1"
145 | );
146 | const md = mdList;
147 | // get latest markdown id
148 | const id = await md?.evaluate((el) => el.children.length);
149 | console.log(id);
150 | const selector = `.flex-1 > .flex:nth-child(${id}) > .relative > .grid > .post-markdown`;
151 | await this.page.waitForSelector(selector);
152 | const result = await this.page.$(selector);
153 | // get latest markdown text
154 | let oldText = "";
155 | const pt = new PassThrough();
156 | (async () => {
157 | const itl = setInterval(async () => {
158 | const text = await result?.evaluate((el) => {
159 | return el.textContent;
160 | });
161 | if (typeof text != "string") {
162 | return;
163 | }
164 | if (oldText.length === text.length) {
165 | return;
166 | }
167 | pt.write(text.slice(oldText.length - text.length));
168 | oldText = text;
169 | }, 100);
170 | if (!this.page) {
171 | return;
172 | }
173 | try {
174 | await this.page.waitForSelector(
175 | `.flex-1 > .flex:nth-child(${id}) > .relative > .grid > .opacity-100`
176 | );
177 | const text = await result?.evaluate((el) => {
178 | console.log(el);
179 | return el.textContent;
180 | });
181 | pt.write(text.slice(oldText.length - text.length));
182 | } finally {
183 | pt.end();
184 | clearInterval(itl);
185 | }
186 | })().then();
187 | return { text: pt };
188 | }
189 | }
190 |
--------------------------------------------------------------------------------
/model/index.js:
--------------------------------------------------------------------------------
1 | import { You } from "./you/index.js";
2 | import { AiDream } from "./aidream/index.js";
3 | import { Phind } from "./phind/index.js";
4 | import { Forefrontnew } from "./forefront/index.js";
5 |
6 | // export enum Model {
7 | // // define new model here
8 | // You = 'you',
9 | // Forefront = 'forefront',
10 | // AiDream = 'aidream',
11 | // Phind = 'phind',
12 | // }
13 |
14 | export class ChatModelFactory {
15 | modelMap;
16 | options;
17 |
18 | constructor(options) {
19 | this.modelMap = new Map();
20 | this.options = options;
21 | this.init();
22 | }
23 |
24 | init() {
25 | // register new model here
26 | this.modelMap.set("you", new You(this.options));
27 | this.modelMap.set("forefront", new Forefrontnew(this.options));
28 | this.modelMap.set("aidream", new AiDream(this.options));
29 | this.modelMap.set("phind", new Phind(this.options));
30 | }
31 |
32 | get(model) {
33 | return this.modelMap.get(model);
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/model/phind/index.js:
--------------------------------------------------------------------------------
1 | import { Chat } from "../base.js";
2 | import { freeBrowserPool } from "../../pool/puppeteer.js";
3 | import { Stream } from "stream";
4 |
5 | export class Phind extends Chat {
6 | browser;
7 | page = undefined;
8 |
9 | constructor(options) {
10 | super(options);
11 | }
12 |
13 | async ask(req) {
14 | return Promise.resolve({ text: "" });
15 | }
16 |
17 | async askStream(req) {
18 | if (!this.browser) {
19 | this.browser = freeBrowserPool.getRandom();
20 | }
21 | if (!this.page) {
22 | this.page = await this.browser.getPage("https://phind.com");
23 | await this.page.setViewport({ width: 1920, height: 1080 });
24 | // await this.page.waitForNavigation();
25 | }
26 |
27 | // await this.page.waitForSelector('.col-md-10 > .container-xl > .mb-3 > .input-group > .form-control')
28 | // await this.page.click('.col-md-10 > .container-xl > .mb-3 > .input-group > .form-control')
29 | // todo complete
30 | return Promise.resolve({ text: new Stream() });
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/model/you/index.js:
--------------------------------------------------------------------------------
1 | import { v4 as uuidv4 } from "uuid";
2 | //@ts-ignore
3 | import UserAgent from "user-agents";
4 | import { parseJSON, toEventCB, toEventStream } from "../../utils/index.js";
5 | import { Chat } from "../base.js";
6 | import { CreateTlsProxy } from "../../utils/proxyAgent.js";
7 |
8 | const userAgent = new UserAgent();
9 |
10 | export class You extends Chat {
11 | session;
12 |
13 | constructor(props) {
14 | super(props);
15 | this.session = CreateTlsProxy({ clientIdentifier: "chrome_108" });
16 | this.session.headers = this.getHeaders();
17 | }
18 |
19 | async request(req) {
20 | let {
21 | page = 1,
22 | count = 10,
23 | safeSearch = "Moderate",
24 | onShoppingPage = "False",
25 | mkt = "",
26 | responseFilter = "WebPages,Translations,TimeZone,Computation,RelatedSearches",
27 | domain = "youchat",
28 | queryTraceId = null,
29 | chat = null,
30 | includeLinks = "False",
31 | detailed = "False",
32 | debug = "False",
33 | } = req.options || {};
34 | if (!chat) {
35 | chat = [];
36 | }
37 | return await this.session.get("https://you.com/api/streamingSearch", {
38 | params: {
39 | q: req.prompt,
40 | page: page + "",
41 | count: count + "",
42 | safeSearch: safeSearch + "",
43 | onShoppingPage: onShoppingPage + "",
44 | mkt: mkt + "",
45 | responseFilter: responseFilter + "",
46 | domain: domain + "",
47 | queryTraceId: queryTraceId || uuidv4(),
48 | chat: JSON.stringify(chat),
49 | },
50 | });
51 | }
52 |
53 | async askStream(req) {
54 | const response = await this.request(req);
55 | return { text: toEventStream(response.content), other: {} };
56 | }
57 |
58 | async ask(req) {
59 | const response = await this.request(req);
60 | return new Promise((resolve) => {
61 | const res = {
62 | text: "",
63 | other: {},
64 | };
65 | toEventCB(response.content, (eventName, data) => {
66 | let obj;
67 | switch (eventName) {
68 | case "youChatToken":
69 | obj = parseJSON(data, {});
70 | res.text += obj.youChatToken;
71 | break;
72 | case "done":
73 | resolve(res);
74 | return;
75 | default:
76 | obj = parseJSON(data, {});
77 | res.other[eventName] = obj;
78 | return;
79 | }
80 | });
81 | });
82 | }
83 |
84 | getHeaders() {
85 | return {
86 | authority: "you.com",
87 | accept: "text/event-stream",
88 | "accept-language":
89 | "en,fr-FR;q=0.9,fr;q=0.8,es-ES;q=0.7,es;q=0.6,en-US;q=0.5,am;q=0.4,de;q=0.3",
90 | "cache-control": "no-cache",
91 | referer: "https://you.com/search?q=who+are+you&tbm=youchat",
92 | "sec-ch-ua":
93 | '"Not_A Brand";v="99", "Google Chrome";v="109", "Chromium";v="109"',
94 | "sec-ch-ua-mobile": "?0",
95 | "sec-ch-ua-platform": '"Windows"',
96 | "sec-fetch-dest": "empty",
97 | "sec-fetch-mode": "cors",
98 | "sec-fetch-site": "same-origin",
99 | cookie: `safesearch_guest=Moderate; uuid_guest=${uuidv4()}`,
100 | "user-agent": userAgent.toString(),
101 | };
102 | }
103 | }
104 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "gpt4free-js",
3 | "version": "0.0.1",
4 | "lockfileVersion": 2,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "gpt4free-js",
9 | "version": "0.0.1",
10 | "dependencies": {
11 | "axios": "^1.4.0",
12 | "dotenv": "^16.0.3",
13 | "event-stream": "^4.0.1",
14 | "fake-useragent": "^1.0.1",
15 | "http-proxy-agent": "^6.0.1",
16 | "https-proxy-agent": "^5.0.1",
17 | "koa": "^2.14.2",
18 | "koa-bodyparser": "^4.4.0",
19 | "koa-router": "^12.0.0",
20 | "puppeteer": "^20.1.2",
21 | "tls-client": "^0.0.5",
22 | "user-agents": "^1.0.1367",
23 | "uuid": "^9.0.0",
24 | "xregexp": "^5.1.1"
25 | }
26 | },
27 | "node_modules/@babel/code-frame": {
28 | "version": "7.21.4",
29 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz",
30 | "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==",
31 | "dependencies": {
32 | "@babel/highlight": "^7.18.6"
33 | },
34 | "engines": {
35 | "node": ">=6.9.0"
36 | }
37 | },
38 | "node_modules/@babel/helper-validator-identifier": {
39 | "version": "7.19.1",
40 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
41 | "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
42 | "engines": {
43 | "node": ">=6.9.0"
44 | }
45 | },
46 | "node_modules/@babel/highlight": {
47 | "version": "7.18.6",
48 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
49 | "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
50 | "dependencies": {
51 | "@babel/helper-validator-identifier": "^7.18.6",
52 | "chalk": "^2.0.0",
53 | "js-tokens": "^4.0.0"
54 | },
55 | "engines": {
56 | "node": ">=6.9.0"
57 | }
58 | },
59 | "node_modules/@babel/runtime-corejs3": {
60 | "version": "7.21.5",
61 | "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.21.5.tgz",
62 | "integrity": "sha512-FRqFlFKNazWYykft5zvzuEl1YyTDGsIRrjV9rvxvYkUC7W/ueBng1X68Xd6uRMzAaJ0xMKn08/wem5YS1lpX8w==",
63 | "dependencies": {
64 | "core-js-pure": "^3.25.1",
65 | "regenerator-runtime": "^0.13.11"
66 | },
67 | "engines": {
68 | "node": ">=6.9.0"
69 | }
70 | },
71 | "node_modules/@puppeteer/browsers": {
72 | "version": "1.1.0",
73 | "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-1.1.0.tgz",
74 | "integrity": "sha512-+Nfk52G9cRAKq/V2LEaOlKIMsIuERSofk8hXEy6kMQtjg9Te1iuKymWOR+iKwwzj1RCkZU0fuOoSIclR839MNw==",
75 | "dependencies": {
76 | "debug": "4.3.4",
77 | "extract-zip": "2.0.1",
78 | "http-proxy-agent": "5.0.0",
79 | "https-proxy-agent": "5.0.1",
80 | "progress": "2.0.3",
81 | "proxy-from-env": "1.1.0",
82 | "tar-fs": "2.1.1",
83 | "unbzip2-stream": "1.4.3",
84 | "yargs": "17.7.1"
85 | },
86 | "bin": {
87 | "browsers": "lib/cjs/main-cli.js"
88 | },
89 | "engines": {
90 | "node": ">=16.0.0"
91 | },
92 | "peerDependencies": {
93 | "typescript": ">= 4.7.4"
94 | },
95 | "peerDependenciesMeta": {
96 | "typescript": {
97 | "optional": true
98 | }
99 | }
100 | },
101 | "node_modules/@puppeteer/browsers/node_modules/agent-base": {
102 | "version": "6.0.2",
103 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
104 | "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
105 | "dependencies": {
106 | "debug": "4"
107 | },
108 | "engines": {
109 | "node": ">= 6.0.0"
110 | }
111 | },
112 | "node_modules/@puppeteer/browsers/node_modules/http-proxy-agent": {
113 | "version": "5.0.0",
114 | "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz",
115 | "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==",
116 | "dependencies": {
117 | "@tootallnate/once": "2",
118 | "agent-base": "6",
119 | "debug": "4"
120 | },
121 | "engines": {
122 | "node": ">= 6"
123 | }
124 | },
125 | "node_modules/@tootallnate/once": {
126 | "version": "2.0.0",
127 | "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
128 | "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==",
129 | "engines": {
130 | "node": ">= 10"
131 | }
132 | },
133 | "node_modules/@types/node": {
134 | "version": "18.16.6",
135 | "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.6.tgz",
136 | "integrity": "sha512-N7KINmeB8IN3vRR8dhgHEp+YpWvGFcpDoh5XZ8jB5a00AdFKCKEyyGTOPTddUf4JqU1ZKTVxkOxakDvchNVI2Q==",
137 | "optional": true
138 | },
139 | "node_modules/@types/yauzl": {
140 | "version": "2.10.0",
141 | "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz",
142 | "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==",
143 | "optional": true,
144 | "dependencies": {
145 | "@types/node": "*"
146 | }
147 | },
148 | "node_modules/accepts": {
149 | "version": "1.3.8",
150 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
151 | "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
152 | "dependencies": {
153 | "mime-types": "~2.1.34",
154 | "negotiator": "0.6.3"
155 | },
156 | "engines": {
157 | "node": ">= 0.6"
158 | }
159 | },
160 | "node_modules/agent-base": {
161 | "version": "7.0.1",
162 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.0.1.tgz",
163 | "integrity": "sha512-V9to8gr2GK7eA+xskWGAFUX/TLSQKuH2TI06c/jGLL6yLp3oEjtnqM7a5tPV9fC1rabLeAgThZeBwsYX+WWHpw==",
164 | "dependencies": {
165 | "debug": "^4.3.4"
166 | },
167 | "engines": {
168 | "node": ">= 14"
169 | }
170 | },
171 | "node_modules/ansi-regex": {
172 | "version": "5.0.1",
173 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
174 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
175 | "engines": {
176 | "node": ">=8"
177 | }
178 | },
179 | "node_modules/ansi-styles": {
180 | "version": "3.2.1",
181 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
182 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
183 | "dependencies": {
184 | "color-convert": "^1.9.0"
185 | },
186 | "engines": {
187 | "node": ">=4"
188 | }
189 | },
190 | "node_modules/argparse": {
191 | "version": "2.0.1",
192 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
193 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
194 | },
195 | "node_modules/asynckit": {
196 | "version": "0.4.0",
197 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
198 | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
199 | },
200 | "node_modules/axios": {
201 | "version": "1.4.0",
202 | "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz",
203 | "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==",
204 | "dependencies": {
205 | "follow-redirects": "^1.15.0",
206 | "form-data": "^4.0.0",
207 | "proxy-from-env": "^1.1.0"
208 | }
209 | },
210 | "node_modules/base64-js": {
211 | "version": "1.5.1",
212 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
213 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
214 | "funding": [
215 | {
216 | "type": "github",
217 | "url": "https://github.com/sponsors/feross"
218 | },
219 | {
220 | "type": "patreon",
221 | "url": "https://www.patreon.com/feross"
222 | },
223 | {
224 | "type": "consulting",
225 | "url": "https://feross.org/support"
226 | }
227 | ]
228 | },
229 | "node_modules/bl": {
230 | "version": "4.1.0",
231 | "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
232 | "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
233 | "dependencies": {
234 | "buffer": "^5.5.0",
235 | "inherits": "^2.0.4",
236 | "readable-stream": "^3.4.0"
237 | }
238 | },
239 | "node_modules/buffer": {
240 | "version": "5.7.1",
241 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
242 | "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
243 | "funding": [
244 | {
245 | "type": "github",
246 | "url": "https://github.com/sponsors/feross"
247 | },
248 | {
249 | "type": "patreon",
250 | "url": "https://www.patreon.com/feross"
251 | },
252 | {
253 | "type": "consulting",
254 | "url": "https://feross.org/support"
255 | }
256 | ],
257 | "dependencies": {
258 | "base64-js": "^1.3.1",
259 | "ieee754": "^1.1.13"
260 | }
261 | },
262 | "node_modules/buffer-crc32": {
263 | "version": "0.2.13",
264 | "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
265 | "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
266 | "engines": {
267 | "node": "*"
268 | }
269 | },
270 | "node_modules/bytes": {
271 | "version": "3.1.2",
272 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
273 | "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
274 | "engines": {
275 | "node": ">= 0.8"
276 | }
277 | },
278 | "node_modules/cache-content-type": {
279 | "version": "1.0.1",
280 | "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz",
281 | "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==",
282 | "dependencies": {
283 | "mime-types": "^2.1.18",
284 | "ylru": "^1.2.0"
285 | },
286 | "engines": {
287 | "node": ">= 6.0.0"
288 | }
289 | },
290 | "node_modules/call-bind": {
291 | "version": "1.0.2",
292 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
293 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
294 | "dependencies": {
295 | "function-bind": "^1.1.1",
296 | "get-intrinsic": "^1.0.2"
297 | },
298 | "funding": {
299 | "url": "https://github.com/sponsors/ljharb"
300 | }
301 | },
302 | "node_modules/callsites": {
303 | "version": "3.1.0",
304 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
305 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
306 | "engines": {
307 | "node": ">=6"
308 | }
309 | },
310 | "node_modules/chalk": {
311 | "version": "2.4.2",
312 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
313 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
314 | "dependencies": {
315 | "ansi-styles": "^3.2.1",
316 | "escape-string-regexp": "^1.0.5",
317 | "supports-color": "^5.3.0"
318 | },
319 | "engines": {
320 | "node": ">=4"
321 | }
322 | },
323 | "node_modules/chownr": {
324 | "version": "1.1.4",
325 | "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
326 | "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
327 | },
328 | "node_modules/chromium-bidi": {
329 | "version": "0.4.7",
330 | "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.7.tgz",
331 | "integrity": "sha512-6+mJuFXwTMU6I3vYLs6IL8A1DyQTPjCfIL971X0aMPVGRbGnNfl6i6Cl0NMbxi2bRYLGESt9T2ZIMRM5PAEcIQ==",
332 | "dependencies": {
333 | "mitt": "3.0.0"
334 | },
335 | "peerDependencies": {
336 | "devtools-protocol": "*"
337 | }
338 | },
339 | "node_modules/cliui": {
340 | "version": "8.0.1",
341 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
342 | "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
343 | "dependencies": {
344 | "string-width": "^4.2.0",
345 | "strip-ansi": "^6.0.1",
346 | "wrap-ansi": "^7.0.0"
347 | },
348 | "engines": {
349 | "node": ">=12"
350 | }
351 | },
352 | "node_modules/co": {
353 | "version": "4.6.0",
354 | "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
355 | "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
356 | "engines": {
357 | "iojs": ">= 1.0.0",
358 | "node": ">= 0.12.0"
359 | }
360 | },
361 | "node_modules/co-body": {
362 | "version": "6.1.0",
363 | "resolved": "https://registry.npmjs.org/co-body/-/co-body-6.1.0.tgz",
364 | "integrity": "sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==",
365 | "dependencies": {
366 | "inflation": "^2.0.0",
367 | "qs": "^6.5.2",
368 | "raw-body": "^2.3.3",
369 | "type-is": "^1.6.16"
370 | }
371 | },
372 | "node_modules/color-convert": {
373 | "version": "1.9.3",
374 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
375 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
376 | "dependencies": {
377 | "color-name": "1.1.3"
378 | }
379 | },
380 | "node_modules/color-name": {
381 | "version": "1.1.3",
382 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
383 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
384 | },
385 | "node_modules/combined-stream": {
386 | "version": "1.0.8",
387 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
388 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
389 | "dependencies": {
390 | "delayed-stream": "~1.0.0"
391 | },
392 | "engines": {
393 | "node": ">= 0.8"
394 | }
395 | },
396 | "node_modules/content-disposition": {
397 | "version": "0.5.4",
398 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
399 | "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
400 | "dependencies": {
401 | "safe-buffer": "5.2.1"
402 | },
403 | "engines": {
404 | "node": ">= 0.6"
405 | }
406 | },
407 | "node_modules/content-type": {
408 | "version": "1.0.5",
409 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
410 | "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
411 | "engines": {
412 | "node": ">= 0.6"
413 | }
414 | },
415 | "node_modules/cookies": {
416 | "version": "0.8.0",
417 | "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz",
418 | "integrity": "sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==",
419 | "dependencies": {
420 | "depd": "~2.0.0",
421 | "keygrip": "~1.1.0"
422 | },
423 | "engines": {
424 | "node": ">= 0.8"
425 | }
426 | },
427 | "node_modules/copy-to": {
428 | "version": "2.0.1",
429 | "resolved": "https://registry.npmjs.org/copy-to/-/copy-to-2.0.1.tgz",
430 | "integrity": "sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w=="
431 | },
432 | "node_modules/core-js-pure": {
433 | "version": "3.30.2",
434 | "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.30.2.tgz",
435 | "integrity": "sha512-p/npFUJXXBkCCTIlEGBdghofn00jWG6ZOtdoIXSJmAu2QBvN0IqpZXWweOytcwE6cfx8ZvVUy1vw8zxhe4Y2vg==",
436 | "hasInstallScript": true,
437 | "funding": {
438 | "type": "opencollective",
439 | "url": "https://opencollective.com/core-js"
440 | }
441 | },
442 | "node_modules/cosmiconfig": {
443 | "version": "8.1.3",
444 | "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz",
445 | "integrity": "sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==",
446 | "dependencies": {
447 | "import-fresh": "^3.2.1",
448 | "js-yaml": "^4.1.0",
449 | "parse-json": "^5.0.0",
450 | "path-type": "^4.0.0"
451 | },
452 | "engines": {
453 | "node": ">=14"
454 | },
455 | "funding": {
456 | "url": "https://github.com/sponsors/d-fischer"
457 | }
458 | },
459 | "node_modules/cross-fetch": {
460 | "version": "3.1.5",
461 | "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz",
462 | "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==",
463 | "dependencies": {
464 | "node-fetch": "2.6.7"
465 | }
466 | },
467 | "node_modules/debug": {
468 | "version": "4.3.4",
469 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
470 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
471 | "dependencies": {
472 | "ms": "2.1.2"
473 | },
474 | "engines": {
475 | "node": ">=6.0"
476 | },
477 | "peerDependenciesMeta": {
478 | "supports-color": {
479 | "optional": true
480 | }
481 | }
482 | },
483 | "node_modules/deep-equal": {
484 | "version": "1.0.1",
485 | "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
486 | "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw=="
487 | },
488 | "node_modules/delayed-stream": {
489 | "version": "1.0.0",
490 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
491 | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
492 | "engines": {
493 | "node": ">=0.4.0"
494 | }
495 | },
496 | "node_modules/delegates": {
497 | "version": "1.0.0",
498 | "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
499 | "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ=="
500 | },
501 | "node_modules/depd": {
502 | "version": "2.0.0",
503 | "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
504 | "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
505 | "engines": {
506 | "node": ">= 0.8"
507 | }
508 | },
509 | "node_modules/destroy": {
510 | "version": "1.2.0",
511 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
512 | "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
513 | "engines": {
514 | "node": ">= 0.8",
515 | "npm": "1.2.8000 || >= 1.4.16"
516 | }
517 | },
518 | "node_modules/detect-indent": {
519 | "version": "6.0.0",
520 | "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz",
521 | "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==",
522 | "engines": {
523 | "node": ">=8"
524 | }
525 | },
526 | "node_modules/devtools-protocol": {
527 | "version": "0.0.1120988",
528 | "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1120988.tgz",
529 | "integrity": "sha512-39fCpE3Z78IaIPChJsP6Lhmkbf4dWXOmzLk/KFTdRkNk/0JymRIfUynDVRndV9HoDz8PyalK1UH21ST/ivwW5Q=="
530 | },
531 | "node_modules/docopt": {
532 | "version": "0.6.2",
533 | "resolved": "https://registry.npmjs.org/docopt/-/docopt-0.6.2.tgz",
534 | "integrity": "sha512-NqTbaYeE4gA/wU1hdKFdU+AFahpDOpgGLzHP42k6H6DKExJd0A55KEVWYhL9FEmHmgeLvEU2vuKXDuU+4yToOw==",
535 | "engines": {
536 | "node": ">=0.10.0"
537 | }
538 | },
539 | "node_modules/dot-json": {
540 | "version": "1.3.0",
541 | "resolved": "https://registry.npmjs.org/dot-json/-/dot-json-1.3.0.tgz",
542 | "integrity": "sha512-Pu11Prog/Yjf2lBICow82/DSV46n3a2XT1Rqt/CeuhkO1fuacF7xydYhI0SwQx2Ue0jCyLtQzgKPFEO6ewv+bQ==",
543 | "dependencies": {
544 | "detect-indent": "~6.0.0",
545 | "docopt": "~0.6.2",
546 | "underscore-keypath": "~0.0.22"
547 | },
548 | "bin": {
549 | "dot-json": "bin/dot-json.js"
550 | }
551 | },
552 | "node_modules/dotenv": {
553 | "version": "16.0.3",
554 | "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz",
555 | "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==",
556 | "engines": {
557 | "node": ">=12"
558 | }
559 | },
560 | "node_modules/duplexer": {
561 | "version": "0.1.2",
562 | "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
563 | "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg=="
564 | },
565 | "node_modules/ee-first": {
566 | "version": "1.1.1",
567 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
568 | "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
569 | },
570 | "node_modules/emoji-regex": {
571 | "version": "8.0.0",
572 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
573 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
574 | },
575 | "node_modules/encodeurl": {
576 | "version": "1.0.2",
577 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
578 | "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
579 | "engines": {
580 | "node": ">= 0.8"
581 | }
582 | },
583 | "node_modules/end-of-stream": {
584 | "version": "1.4.4",
585 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
586 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
587 | "dependencies": {
588 | "once": "^1.4.0"
589 | }
590 | },
591 | "node_modules/error-ex": {
592 | "version": "1.3.2",
593 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
594 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
595 | "dependencies": {
596 | "is-arrayish": "^0.2.1"
597 | }
598 | },
599 | "node_modules/escalade": {
600 | "version": "3.1.1",
601 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
602 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
603 | "engines": {
604 | "node": ">=6"
605 | }
606 | },
607 | "node_modules/escape-html": {
608 | "version": "1.0.3",
609 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
610 | "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
611 | },
612 | "node_modules/escape-string-regexp": {
613 | "version": "1.0.5",
614 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
615 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
616 | "engines": {
617 | "node": ">=0.8.0"
618 | }
619 | },
620 | "node_modules/event-stream": {
621 | "version": "4.0.1",
622 | "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz",
623 | "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==",
624 | "dependencies": {
625 | "duplexer": "^0.1.1",
626 | "from": "^0.1.7",
627 | "map-stream": "0.0.7",
628 | "pause-stream": "^0.0.11",
629 | "split": "^1.0.1",
630 | "stream-combiner": "^0.2.2",
631 | "through": "^2.3.8"
632 | }
633 | },
634 | "node_modules/extract-zip": {
635 | "version": "2.0.1",
636 | "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
637 | "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
638 | "dependencies": {
639 | "debug": "^4.1.1",
640 | "get-stream": "^5.1.0",
641 | "yauzl": "^2.10.0"
642 | },
643 | "bin": {
644 | "extract-zip": "cli.js"
645 | },
646 | "engines": {
647 | "node": ">= 10.17.0"
648 | },
649 | "optionalDependencies": {
650 | "@types/yauzl": "^2.9.1"
651 | }
652 | },
653 | "node_modules/fake-useragent": {
654 | "version": "1.0.1",
655 | "resolved": "https://registry.npmjs.org/fake-useragent/-/fake-useragent-1.0.1.tgz",
656 | "integrity": "sha512-BOQh1TM//DhrVaeZ+b3w3s4E40rfYcDTn5aoSM2w1xVsZVGglNOzPR5H8KDO8NmF8sT4ppxyb4/MHGIHfZsVDA=="
657 | },
658 | "node_modules/fd-slicer": {
659 | "version": "1.1.0",
660 | "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
661 | "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==",
662 | "dependencies": {
663 | "pend": "~1.2.0"
664 | }
665 | },
666 | "node_modules/ffi-napi": {
667 | "version": "4.0.3",
668 | "resolved": "https://registry.npmjs.org/ffi-napi/-/ffi-napi-4.0.3.tgz",
669 | "integrity": "sha512-PMdLCIvDY9mS32RxZ0XGb95sonPRal8aqRhLbeEtWKZTe2A87qRFG9HjOhvG8EX2UmQw5XNRMIOT+1MYlWmdeg==",
670 | "hasInstallScript": true,
671 | "dependencies": {
672 | "debug": "^4.1.1",
673 | "get-uv-event-loop-napi-h": "^1.0.5",
674 | "node-addon-api": "^3.0.0",
675 | "node-gyp-build": "^4.2.1",
676 | "ref-napi": "^2.0.1 || ^3.0.2",
677 | "ref-struct-di": "^1.1.0"
678 | },
679 | "engines": {
680 | "node": ">=10"
681 | }
682 | },
683 | "node_modules/follow-redirects": {
684 | "version": "1.15.2",
685 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
686 | "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
687 | "funding": [
688 | {
689 | "type": "individual",
690 | "url": "https://github.com/sponsors/RubenVerborgh"
691 | }
692 | ],
693 | "engines": {
694 | "node": ">=4.0"
695 | },
696 | "peerDependenciesMeta": {
697 | "debug": {
698 | "optional": true
699 | }
700 | }
701 | },
702 | "node_modules/form-data": {
703 | "version": "4.0.0",
704 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
705 | "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
706 | "dependencies": {
707 | "asynckit": "^0.4.0",
708 | "combined-stream": "^1.0.8",
709 | "mime-types": "^2.1.12"
710 | },
711 | "engines": {
712 | "node": ">= 6"
713 | }
714 | },
715 | "node_modules/fresh": {
716 | "version": "0.5.2",
717 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
718 | "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
719 | "engines": {
720 | "node": ">= 0.6"
721 | }
722 | },
723 | "node_modules/from": {
724 | "version": "0.1.7",
725 | "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz",
726 | "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g=="
727 | },
728 | "node_modules/fs-constants": {
729 | "version": "1.0.0",
730 | "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
731 | "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
732 | },
733 | "node_modules/function-bind": {
734 | "version": "1.1.1",
735 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
736 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
737 | },
738 | "node_modules/get-caller-file": {
739 | "version": "2.0.5",
740 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
741 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
742 | "engines": {
743 | "node": "6.* || 8.* || >= 10.*"
744 | }
745 | },
746 | "node_modules/get-intrinsic": {
747 | "version": "1.2.0",
748 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
749 | "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
750 | "dependencies": {
751 | "function-bind": "^1.1.1",
752 | "has": "^1.0.3",
753 | "has-symbols": "^1.0.3"
754 | },
755 | "funding": {
756 | "url": "https://github.com/sponsors/ljharb"
757 | }
758 | },
759 | "node_modules/get-stream": {
760 | "version": "5.2.0",
761 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
762 | "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
763 | "dependencies": {
764 | "pump": "^3.0.0"
765 | },
766 | "engines": {
767 | "node": ">=8"
768 | },
769 | "funding": {
770 | "url": "https://github.com/sponsors/sindresorhus"
771 | }
772 | },
773 | "node_modules/get-symbol-from-current-process-h": {
774 | "version": "1.0.2",
775 | "resolved": "https://registry.npmjs.org/get-symbol-from-current-process-h/-/get-symbol-from-current-process-h-1.0.2.tgz",
776 | "integrity": "sha512-syloC6fsCt62ELLrr1VKBM1ggOpMdetX9hTrdW77UQdcApPHLmf7CI7OKcN1c9kYuNxKcDe4iJ4FY9sX3aw2xw=="
777 | },
778 | "node_modules/get-uv-event-loop-napi-h": {
779 | "version": "1.0.6",
780 | "resolved": "https://registry.npmjs.org/get-uv-event-loop-napi-h/-/get-uv-event-loop-napi-h-1.0.6.tgz",
781 | "integrity": "sha512-t5c9VNR84nRoF+eLiz6wFrEp1SE2Acg0wS+Ysa2zF0eROes+LzOfuTaVHxGy8AbS8rq7FHEJzjnCZo1BupwdJg==",
782 | "dependencies": {
783 | "get-symbol-from-current-process-h": "^1.0.1"
784 | }
785 | },
786 | "node_modules/has": {
787 | "version": "1.0.3",
788 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
789 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
790 | "dependencies": {
791 | "function-bind": "^1.1.1"
792 | },
793 | "engines": {
794 | "node": ">= 0.4.0"
795 | }
796 | },
797 | "node_modules/has-flag": {
798 | "version": "3.0.0",
799 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
800 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
801 | "engines": {
802 | "node": ">=4"
803 | }
804 | },
805 | "node_modules/has-symbols": {
806 | "version": "1.0.3",
807 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
808 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
809 | "engines": {
810 | "node": ">= 0.4"
811 | },
812 | "funding": {
813 | "url": "https://github.com/sponsors/ljharb"
814 | }
815 | },
816 | "node_modules/has-tostringtag": {
817 | "version": "1.0.0",
818 | "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
819 | "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
820 | "dependencies": {
821 | "has-symbols": "^1.0.2"
822 | },
823 | "engines": {
824 | "node": ">= 0.4"
825 | },
826 | "funding": {
827 | "url": "https://github.com/sponsors/ljharb"
828 | }
829 | },
830 | "node_modules/http-assert": {
831 | "version": "1.5.0",
832 | "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz",
833 | "integrity": "sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==",
834 | "dependencies": {
835 | "deep-equal": "~1.0.1",
836 | "http-errors": "~1.8.0"
837 | },
838 | "engines": {
839 | "node": ">= 0.8"
840 | }
841 | },
842 | "node_modules/http-errors": {
843 | "version": "1.8.1",
844 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
845 | "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
846 | "dependencies": {
847 | "depd": "~1.1.2",
848 | "inherits": "2.0.4",
849 | "setprototypeof": "1.2.0",
850 | "statuses": ">= 1.5.0 < 2",
851 | "toidentifier": "1.0.1"
852 | },
853 | "engines": {
854 | "node": ">= 0.6"
855 | }
856 | },
857 | "node_modules/http-errors/node_modules/depd": {
858 | "version": "1.1.2",
859 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
860 | "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
861 | "engines": {
862 | "node": ">= 0.6"
863 | }
864 | },
865 | "node_modules/http-proxy-agent": {
866 | "version": "6.0.1",
867 | "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-6.0.1.tgz",
868 | "integrity": "sha512-rD8wrfJHbnVll9lkIpQH3vDbKON1Ssciggwydom/r89HLBXEqdMhL6wx7QF5WePDPSr0OdoztdXoojbrXadG5Q==",
869 | "dependencies": {
870 | "agent-base": "^7.0.1",
871 | "debug": "^4.3.4"
872 | },
873 | "engines": {
874 | "node": ">= 14"
875 | }
876 | },
877 | "node_modules/https-proxy-agent": {
878 | "version": "5.0.1",
879 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
880 | "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
881 | "dependencies": {
882 | "agent-base": "6",
883 | "debug": "4"
884 | },
885 | "engines": {
886 | "node": ">= 6"
887 | }
888 | },
889 | "node_modules/https-proxy-agent/node_modules/agent-base": {
890 | "version": "6.0.2",
891 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
892 | "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
893 | "dependencies": {
894 | "debug": "4"
895 | },
896 | "engines": {
897 | "node": ">= 6.0.0"
898 | }
899 | },
900 | "node_modules/iconv-lite": {
901 | "version": "0.4.24",
902 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
903 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
904 | "dependencies": {
905 | "safer-buffer": ">= 2.1.2 < 3"
906 | },
907 | "engines": {
908 | "node": ">=0.10.0"
909 | }
910 | },
911 | "node_modules/ieee754": {
912 | "version": "1.2.1",
913 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
914 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
915 | "funding": [
916 | {
917 | "type": "github",
918 | "url": "https://github.com/sponsors/feross"
919 | },
920 | {
921 | "type": "patreon",
922 | "url": "https://www.patreon.com/feross"
923 | },
924 | {
925 | "type": "consulting",
926 | "url": "https://feross.org/support"
927 | }
928 | ]
929 | },
930 | "node_modules/import-fresh": {
931 | "version": "3.3.0",
932 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
933 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
934 | "dependencies": {
935 | "parent-module": "^1.0.0",
936 | "resolve-from": "^4.0.0"
937 | },
938 | "engines": {
939 | "node": ">=6"
940 | },
941 | "funding": {
942 | "url": "https://github.com/sponsors/sindresorhus"
943 | }
944 | },
945 | "node_modules/inflation": {
946 | "version": "2.0.0",
947 | "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz",
948 | "integrity": "sha512-m3xv4hJYR2oXw4o4Y5l6P5P16WYmazYof+el6Al3f+YlggGj6qT9kImBAnzDelRALnP5d3h4jGBPKzYCizjZZw==",
949 | "engines": {
950 | "node": ">= 0.8.0"
951 | }
952 | },
953 | "node_modules/inherits": {
954 | "version": "2.0.4",
955 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
956 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
957 | },
958 | "node_modules/is-arrayish": {
959 | "version": "0.2.1",
960 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
961 | "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="
962 | },
963 | "node_modules/is-fullwidth-code-point": {
964 | "version": "3.0.0",
965 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
966 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
967 | "engines": {
968 | "node": ">=8"
969 | }
970 | },
971 | "node_modules/is-generator-function": {
972 | "version": "1.0.10",
973 | "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
974 | "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
975 | "dependencies": {
976 | "has-tostringtag": "^1.0.0"
977 | },
978 | "engines": {
979 | "node": ">= 0.4"
980 | },
981 | "funding": {
982 | "url": "https://github.com/sponsors/ljharb"
983 | }
984 | },
985 | "node_modules/js-tokens": {
986 | "version": "4.0.0",
987 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
988 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
989 | },
990 | "node_modules/js-yaml": {
991 | "version": "4.1.0",
992 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
993 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
994 | "dependencies": {
995 | "argparse": "^2.0.1"
996 | },
997 | "bin": {
998 | "js-yaml": "bin/js-yaml.js"
999 | }
1000 | },
1001 | "node_modules/json-parse-even-better-errors": {
1002 | "version": "2.3.1",
1003 | "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
1004 | "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
1005 | },
1006 | "node_modules/keygrip": {
1007 | "version": "1.1.0",
1008 | "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz",
1009 | "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==",
1010 | "dependencies": {
1011 | "tsscmp": "1.0.6"
1012 | },
1013 | "engines": {
1014 | "node": ">= 0.6"
1015 | }
1016 | },
1017 | "node_modules/koa": {
1018 | "version": "2.14.2",
1019 | "resolved": "https://registry.npmjs.org/koa/-/koa-2.14.2.tgz",
1020 | "integrity": "sha512-VFI2bpJaodz6P7x2uyLiX6RLYpZmOJqNmoCst/Yyd7hQlszyPwG/I9CQJ63nOtKSxpt5M7NH67V6nJL2BwCl7g==",
1021 | "dependencies": {
1022 | "accepts": "^1.3.5",
1023 | "cache-content-type": "^1.0.0",
1024 | "content-disposition": "~0.5.2",
1025 | "content-type": "^1.0.4",
1026 | "cookies": "~0.8.0",
1027 | "debug": "^4.3.2",
1028 | "delegates": "^1.0.0",
1029 | "depd": "^2.0.0",
1030 | "destroy": "^1.0.4",
1031 | "encodeurl": "^1.0.2",
1032 | "escape-html": "^1.0.3",
1033 | "fresh": "~0.5.2",
1034 | "http-assert": "^1.3.0",
1035 | "http-errors": "^1.6.3",
1036 | "is-generator-function": "^1.0.7",
1037 | "koa-compose": "^4.1.0",
1038 | "koa-convert": "^2.0.0",
1039 | "on-finished": "^2.3.0",
1040 | "only": "~0.0.2",
1041 | "parseurl": "^1.3.2",
1042 | "statuses": "^1.5.0",
1043 | "type-is": "^1.6.16",
1044 | "vary": "^1.1.2"
1045 | },
1046 | "engines": {
1047 | "node": "^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4"
1048 | }
1049 | },
1050 | "node_modules/koa-bodyparser": {
1051 | "version": "4.4.0",
1052 | "resolved": "https://registry.npmjs.org/koa-bodyparser/-/koa-bodyparser-4.4.0.tgz",
1053 | "integrity": "sha512-AXPY7wwKZUmbgb8VkTEUFoRNOlx6aWRJwEnQD+zfNf33/7KSAkN4Oo9BqlIk80D+5TvuqlhpQT5dPVcyxl5Zsw==",
1054 | "dependencies": {
1055 | "co-body": "^6.0.0",
1056 | "copy-to": "^2.0.1"
1057 | },
1058 | "engines": {
1059 | "node": ">=8.0.0"
1060 | }
1061 | },
1062 | "node_modules/koa-compose": {
1063 | "version": "4.1.0",
1064 | "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz",
1065 | "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw=="
1066 | },
1067 | "node_modules/koa-convert": {
1068 | "version": "2.0.0",
1069 | "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-2.0.0.tgz",
1070 | "integrity": "sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==",
1071 | "dependencies": {
1072 | "co": "^4.6.0",
1073 | "koa-compose": "^4.1.0"
1074 | },
1075 | "engines": {
1076 | "node": ">= 10"
1077 | }
1078 | },
1079 | "node_modules/koa-router": {
1080 | "version": "12.0.0",
1081 | "resolved": "https://registry.npmjs.org/koa-router/-/koa-router-12.0.0.tgz",
1082 | "integrity": "sha512-zGrdiXygGYW8WvrzeGsHZvKnHs4DzyGoqJ9a8iHlRkiwuEAOAPyI27//OlhoWdgFAEIM3qbUgr0KCuRaP/TCag==",
1083 | "dependencies": {
1084 | "http-errors": "^2.0.0",
1085 | "koa-compose": "^4.1.0",
1086 | "methods": "^1.1.2",
1087 | "path-to-regexp": "^6.2.1"
1088 | },
1089 | "engines": {
1090 | "node": ">= 12"
1091 | }
1092 | },
1093 | "node_modules/koa-router/node_modules/http-errors": {
1094 | "version": "2.0.0",
1095 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
1096 | "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
1097 | "dependencies": {
1098 | "depd": "2.0.0",
1099 | "inherits": "2.0.4",
1100 | "setprototypeof": "1.2.0",
1101 | "statuses": "2.0.1",
1102 | "toidentifier": "1.0.1"
1103 | },
1104 | "engines": {
1105 | "node": ">= 0.8"
1106 | }
1107 | },
1108 | "node_modules/koa-router/node_modules/statuses": {
1109 | "version": "2.0.1",
1110 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
1111 | "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
1112 | "engines": {
1113 | "node": ">= 0.8"
1114 | }
1115 | },
1116 | "node_modules/lines-and-columns": {
1117 | "version": "1.2.4",
1118 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
1119 | "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
1120 | },
1121 | "node_modules/lodash.clonedeep": {
1122 | "version": "4.5.0",
1123 | "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
1124 | "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ=="
1125 | },
1126 | "node_modules/map-stream": {
1127 | "version": "0.0.7",
1128 | "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz",
1129 | "integrity": "sha512-C0X0KQmGm3N2ftbTGBhSyuydQ+vV1LC3f3zPvT3RXHXNZrvfPZcoXp/N5DOa8vedX/rTMm2CjTtivFg2STJMRQ=="
1130 | },
1131 | "node_modules/media-typer": {
1132 | "version": "0.3.0",
1133 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
1134 | "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
1135 | "engines": {
1136 | "node": ">= 0.6"
1137 | }
1138 | },
1139 | "node_modules/methods": {
1140 | "version": "1.1.2",
1141 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
1142 | "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
1143 | "engines": {
1144 | "node": ">= 0.6"
1145 | }
1146 | },
1147 | "node_modules/mime-db": {
1148 | "version": "1.52.0",
1149 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
1150 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
1151 | "engines": {
1152 | "node": ">= 0.6"
1153 | }
1154 | },
1155 | "node_modules/mime-types": {
1156 | "version": "2.1.35",
1157 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
1158 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
1159 | "dependencies": {
1160 | "mime-db": "1.52.0"
1161 | },
1162 | "engines": {
1163 | "node": ">= 0.6"
1164 | }
1165 | },
1166 | "node_modules/mitt": {
1167 | "version": "3.0.0",
1168 | "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz",
1169 | "integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ=="
1170 | },
1171 | "node_modules/mkdirp-classic": {
1172 | "version": "0.5.3",
1173 | "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
1174 | "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="
1175 | },
1176 | "node_modules/ms": {
1177 | "version": "2.1.2",
1178 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1179 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
1180 | },
1181 | "node_modules/negotiator": {
1182 | "version": "0.6.3",
1183 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
1184 | "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
1185 | "engines": {
1186 | "node": ">= 0.6"
1187 | }
1188 | },
1189 | "node_modules/node-addon-api": {
1190 | "version": "3.2.1",
1191 | "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz",
1192 | "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A=="
1193 | },
1194 | "node_modules/node-fetch": {
1195 | "version": "2.6.7",
1196 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
1197 | "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
1198 | "dependencies": {
1199 | "whatwg-url": "^5.0.0"
1200 | },
1201 | "engines": {
1202 | "node": "4.x || >=6.0.0"
1203 | },
1204 | "peerDependencies": {
1205 | "encoding": "^0.1.0"
1206 | },
1207 | "peerDependenciesMeta": {
1208 | "encoding": {
1209 | "optional": true
1210 | }
1211 | }
1212 | },
1213 | "node_modules/node-gyp-build": {
1214 | "version": "4.6.0",
1215 | "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz",
1216 | "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==",
1217 | "bin": {
1218 | "node-gyp-build": "bin.js",
1219 | "node-gyp-build-optional": "optional.js",
1220 | "node-gyp-build-test": "build-test.js"
1221 | }
1222 | },
1223 | "node_modules/object-inspect": {
1224 | "version": "1.12.3",
1225 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
1226 | "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
1227 | "funding": {
1228 | "url": "https://github.com/sponsors/ljharb"
1229 | }
1230 | },
1231 | "node_modules/on-finished": {
1232 | "version": "2.4.1",
1233 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
1234 | "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
1235 | "dependencies": {
1236 | "ee-first": "1.1.1"
1237 | },
1238 | "engines": {
1239 | "node": ">= 0.8"
1240 | }
1241 | },
1242 | "node_modules/once": {
1243 | "version": "1.4.0",
1244 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1245 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
1246 | "dependencies": {
1247 | "wrappy": "1"
1248 | }
1249 | },
1250 | "node_modules/only": {
1251 | "version": "0.0.2",
1252 | "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz",
1253 | "integrity": "sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ=="
1254 | },
1255 | "node_modules/parent-module": {
1256 | "version": "1.0.1",
1257 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
1258 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
1259 | "dependencies": {
1260 | "callsites": "^3.0.0"
1261 | },
1262 | "engines": {
1263 | "node": ">=6"
1264 | }
1265 | },
1266 | "node_modules/parse-json": {
1267 | "version": "5.2.0",
1268 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
1269 | "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
1270 | "dependencies": {
1271 | "@babel/code-frame": "^7.0.0",
1272 | "error-ex": "^1.3.1",
1273 | "json-parse-even-better-errors": "^2.3.0",
1274 | "lines-and-columns": "^1.1.6"
1275 | },
1276 | "engines": {
1277 | "node": ">=8"
1278 | },
1279 | "funding": {
1280 | "url": "https://github.com/sponsors/sindresorhus"
1281 | }
1282 | },
1283 | "node_modules/parseurl": {
1284 | "version": "1.3.3",
1285 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
1286 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
1287 | "engines": {
1288 | "node": ">= 0.8"
1289 | }
1290 | },
1291 | "node_modules/path-to-regexp": {
1292 | "version": "6.2.1",
1293 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz",
1294 | "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw=="
1295 | },
1296 | "node_modules/path-type": {
1297 | "version": "4.0.0",
1298 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
1299 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
1300 | "engines": {
1301 | "node": ">=8"
1302 | }
1303 | },
1304 | "node_modules/pause-stream": {
1305 | "version": "0.0.11",
1306 | "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
1307 | "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==",
1308 | "dependencies": {
1309 | "through": "~2.3"
1310 | }
1311 | },
1312 | "node_modules/pend": {
1313 | "version": "1.2.0",
1314 | "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
1315 | "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg=="
1316 | },
1317 | "node_modules/progress": {
1318 | "version": "2.0.3",
1319 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
1320 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
1321 | "engines": {
1322 | "node": ">=0.4.0"
1323 | }
1324 | },
1325 | "node_modules/proxy-from-env": {
1326 | "version": "1.1.0",
1327 | "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
1328 | "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
1329 | },
1330 | "node_modules/psl": {
1331 | "version": "1.9.0",
1332 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
1333 | "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag=="
1334 | },
1335 | "node_modules/pump": {
1336 | "version": "3.0.0",
1337 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
1338 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
1339 | "dependencies": {
1340 | "end-of-stream": "^1.1.0",
1341 | "once": "^1.3.1"
1342 | }
1343 | },
1344 | "node_modules/punycode": {
1345 | "version": "2.3.0",
1346 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
1347 | "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
1348 | "engines": {
1349 | "node": ">=6"
1350 | }
1351 | },
1352 | "node_modules/puppeteer": {
1353 | "version": "20.1.2",
1354 | "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-20.1.2.tgz",
1355 | "integrity": "sha512-QYDp+iVMP30TwlkXFOocON9qR3Nac5ez7PdXbY90mfuEgZb9vf3/OXL2vHprxwPtb2hgD4AxXvLZhEIqfD2y8Q==",
1356 | "hasInstallScript": true,
1357 | "dependencies": {
1358 | "@puppeteer/browsers": "1.1.0",
1359 | "cosmiconfig": "8.1.3",
1360 | "puppeteer-core": "20.1.2"
1361 | }
1362 | },
1363 | "node_modules/puppeteer-core": {
1364 | "version": "20.1.2",
1365 | "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-20.1.2.tgz",
1366 | "integrity": "sha512-S1BLte+jVC/ugZkNoxFW9Fvbyr30CKZ0IIumf98FFqLh06Vuc21fddsr34botKtz27T81pqkpDYXNXYomA01dg==",
1367 | "dependencies": {
1368 | "@puppeteer/browsers": "1.1.0",
1369 | "chromium-bidi": "0.4.7",
1370 | "cross-fetch": "3.1.5",
1371 | "debug": "4.3.4",
1372 | "devtools-protocol": "0.0.1120988",
1373 | "ws": "8.13.0"
1374 | },
1375 | "engines": {
1376 | "node": ">=16.0.0"
1377 | },
1378 | "peerDependencies": {
1379 | "typescript": ">= 4.7.4"
1380 | },
1381 | "peerDependenciesMeta": {
1382 | "typescript": {
1383 | "optional": true
1384 | }
1385 | }
1386 | },
1387 | "node_modules/qs": {
1388 | "version": "6.11.1",
1389 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.1.tgz",
1390 | "integrity": "sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ==",
1391 | "dependencies": {
1392 | "side-channel": "^1.0.4"
1393 | },
1394 | "engines": {
1395 | "node": ">=0.6"
1396 | },
1397 | "funding": {
1398 | "url": "https://github.com/sponsors/ljharb"
1399 | }
1400 | },
1401 | "node_modules/querystringify": {
1402 | "version": "2.2.0",
1403 | "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
1404 | "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="
1405 | },
1406 | "node_modules/raw-body": {
1407 | "version": "2.5.2",
1408 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
1409 | "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
1410 | "dependencies": {
1411 | "bytes": "3.1.2",
1412 | "http-errors": "2.0.0",
1413 | "iconv-lite": "0.4.24",
1414 | "unpipe": "1.0.0"
1415 | },
1416 | "engines": {
1417 | "node": ">= 0.8"
1418 | }
1419 | },
1420 | "node_modules/raw-body/node_modules/http-errors": {
1421 | "version": "2.0.0",
1422 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
1423 | "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
1424 | "dependencies": {
1425 | "depd": "2.0.0",
1426 | "inherits": "2.0.4",
1427 | "setprototypeof": "1.2.0",
1428 | "statuses": "2.0.1",
1429 | "toidentifier": "1.0.1"
1430 | },
1431 | "engines": {
1432 | "node": ">= 0.8"
1433 | }
1434 | },
1435 | "node_modules/raw-body/node_modules/statuses": {
1436 | "version": "2.0.1",
1437 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
1438 | "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
1439 | "engines": {
1440 | "node": ">= 0.8"
1441 | }
1442 | },
1443 | "node_modules/readable-stream": {
1444 | "version": "3.6.2",
1445 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
1446 | "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
1447 | "dependencies": {
1448 | "inherits": "^2.0.3",
1449 | "string_decoder": "^1.1.1",
1450 | "util-deprecate": "^1.0.1"
1451 | },
1452 | "engines": {
1453 | "node": ">= 6"
1454 | }
1455 | },
1456 | "node_modules/ref-napi": {
1457 | "version": "3.0.3",
1458 | "resolved": "https://registry.npmjs.org/ref-napi/-/ref-napi-3.0.3.tgz",
1459 | "integrity": "sha512-LiMq/XDGcgodTYOMppikEtJelWsKQERbLQsYm0IOOnzhwE9xYZC7x8txNnFC9wJNOkPferQI4vD4ZkC0mDyrOA==",
1460 | "hasInstallScript": true,
1461 | "dependencies": {
1462 | "debug": "^4.1.1",
1463 | "get-symbol-from-current-process-h": "^1.0.2",
1464 | "node-addon-api": "^3.0.0",
1465 | "node-gyp-build": "^4.2.1"
1466 | },
1467 | "engines": {
1468 | "node": ">= 10.0"
1469 | }
1470 | },
1471 | "node_modules/ref-struct-di": {
1472 | "version": "1.1.1",
1473 | "resolved": "https://registry.npmjs.org/ref-struct-di/-/ref-struct-di-1.1.1.tgz",
1474 | "integrity": "sha512-2Xyn/0Qgz89VT+++WP0sTosdm9oeowLP23wRJYhG4BFdMUrLj3jhwHZNEytYNYgtPKLNTP3KJX4HEgBvM1/Y2g==",
1475 | "dependencies": {
1476 | "debug": "^3.1.0"
1477 | }
1478 | },
1479 | "node_modules/ref-struct-di/node_modules/debug": {
1480 | "version": "3.2.7",
1481 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
1482 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
1483 | "dependencies": {
1484 | "ms": "^2.1.1"
1485 | }
1486 | },
1487 | "node_modules/regenerator-runtime": {
1488 | "version": "0.13.11",
1489 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
1490 | "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
1491 | },
1492 | "node_modules/require-directory": {
1493 | "version": "2.1.1",
1494 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
1495 | "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
1496 | "engines": {
1497 | "node": ">=0.10.0"
1498 | }
1499 | },
1500 | "node_modules/requires-port": {
1501 | "version": "1.0.0",
1502 | "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
1503 | "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="
1504 | },
1505 | "node_modules/resolve-from": {
1506 | "version": "4.0.0",
1507 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
1508 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
1509 | "engines": {
1510 | "node": ">=4"
1511 | }
1512 | },
1513 | "node_modules/safe-buffer": {
1514 | "version": "5.2.1",
1515 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
1516 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
1517 | "funding": [
1518 | {
1519 | "type": "github",
1520 | "url": "https://github.com/sponsors/feross"
1521 | },
1522 | {
1523 | "type": "patreon",
1524 | "url": "https://www.patreon.com/feross"
1525 | },
1526 | {
1527 | "type": "consulting",
1528 | "url": "https://feross.org/support"
1529 | }
1530 | ]
1531 | },
1532 | "node_modules/safer-buffer": {
1533 | "version": "2.1.2",
1534 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1535 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
1536 | },
1537 | "node_modules/setprototypeof": {
1538 | "version": "1.2.0",
1539 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
1540 | "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
1541 | },
1542 | "node_modules/side-channel": {
1543 | "version": "1.0.4",
1544 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
1545 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
1546 | "dependencies": {
1547 | "call-bind": "^1.0.0",
1548 | "get-intrinsic": "^1.0.2",
1549 | "object-inspect": "^1.9.0"
1550 | },
1551 | "funding": {
1552 | "url": "https://github.com/sponsors/ljharb"
1553 | }
1554 | },
1555 | "node_modules/split": {
1556 | "version": "1.0.1",
1557 | "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
1558 | "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
1559 | "dependencies": {
1560 | "through": "2"
1561 | },
1562 | "engines": {
1563 | "node": "*"
1564 | }
1565 | },
1566 | "node_modules/statuses": {
1567 | "version": "1.5.0",
1568 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
1569 | "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
1570 | "engines": {
1571 | "node": ">= 0.6"
1572 | }
1573 | },
1574 | "node_modules/stream-combiner": {
1575 | "version": "0.2.2",
1576 | "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz",
1577 | "integrity": "sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ==",
1578 | "dependencies": {
1579 | "duplexer": "~0.1.1",
1580 | "through": "~2.3.4"
1581 | }
1582 | },
1583 | "node_modules/string_decoder": {
1584 | "version": "1.3.0",
1585 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
1586 | "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
1587 | "dependencies": {
1588 | "safe-buffer": "~5.2.0"
1589 | }
1590 | },
1591 | "node_modules/string-width": {
1592 | "version": "4.2.3",
1593 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
1594 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
1595 | "dependencies": {
1596 | "emoji-regex": "^8.0.0",
1597 | "is-fullwidth-code-point": "^3.0.0",
1598 | "strip-ansi": "^6.0.1"
1599 | },
1600 | "engines": {
1601 | "node": ">=8"
1602 | }
1603 | },
1604 | "node_modules/strip-ansi": {
1605 | "version": "6.0.1",
1606 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
1607 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
1608 | "dependencies": {
1609 | "ansi-regex": "^5.0.1"
1610 | },
1611 | "engines": {
1612 | "node": ">=8"
1613 | }
1614 | },
1615 | "node_modules/supports-color": {
1616 | "version": "5.5.0",
1617 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1618 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1619 | "dependencies": {
1620 | "has-flag": "^3.0.0"
1621 | },
1622 | "engines": {
1623 | "node": ">=4"
1624 | }
1625 | },
1626 | "node_modules/tar-fs": {
1627 | "version": "2.1.1",
1628 | "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
1629 | "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
1630 | "dependencies": {
1631 | "chownr": "^1.1.1",
1632 | "mkdirp-classic": "^0.5.2",
1633 | "pump": "^3.0.0",
1634 | "tar-stream": "^2.1.4"
1635 | }
1636 | },
1637 | "node_modules/tar-stream": {
1638 | "version": "2.2.0",
1639 | "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
1640 | "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
1641 | "dependencies": {
1642 | "bl": "^4.0.3",
1643 | "end-of-stream": "^1.4.1",
1644 | "fs-constants": "^1.0.0",
1645 | "inherits": "^2.0.3",
1646 | "readable-stream": "^3.1.1"
1647 | },
1648 | "engines": {
1649 | "node": ">=6"
1650 | }
1651 | },
1652 | "node_modules/through": {
1653 | "version": "2.3.8",
1654 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
1655 | "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="
1656 | },
1657 | "node_modules/tls-client": {
1658 | "version": "0.0.5",
1659 | "resolved": "https://registry.npmjs.org/tls-client/-/tls-client-0.0.5.tgz",
1660 | "integrity": "sha512-kx0+MRC7Ef7VIzdpyOz1zjXlanHMJFror4xT+mu/ZeBR/kbw5j931FSIaiI6W0FKB2Isj0X6XlfMfMB9mjubKA==",
1661 | "dependencies": {
1662 | "ffi-napi": "^4.0.3",
1663 | "tough-cookie": "^4.1.2"
1664 | }
1665 | },
1666 | "node_modules/toidentifier": {
1667 | "version": "1.0.1",
1668 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
1669 | "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
1670 | "engines": {
1671 | "node": ">=0.6"
1672 | }
1673 | },
1674 | "node_modules/tough-cookie": {
1675 | "version": "4.1.2",
1676 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz",
1677 | "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==",
1678 | "dependencies": {
1679 | "psl": "^1.1.33",
1680 | "punycode": "^2.1.1",
1681 | "universalify": "^0.2.0",
1682 | "url-parse": "^1.5.3"
1683 | },
1684 | "engines": {
1685 | "node": ">=6"
1686 | }
1687 | },
1688 | "node_modules/tr46": {
1689 | "version": "0.0.3",
1690 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
1691 | "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
1692 | },
1693 | "node_modules/tsscmp": {
1694 | "version": "1.0.6",
1695 | "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz",
1696 | "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==",
1697 | "engines": {
1698 | "node": ">=0.6.x"
1699 | }
1700 | },
1701 | "node_modules/type-is": {
1702 | "version": "1.6.18",
1703 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
1704 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
1705 | "dependencies": {
1706 | "media-typer": "0.3.0",
1707 | "mime-types": "~2.1.24"
1708 | },
1709 | "engines": {
1710 | "node": ">= 0.6"
1711 | }
1712 | },
1713 | "node_modules/typescript": {
1714 | "version": "5.0.4",
1715 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz",
1716 | "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==",
1717 | "optional": true,
1718 | "peer": true,
1719 | "bin": {
1720 | "tsc": "bin/tsc",
1721 | "tsserver": "bin/tsserver"
1722 | },
1723 | "engines": {
1724 | "node": ">=12.20"
1725 | }
1726 | },
1727 | "node_modules/unbzip2-stream": {
1728 | "version": "1.4.3",
1729 | "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
1730 | "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==",
1731 | "dependencies": {
1732 | "buffer": "^5.2.1",
1733 | "through": "^2.3.8"
1734 | }
1735 | },
1736 | "node_modules/underscore": {
1737 | "version": "1.13.6",
1738 | "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz",
1739 | "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A=="
1740 | },
1741 | "node_modules/underscore-keypath": {
1742 | "version": "0.0.22",
1743 | "resolved": "https://registry.npmjs.org/underscore-keypath/-/underscore-keypath-0.0.22.tgz",
1744 | "integrity": "sha512-fU7aYj1J2LQd+jqdQ67AlCOZKK3Pl+VErS8fGYcgZG75XB9/bY+RLM+F2xEcKHhHNtLvqqFyXAoZQlLYfec3Xg==",
1745 | "dependencies": {
1746 | "underscore": "*"
1747 | }
1748 | },
1749 | "node_modules/universalify": {
1750 | "version": "0.2.0",
1751 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
1752 | "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
1753 | "engines": {
1754 | "node": ">= 4.0.0"
1755 | }
1756 | },
1757 | "node_modules/unpipe": {
1758 | "version": "1.0.0",
1759 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
1760 | "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
1761 | "engines": {
1762 | "node": ">= 0.8"
1763 | }
1764 | },
1765 | "node_modules/url-parse": {
1766 | "version": "1.5.10",
1767 | "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
1768 | "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
1769 | "dependencies": {
1770 | "querystringify": "^2.1.1",
1771 | "requires-port": "^1.0.0"
1772 | }
1773 | },
1774 | "node_modules/user-agents": {
1775 | "version": "1.0.1374",
1776 | "resolved": "https://registry.npmjs.org/user-agents/-/user-agents-1.0.1374.tgz",
1777 | "integrity": "sha512-HM3RZ4CCuo/TG6+DNeolWOlm6xqVfvNk4aCHXFht7MGr5HStiLlG3lyGjfnAIagrlTuc+tGEo0qy3ePastIUgw==",
1778 | "dependencies": {
1779 | "dot-json": "^1.3.0",
1780 | "lodash.clonedeep": "^4.5.0"
1781 | }
1782 | },
1783 | "node_modules/util-deprecate": {
1784 | "version": "1.0.2",
1785 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
1786 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
1787 | },
1788 | "node_modules/uuid": {
1789 | "version": "9.0.0",
1790 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz",
1791 | "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==",
1792 | "bin": {
1793 | "uuid": "dist/bin/uuid"
1794 | }
1795 | },
1796 | "node_modules/vary": {
1797 | "version": "1.1.2",
1798 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
1799 | "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
1800 | "engines": {
1801 | "node": ">= 0.8"
1802 | }
1803 | },
1804 | "node_modules/webidl-conversions": {
1805 | "version": "3.0.1",
1806 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
1807 | "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
1808 | },
1809 | "node_modules/whatwg-url": {
1810 | "version": "5.0.0",
1811 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
1812 | "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
1813 | "dependencies": {
1814 | "tr46": "~0.0.3",
1815 | "webidl-conversions": "^3.0.0"
1816 | }
1817 | },
1818 | "node_modules/wrap-ansi": {
1819 | "version": "7.0.0",
1820 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
1821 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
1822 | "dependencies": {
1823 | "ansi-styles": "^4.0.0",
1824 | "string-width": "^4.1.0",
1825 | "strip-ansi": "^6.0.0"
1826 | },
1827 | "engines": {
1828 | "node": ">=10"
1829 | },
1830 | "funding": {
1831 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
1832 | }
1833 | },
1834 | "node_modules/wrap-ansi/node_modules/ansi-styles": {
1835 | "version": "4.3.0",
1836 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
1837 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
1838 | "dependencies": {
1839 | "color-convert": "^2.0.1"
1840 | },
1841 | "engines": {
1842 | "node": ">=8"
1843 | },
1844 | "funding": {
1845 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
1846 | }
1847 | },
1848 | "node_modules/wrap-ansi/node_modules/color-convert": {
1849 | "version": "2.0.1",
1850 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
1851 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
1852 | "dependencies": {
1853 | "color-name": "~1.1.4"
1854 | },
1855 | "engines": {
1856 | "node": ">=7.0.0"
1857 | }
1858 | },
1859 | "node_modules/wrap-ansi/node_modules/color-name": {
1860 | "version": "1.1.4",
1861 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
1862 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
1863 | },
1864 | "node_modules/wrappy": {
1865 | "version": "1.0.2",
1866 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1867 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
1868 | },
1869 | "node_modules/ws": {
1870 | "version": "8.13.0",
1871 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz",
1872 | "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==",
1873 | "engines": {
1874 | "node": ">=10.0.0"
1875 | },
1876 | "peerDependencies": {
1877 | "bufferutil": "^4.0.1",
1878 | "utf-8-validate": ">=5.0.2"
1879 | },
1880 | "peerDependenciesMeta": {
1881 | "bufferutil": {
1882 | "optional": true
1883 | },
1884 | "utf-8-validate": {
1885 | "optional": true
1886 | }
1887 | }
1888 | },
1889 | "node_modules/xregexp": {
1890 | "version": "5.1.1",
1891 | "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-5.1.1.tgz",
1892 | "integrity": "sha512-fKXeVorD+CzWvFs7VBuKTYIW63YD1e1osxwQ8caZ6o1jg6pDAbABDG54LCIq0j5cy7PjRvGIq6sef9DYPXpncg==",
1893 | "dependencies": {
1894 | "@babel/runtime-corejs3": "^7.16.5"
1895 | }
1896 | },
1897 | "node_modules/y18n": {
1898 | "version": "5.0.8",
1899 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
1900 | "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
1901 | "engines": {
1902 | "node": ">=10"
1903 | }
1904 | },
1905 | "node_modules/yargs": {
1906 | "version": "17.7.1",
1907 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz",
1908 | "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==",
1909 | "dependencies": {
1910 | "cliui": "^8.0.1",
1911 | "escalade": "^3.1.1",
1912 | "get-caller-file": "^2.0.5",
1913 | "require-directory": "^2.1.1",
1914 | "string-width": "^4.2.3",
1915 | "y18n": "^5.0.5",
1916 | "yargs-parser": "^21.1.1"
1917 | },
1918 | "engines": {
1919 | "node": ">=12"
1920 | }
1921 | },
1922 | "node_modules/yargs-parser": {
1923 | "version": "21.1.1",
1924 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
1925 | "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
1926 | "engines": {
1927 | "node": ">=12"
1928 | }
1929 | },
1930 | "node_modules/yauzl": {
1931 | "version": "2.10.0",
1932 | "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
1933 | "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==",
1934 | "dependencies": {
1935 | "buffer-crc32": "~0.2.3",
1936 | "fd-slicer": "~1.1.0"
1937 | }
1938 | },
1939 | "node_modules/ylru": {
1940 | "version": "1.3.2",
1941 | "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.3.2.tgz",
1942 | "integrity": "sha512-RXRJzMiK6U2ye0BlGGZnmpwJDPgakn6aNQ0A7gHRbD4I0uvK4TW6UqkK1V0pp9jskjJBAXd3dRrbzWkqJ+6cxA==",
1943 | "engines": {
1944 | "node": ">= 4.0.0"
1945 | }
1946 | }
1947 | },
1948 | "dependencies": {
1949 | "@babel/code-frame": {
1950 | "version": "7.21.4",
1951 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz",
1952 | "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==",
1953 | "requires": {
1954 | "@babel/highlight": "^7.18.6"
1955 | }
1956 | },
1957 | "@babel/helper-validator-identifier": {
1958 | "version": "7.19.1",
1959 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
1960 | "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w=="
1961 | },
1962 | "@babel/highlight": {
1963 | "version": "7.18.6",
1964 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
1965 | "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
1966 | "requires": {
1967 | "@babel/helper-validator-identifier": "^7.18.6",
1968 | "chalk": "^2.0.0",
1969 | "js-tokens": "^4.0.0"
1970 | }
1971 | },
1972 | "@babel/runtime-corejs3": {
1973 | "version": "7.21.5",
1974 | "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.21.5.tgz",
1975 | "integrity": "sha512-FRqFlFKNazWYykft5zvzuEl1YyTDGsIRrjV9rvxvYkUC7W/ueBng1X68Xd6uRMzAaJ0xMKn08/wem5YS1lpX8w==",
1976 | "requires": {
1977 | "core-js-pure": "^3.25.1",
1978 | "regenerator-runtime": "^0.13.11"
1979 | }
1980 | },
1981 | "@puppeteer/browsers": {
1982 | "version": "1.1.0",
1983 | "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-1.1.0.tgz",
1984 | "integrity": "sha512-+Nfk52G9cRAKq/V2LEaOlKIMsIuERSofk8hXEy6kMQtjg9Te1iuKymWOR+iKwwzj1RCkZU0fuOoSIclR839MNw==",
1985 | "requires": {
1986 | "debug": "4.3.4",
1987 | "extract-zip": "2.0.1",
1988 | "http-proxy-agent": "5.0.0",
1989 | "https-proxy-agent": "5.0.1",
1990 | "progress": "2.0.3",
1991 | "proxy-from-env": "1.1.0",
1992 | "tar-fs": "2.1.1",
1993 | "unbzip2-stream": "1.4.3",
1994 | "yargs": "17.7.1"
1995 | },
1996 | "dependencies": {
1997 | "agent-base": {
1998 | "version": "6.0.2",
1999 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
2000 | "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
2001 | "requires": {
2002 | "debug": "4"
2003 | }
2004 | },
2005 | "http-proxy-agent": {
2006 | "version": "5.0.0",
2007 | "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz",
2008 | "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==",
2009 | "requires": {
2010 | "@tootallnate/once": "2",
2011 | "agent-base": "6",
2012 | "debug": "4"
2013 | }
2014 | }
2015 | }
2016 | },
2017 | "@tootallnate/once": {
2018 | "version": "2.0.0",
2019 | "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz",
2020 | "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A=="
2021 | },
2022 | "@types/node": {
2023 | "version": "18.16.6",
2024 | "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.6.tgz",
2025 | "integrity": "sha512-N7KINmeB8IN3vRR8dhgHEp+YpWvGFcpDoh5XZ8jB5a00AdFKCKEyyGTOPTddUf4JqU1ZKTVxkOxakDvchNVI2Q==",
2026 | "optional": true
2027 | },
2028 | "@types/yauzl": {
2029 | "version": "2.10.0",
2030 | "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz",
2031 | "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==",
2032 | "optional": true,
2033 | "requires": {
2034 | "@types/node": "*"
2035 | }
2036 | },
2037 | "accepts": {
2038 | "version": "1.3.8",
2039 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
2040 | "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
2041 | "requires": {
2042 | "mime-types": "~2.1.34",
2043 | "negotiator": "0.6.3"
2044 | }
2045 | },
2046 | "agent-base": {
2047 | "version": "7.0.1",
2048 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.0.1.tgz",
2049 | "integrity": "sha512-V9to8gr2GK7eA+xskWGAFUX/TLSQKuH2TI06c/jGLL6yLp3oEjtnqM7a5tPV9fC1rabLeAgThZeBwsYX+WWHpw==",
2050 | "requires": {
2051 | "debug": "^4.3.4"
2052 | }
2053 | },
2054 | "ansi-regex": {
2055 | "version": "5.0.1",
2056 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
2057 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
2058 | },
2059 | "ansi-styles": {
2060 | "version": "3.2.1",
2061 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
2062 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
2063 | "requires": {
2064 | "color-convert": "^1.9.0"
2065 | }
2066 | },
2067 | "argparse": {
2068 | "version": "2.0.1",
2069 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
2070 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
2071 | },
2072 | "asynckit": {
2073 | "version": "0.4.0",
2074 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
2075 | "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
2076 | },
2077 | "axios": {
2078 | "version": "1.4.0",
2079 | "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz",
2080 | "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==",
2081 | "requires": {
2082 | "follow-redirects": "^1.15.0",
2083 | "form-data": "^4.0.0",
2084 | "proxy-from-env": "^1.1.0"
2085 | }
2086 | },
2087 | "base64-js": {
2088 | "version": "1.5.1",
2089 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
2090 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
2091 | },
2092 | "bl": {
2093 | "version": "4.1.0",
2094 | "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
2095 | "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
2096 | "requires": {
2097 | "buffer": "^5.5.0",
2098 | "inherits": "^2.0.4",
2099 | "readable-stream": "^3.4.0"
2100 | }
2101 | },
2102 | "buffer": {
2103 | "version": "5.7.1",
2104 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
2105 | "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
2106 | "requires": {
2107 | "base64-js": "^1.3.1",
2108 | "ieee754": "^1.1.13"
2109 | }
2110 | },
2111 | "buffer-crc32": {
2112 | "version": "0.2.13",
2113 | "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
2114 | "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ=="
2115 | },
2116 | "bytes": {
2117 | "version": "3.1.2",
2118 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
2119 | "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
2120 | },
2121 | "cache-content-type": {
2122 | "version": "1.0.1",
2123 | "resolved": "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz",
2124 | "integrity": "sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==",
2125 | "requires": {
2126 | "mime-types": "^2.1.18",
2127 | "ylru": "^1.2.0"
2128 | }
2129 | },
2130 | "call-bind": {
2131 | "version": "1.0.2",
2132 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
2133 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
2134 | "requires": {
2135 | "function-bind": "^1.1.1",
2136 | "get-intrinsic": "^1.0.2"
2137 | }
2138 | },
2139 | "callsites": {
2140 | "version": "3.1.0",
2141 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
2142 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="
2143 | },
2144 | "chalk": {
2145 | "version": "2.4.2",
2146 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
2147 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
2148 | "requires": {
2149 | "ansi-styles": "^3.2.1",
2150 | "escape-string-regexp": "^1.0.5",
2151 | "supports-color": "^5.3.0"
2152 | }
2153 | },
2154 | "chownr": {
2155 | "version": "1.1.4",
2156 | "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
2157 | "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
2158 | },
2159 | "chromium-bidi": {
2160 | "version": "0.4.7",
2161 | "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.7.tgz",
2162 | "integrity": "sha512-6+mJuFXwTMU6I3vYLs6IL8A1DyQTPjCfIL971X0aMPVGRbGnNfl6i6Cl0NMbxi2bRYLGESt9T2ZIMRM5PAEcIQ==",
2163 | "requires": {
2164 | "mitt": "3.0.0"
2165 | }
2166 | },
2167 | "cliui": {
2168 | "version": "8.0.1",
2169 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
2170 | "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
2171 | "requires": {
2172 | "string-width": "^4.2.0",
2173 | "strip-ansi": "^6.0.1",
2174 | "wrap-ansi": "^7.0.0"
2175 | }
2176 | },
2177 | "co": {
2178 | "version": "4.6.0",
2179 | "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
2180 | "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ=="
2181 | },
2182 | "co-body": {
2183 | "version": "6.1.0",
2184 | "resolved": "https://registry.npmjs.org/co-body/-/co-body-6.1.0.tgz",
2185 | "integrity": "sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==",
2186 | "requires": {
2187 | "inflation": "^2.0.0",
2188 | "qs": "^6.5.2",
2189 | "raw-body": "^2.3.3",
2190 | "type-is": "^1.6.16"
2191 | }
2192 | },
2193 | "color-convert": {
2194 | "version": "1.9.3",
2195 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
2196 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
2197 | "requires": {
2198 | "color-name": "1.1.3"
2199 | }
2200 | },
2201 | "color-name": {
2202 | "version": "1.1.3",
2203 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
2204 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
2205 | },
2206 | "combined-stream": {
2207 | "version": "1.0.8",
2208 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
2209 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
2210 | "requires": {
2211 | "delayed-stream": "~1.0.0"
2212 | }
2213 | },
2214 | "content-disposition": {
2215 | "version": "0.5.4",
2216 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
2217 | "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
2218 | "requires": {
2219 | "safe-buffer": "5.2.1"
2220 | }
2221 | },
2222 | "content-type": {
2223 | "version": "1.0.5",
2224 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
2225 | "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="
2226 | },
2227 | "cookies": {
2228 | "version": "0.8.0",
2229 | "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz",
2230 | "integrity": "sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==",
2231 | "requires": {
2232 | "depd": "~2.0.0",
2233 | "keygrip": "~1.1.0"
2234 | }
2235 | },
2236 | "copy-to": {
2237 | "version": "2.0.1",
2238 | "resolved": "https://registry.npmjs.org/copy-to/-/copy-to-2.0.1.tgz",
2239 | "integrity": "sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w=="
2240 | },
2241 | "core-js-pure": {
2242 | "version": "3.30.2",
2243 | "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.30.2.tgz",
2244 | "integrity": "sha512-p/npFUJXXBkCCTIlEGBdghofn00jWG6ZOtdoIXSJmAu2QBvN0IqpZXWweOytcwE6cfx8ZvVUy1vw8zxhe4Y2vg=="
2245 | },
2246 | "cosmiconfig": {
2247 | "version": "8.1.3",
2248 | "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.1.3.tgz",
2249 | "integrity": "sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==",
2250 | "requires": {
2251 | "import-fresh": "^3.2.1",
2252 | "js-yaml": "^4.1.0",
2253 | "parse-json": "^5.0.0",
2254 | "path-type": "^4.0.0"
2255 | }
2256 | },
2257 | "cross-fetch": {
2258 | "version": "3.1.5",
2259 | "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz",
2260 | "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==",
2261 | "requires": {
2262 | "node-fetch": "2.6.7"
2263 | }
2264 | },
2265 | "debug": {
2266 | "version": "4.3.4",
2267 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
2268 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
2269 | "requires": {
2270 | "ms": "2.1.2"
2271 | }
2272 | },
2273 | "deep-equal": {
2274 | "version": "1.0.1",
2275 | "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
2276 | "integrity": "sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw=="
2277 | },
2278 | "delayed-stream": {
2279 | "version": "1.0.0",
2280 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
2281 | "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
2282 | },
2283 | "delegates": {
2284 | "version": "1.0.0",
2285 | "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
2286 | "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ=="
2287 | },
2288 | "depd": {
2289 | "version": "2.0.0",
2290 | "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
2291 | "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
2292 | },
2293 | "destroy": {
2294 | "version": "1.2.0",
2295 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
2296 | "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
2297 | },
2298 | "detect-indent": {
2299 | "version": "6.0.0",
2300 | "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz",
2301 | "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA=="
2302 | },
2303 | "devtools-protocol": {
2304 | "version": "0.0.1120988",
2305 | "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1120988.tgz",
2306 | "integrity": "sha512-39fCpE3Z78IaIPChJsP6Lhmkbf4dWXOmzLk/KFTdRkNk/0JymRIfUynDVRndV9HoDz8PyalK1UH21ST/ivwW5Q=="
2307 | },
2308 | "docopt": {
2309 | "version": "0.6.2",
2310 | "resolved": "https://registry.npmjs.org/docopt/-/docopt-0.6.2.tgz",
2311 | "integrity": "sha512-NqTbaYeE4gA/wU1hdKFdU+AFahpDOpgGLzHP42k6H6DKExJd0A55KEVWYhL9FEmHmgeLvEU2vuKXDuU+4yToOw=="
2312 | },
2313 | "dot-json": {
2314 | "version": "1.3.0",
2315 | "resolved": "https://registry.npmjs.org/dot-json/-/dot-json-1.3.0.tgz",
2316 | "integrity": "sha512-Pu11Prog/Yjf2lBICow82/DSV46n3a2XT1Rqt/CeuhkO1fuacF7xydYhI0SwQx2Ue0jCyLtQzgKPFEO6ewv+bQ==",
2317 | "requires": {
2318 | "detect-indent": "~6.0.0",
2319 | "docopt": "~0.6.2",
2320 | "underscore-keypath": "~0.0.22"
2321 | }
2322 | },
2323 | "dotenv": {
2324 | "version": "16.0.3",
2325 | "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz",
2326 | "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ=="
2327 | },
2328 | "duplexer": {
2329 | "version": "0.1.2",
2330 | "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
2331 | "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg=="
2332 | },
2333 | "ee-first": {
2334 | "version": "1.1.1",
2335 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
2336 | "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
2337 | },
2338 | "emoji-regex": {
2339 | "version": "8.0.0",
2340 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
2341 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
2342 | },
2343 | "encodeurl": {
2344 | "version": "1.0.2",
2345 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
2346 | "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="
2347 | },
2348 | "end-of-stream": {
2349 | "version": "1.4.4",
2350 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
2351 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
2352 | "requires": {
2353 | "once": "^1.4.0"
2354 | }
2355 | },
2356 | "error-ex": {
2357 | "version": "1.3.2",
2358 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
2359 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
2360 | "requires": {
2361 | "is-arrayish": "^0.2.1"
2362 | }
2363 | },
2364 | "escalade": {
2365 | "version": "3.1.1",
2366 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
2367 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
2368 | },
2369 | "escape-html": {
2370 | "version": "1.0.3",
2371 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
2372 | "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
2373 | },
2374 | "escape-string-regexp": {
2375 | "version": "1.0.5",
2376 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
2377 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="
2378 | },
2379 | "event-stream": {
2380 | "version": "4.0.1",
2381 | "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz",
2382 | "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==",
2383 | "requires": {
2384 | "duplexer": "^0.1.1",
2385 | "from": "^0.1.7",
2386 | "map-stream": "0.0.7",
2387 | "pause-stream": "^0.0.11",
2388 | "split": "^1.0.1",
2389 | "stream-combiner": "^0.2.2",
2390 | "through": "^2.3.8"
2391 | }
2392 | },
2393 | "extract-zip": {
2394 | "version": "2.0.1",
2395 | "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
2396 | "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
2397 | "requires": {
2398 | "@types/yauzl": "^2.9.1",
2399 | "debug": "^4.1.1",
2400 | "get-stream": "^5.1.0",
2401 | "yauzl": "^2.10.0"
2402 | }
2403 | },
2404 | "fake-useragent": {
2405 | "version": "1.0.1",
2406 | "resolved": "https://registry.npmjs.org/fake-useragent/-/fake-useragent-1.0.1.tgz",
2407 | "integrity": "sha512-BOQh1TM//DhrVaeZ+b3w3s4E40rfYcDTn5aoSM2w1xVsZVGglNOzPR5H8KDO8NmF8sT4ppxyb4/MHGIHfZsVDA=="
2408 | },
2409 | "fd-slicer": {
2410 | "version": "1.1.0",
2411 | "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
2412 | "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==",
2413 | "requires": {
2414 | "pend": "~1.2.0"
2415 | }
2416 | },
2417 | "ffi-napi": {
2418 | "version": "4.0.3",
2419 | "resolved": "https://registry.npmjs.org/ffi-napi/-/ffi-napi-4.0.3.tgz",
2420 | "integrity": "sha512-PMdLCIvDY9mS32RxZ0XGb95sonPRal8aqRhLbeEtWKZTe2A87qRFG9HjOhvG8EX2UmQw5XNRMIOT+1MYlWmdeg==",
2421 | "requires": {
2422 | "debug": "^4.1.1",
2423 | "get-uv-event-loop-napi-h": "^1.0.5",
2424 | "node-addon-api": "^3.0.0",
2425 | "node-gyp-build": "^4.2.1",
2426 | "ref-napi": "^2.0.1 || ^3.0.2",
2427 | "ref-struct-di": "^1.1.0"
2428 | }
2429 | },
2430 | "follow-redirects": {
2431 | "version": "1.15.2",
2432 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
2433 | "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA=="
2434 | },
2435 | "form-data": {
2436 | "version": "4.0.0",
2437 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
2438 | "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
2439 | "requires": {
2440 | "asynckit": "^0.4.0",
2441 | "combined-stream": "^1.0.8",
2442 | "mime-types": "^2.1.12"
2443 | }
2444 | },
2445 | "fresh": {
2446 | "version": "0.5.2",
2447 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
2448 | "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="
2449 | },
2450 | "from": {
2451 | "version": "0.1.7",
2452 | "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz",
2453 | "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g=="
2454 | },
2455 | "fs-constants": {
2456 | "version": "1.0.0",
2457 | "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
2458 | "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
2459 | },
2460 | "function-bind": {
2461 | "version": "1.1.1",
2462 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
2463 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
2464 | },
2465 | "get-caller-file": {
2466 | "version": "2.0.5",
2467 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
2468 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
2469 | },
2470 | "get-intrinsic": {
2471 | "version": "1.2.0",
2472 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
2473 | "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
2474 | "requires": {
2475 | "function-bind": "^1.1.1",
2476 | "has": "^1.0.3",
2477 | "has-symbols": "^1.0.3"
2478 | }
2479 | },
2480 | "get-stream": {
2481 | "version": "5.2.0",
2482 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
2483 | "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
2484 | "requires": {
2485 | "pump": "^3.0.0"
2486 | }
2487 | },
2488 | "get-symbol-from-current-process-h": {
2489 | "version": "1.0.2",
2490 | "resolved": "https://registry.npmjs.org/get-symbol-from-current-process-h/-/get-symbol-from-current-process-h-1.0.2.tgz",
2491 | "integrity": "sha512-syloC6fsCt62ELLrr1VKBM1ggOpMdetX9hTrdW77UQdcApPHLmf7CI7OKcN1c9kYuNxKcDe4iJ4FY9sX3aw2xw=="
2492 | },
2493 | "get-uv-event-loop-napi-h": {
2494 | "version": "1.0.6",
2495 | "resolved": "https://registry.npmjs.org/get-uv-event-loop-napi-h/-/get-uv-event-loop-napi-h-1.0.6.tgz",
2496 | "integrity": "sha512-t5c9VNR84nRoF+eLiz6wFrEp1SE2Acg0wS+Ysa2zF0eROes+LzOfuTaVHxGy8AbS8rq7FHEJzjnCZo1BupwdJg==",
2497 | "requires": {
2498 | "get-symbol-from-current-process-h": "^1.0.1"
2499 | }
2500 | },
2501 | "has": {
2502 | "version": "1.0.3",
2503 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
2504 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
2505 | "requires": {
2506 | "function-bind": "^1.1.1"
2507 | }
2508 | },
2509 | "has-flag": {
2510 | "version": "3.0.0",
2511 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
2512 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="
2513 | },
2514 | "has-symbols": {
2515 | "version": "1.0.3",
2516 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
2517 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
2518 | },
2519 | "has-tostringtag": {
2520 | "version": "1.0.0",
2521 | "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
2522 | "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
2523 | "requires": {
2524 | "has-symbols": "^1.0.2"
2525 | }
2526 | },
2527 | "http-assert": {
2528 | "version": "1.5.0",
2529 | "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz",
2530 | "integrity": "sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==",
2531 | "requires": {
2532 | "deep-equal": "~1.0.1",
2533 | "http-errors": "~1.8.0"
2534 | }
2535 | },
2536 | "http-errors": {
2537 | "version": "1.8.1",
2538 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
2539 | "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
2540 | "requires": {
2541 | "depd": "~1.1.2",
2542 | "inherits": "2.0.4",
2543 | "setprototypeof": "1.2.0",
2544 | "statuses": ">= 1.5.0 < 2",
2545 | "toidentifier": "1.0.1"
2546 | },
2547 | "dependencies": {
2548 | "depd": {
2549 | "version": "1.1.2",
2550 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
2551 | "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ=="
2552 | }
2553 | }
2554 | },
2555 | "http-proxy-agent": {
2556 | "version": "6.0.1",
2557 | "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-6.0.1.tgz",
2558 | "integrity": "sha512-rD8wrfJHbnVll9lkIpQH3vDbKON1Ssciggwydom/r89HLBXEqdMhL6wx7QF5WePDPSr0OdoztdXoojbrXadG5Q==",
2559 | "requires": {
2560 | "agent-base": "^7.0.1",
2561 | "debug": "^4.3.4"
2562 | }
2563 | },
2564 | "https-proxy-agent": {
2565 | "version": "5.0.1",
2566 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
2567 | "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
2568 | "requires": {
2569 | "agent-base": "6",
2570 | "debug": "4"
2571 | },
2572 | "dependencies": {
2573 | "agent-base": {
2574 | "version": "6.0.2",
2575 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
2576 | "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
2577 | "requires": {
2578 | "debug": "4"
2579 | }
2580 | }
2581 | }
2582 | },
2583 | "iconv-lite": {
2584 | "version": "0.4.24",
2585 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
2586 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
2587 | "requires": {
2588 | "safer-buffer": ">= 2.1.2 < 3"
2589 | }
2590 | },
2591 | "ieee754": {
2592 | "version": "1.2.1",
2593 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
2594 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
2595 | },
2596 | "import-fresh": {
2597 | "version": "3.3.0",
2598 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
2599 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
2600 | "requires": {
2601 | "parent-module": "^1.0.0",
2602 | "resolve-from": "^4.0.0"
2603 | }
2604 | },
2605 | "inflation": {
2606 | "version": "2.0.0",
2607 | "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz",
2608 | "integrity": "sha512-m3xv4hJYR2oXw4o4Y5l6P5P16WYmazYof+el6Al3f+YlggGj6qT9kImBAnzDelRALnP5d3h4jGBPKzYCizjZZw=="
2609 | },
2610 | "inherits": {
2611 | "version": "2.0.4",
2612 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
2613 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
2614 | },
2615 | "is-arrayish": {
2616 | "version": "0.2.1",
2617 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
2618 | "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="
2619 | },
2620 | "is-fullwidth-code-point": {
2621 | "version": "3.0.0",
2622 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
2623 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
2624 | },
2625 | "is-generator-function": {
2626 | "version": "1.0.10",
2627 | "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
2628 | "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
2629 | "requires": {
2630 | "has-tostringtag": "^1.0.0"
2631 | }
2632 | },
2633 | "js-tokens": {
2634 | "version": "4.0.0",
2635 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
2636 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
2637 | },
2638 | "js-yaml": {
2639 | "version": "4.1.0",
2640 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
2641 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
2642 | "requires": {
2643 | "argparse": "^2.0.1"
2644 | }
2645 | },
2646 | "json-parse-even-better-errors": {
2647 | "version": "2.3.1",
2648 | "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
2649 | "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
2650 | },
2651 | "keygrip": {
2652 | "version": "1.1.0",
2653 | "resolved": "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz",
2654 | "integrity": "sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==",
2655 | "requires": {
2656 | "tsscmp": "1.0.6"
2657 | }
2658 | },
2659 | "koa": {
2660 | "version": "2.14.2",
2661 | "resolved": "https://registry.npmjs.org/koa/-/koa-2.14.2.tgz",
2662 | "integrity": "sha512-VFI2bpJaodz6P7x2uyLiX6RLYpZmOJqNmoCst/Yyd7hQlszyPwG/I9CQJ63nOtKSxpt5M7NH67V6nJL2BwCl7g==",
2663 | "requires": {
2664 | "accepts": "^1.3.5",
2665 | "cache-content-type": "^1.0.0",
2666 | "content-disposition": "~0.5.2",
2667 | "content-type": "^1.0.4",
2668 | "cookies": "~0.8.0",
2669 | "debug": "^4.3.2",
2670 | "delegates": "^1.0.0",
2671 | "depd": "^2.0.0",
2672 | "destroy": "^1.0.4",
2673 | "encodeurl": "^1.0.2",
2674 | "escape-html": "^1.0.3",
2675 | "fresh": "~0.5.2",
2676 | "http-assert": "^1.3.0",
2677 | "http-errors": "^1.6.3",
2678 | "is-generator-function": "^1.0.7",
2679 | "koa-compose": "^4.1.0",
2680 | "koa-convert": "^2.0.0",
2681 | "on-finished": "^2.3.0",
2682 | "only": "~0.0.2",
2683 | "parseurl": "^1.3.2",
2684 | "statuses": "^1.5.0",
2685 | "type-is": "^1.6.16",
2686 | "vary": "^1.1.2"
2687 | }
2688 | },
2689 | "koa-bodyparser": {
2690 | "version": "4.4.0",
2691 | "resolved": "https://registry.npmjs.org/koa-bodyparser/-/koa-bodyparser-4.4.0.tgz",
2692 | "integrity": "sha512-AXPY7wwKZUmbgb8VkTEUFoRNOlx6aWRJwEnQD+zfNf33/7KSAkN4Oo9BqlIk80D+5TvuqlhpQT5dPVcyxl5Zsw==",
2693 | "requires": {
2694 | "co-body": "^6.0.0",
2695 | "copy-to": "^2.0.1"
2696 | }
2697 | },
2698 | "koa-compose": {
2699 | "version": "4.1.0",
2700 | "resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz",
2701 | "integrity": "sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw=="
2702 | },
2703 | "koa-convert": {
2704 | "version": "2.0.0",
2705 | "resolved": "https://registry.npmjs.org/koa-convert/-/koa-convert-2.0.0.tgz",
2706 | "integrity": "sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==",
2707 | "requires": {
2708 | "co": "^4.6.0",
2709 | "koa-compose": "^4.1.0"
2710 | }
2711 | },
2712 | "koa-router": {
2713 | "version": "12.0.0",
2714 | "resolved": "https://registry.npmjs.org/koa-router/-/koa-router-12.0.0.tgz",
2715 | "integrity": "sha512-zGrdiXygGYW8WvrzeGsHZvKnHs4DzyGoqJ9a8iHlRkiwuEAOAPyI27//OlhoWdgFAEIM3qbUgr0KCuRaP/TCag==",
2716 | "requires": {
2717 | "http-errors": "^2.0.0",
2718 | "koa-compose": "^4.1.0",
2719 | "methods": "^1.1.2",
2720 | "path-to-regexp": "^6.2.1"
2721 | },
2722 | "dependencies": {
2723 | "http-errors": {
2724 | "version": "2.0.0",
2725 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
2726 | "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
2727 | "requires": {
2728 | "depd": "2.0.0",
2729 | "inherits": "2.0.4",
2730 | "setprototypeof": "1.2.0",
2731 | "statuses": "2.0.1",
2732 | "toidentifier": "1.0.1"
2733 | }
2734 | },
2735 | "statuses": {
2736 | "version": "2.0.1",
2737 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
2738 | "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
2739 | }
2740 | }
2741 | },
2742 | "lines-and-columns": {
2743 | "version": "1.2.4",
2744 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
2745 | "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
2746 | },
2747 | "lodash.clonedeep": {
2748 | "version": "4.5.0",
2749 | "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
2750 | "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ=="
2751 | },
2752 | "map-stream": {
2753 | "version": "0.0.7",
2754 | "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz",
2755 | "integrity": "sha512-C0X0KQmGm3N2ftbTGBhSyuydQ+vV1LC3f3zPvT3RXHXNZrvfPZcoXp/N5DOa8vedX/rTMm2CjTtivFg2STJMRQ=="
2756 | },
2757 | "media-typer": {
2758 | "version": "0.3.0",
2759 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
2760 | "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ=="
2761 | },
2762 | "methods": {
2763 | "version": "1.1.2",
2764 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
2765 | "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w=="
2766 | },
2767 | "mime-db": {
2768 | "version": "1.52.0",
2769 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
2770 | "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
2771 | },
2772 | "mime-types": {
2773 | "version": "2.1.35",
2774 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
2775 | "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
2776 | "requires": {
2777 | "mime-db": "1.52.0"
2778 | }
2779 | },
2780 | "mitt": {
2781 | "version": "3.0.0",
2782 | "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz",
2783 | "integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ=="
2784 | },
2785 | "mkdirp-classic": {
2786 | "version": "0.5.3",
2787 | "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
2788 | "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="
2789 | },
2790 | "ms": {
2791 | "version": "2.1.2",
2792 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
2793 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
2794 | },
2795 | "negotiator": {
2796 | "version": "0.6.3",
2797 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
2798 | "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
2799 | },
2800 | "node-addon-api": {
2801 | "version": "3.2.1",
2802 | "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz",
2803 | "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A=="
2804 | },
2805 | "node-fetch": {
2806 | "version": "2.6.7",
2807 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
2808 | "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
2809 | "requires": {
2810 | "whatwg-url": "^5.0.0"
2811 | }
2812 | },
2813 | "node-gyp-build": {
2814 | "version": "4.6.0",
2815 | "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz",
2816 | "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ=="
2817 | },
2818 | "object-inspect": {
2819 | "version": "1.12.3",
2820 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
2821 | "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g=="
2822 | },
2823 | "on-finished": {
2824 | "version": "2.4.1",
2825 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
2826 | "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
2827 | "requires": {
2828 | "ee-first": "1.1.1"
2829 | }
2830 | },
2831 | "once": {
2832 | "version": "1.4.0",
2833 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
2834 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
2835 | "requires": {
2836 | "wrappy": "1"
2837 | }
2838 | },
2839 | "only": {
2840 | "version": "0.0.2",
2841 | "resolved": "https://registry.npmjs.org/only/-/only-0.0.2.tgz",
2842 | "integrity": "sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ=="
2843 | },
2844 | "parent-module": {
2845 | "version": "1.0.1",
2846 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
2847 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
2848 | "requires": {
2849 | "callsites": "^3.0.0"
2850 | }
2851 | },
2852 | "parse-json": {
2853 | "version": "5.2.0",
2854 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
2855 | "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
2856 | "requires": {
2857 | "@babel/code-frame": "^7.0.0",
2858 | "error-ex": "^1.3.1",
2859 | "json-parse-even-better-errors": "^2.3.0",
2860 | "lines-and-columns": "^1.1.6"
2861 | }
2862 | },
2863 | "parseurl": {
2864 | "version": "1.3.3",
2865 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
2866 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
2867 | },
2868 | "path-to-regexp": {
2869 | "version": "6.2.1",
2870 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz",
2871 | "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw=="
2872 | },
2873 | "path-type": {
2874 | "version": "4.0.0",
2875 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
2876 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="
2877 | },
2878 | "pause-stream": {
2879 | "version": "0.0.11",
2880 | "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
2881 | "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==",
2882 | "requires": {
2883 | "through": "~2.3"
2884 | }
2885 | },
2886 | "pend": {
2887 | "version": "1.2.0",
2888 | "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
2889 | "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg=="
2890 | },
2891 | "progress": {
2892 | "version": "2.0.3",
2893 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
2894 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="
2895 | },
2896 | "proxy-from-env": {
2897 | "version": "1.1.0",
2898 | "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
2899 | "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
2900 | },
2901 | "psl": {
2902 | "version": "1.9.0",
2903 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
2904 | "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag=="
2905 | },
2906 | "pump": {
2907 | "version": "3.0.0",
2908 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
2909 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
2910 | "requires": {
2911 | "end-of-stream": "^1.1.0",
2912 | "once": "^1.3.1"
2913 | }
2914 | },
2915 | "punycode": {
2916 | "version": "2.3.0",
2917 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
2918 | "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA=="
2919 | },
2920 | "puppeteer": {
2921 | "version": "20.1.2",
2922 | "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-20.1.2.tgz",
2923 | "integrity": "sha512-QYDp+iVMP30TwlkXFOocON9qR3Nac5ez7PdXbY90mfuEgZb9vf3/OXL2vHprxwPtb2hgD4AxXvLZhEIqfD2y8Q==",
2924 | "requires": {
2925 | "@puppeteer/browsers": "1.1.0",
2926 | "cosmiconfig": "8.1.3",
2927 | "puppeteer-core": "20.1.2"
2928 | }
2929 | },
2930 | "puppeteer-core": {
2931 | "version": "20.1.2",
2932 | "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-20.1.2.tgz",
2933 | "integrity": "sha512-S1BLte+jVC/ugZkNoxFW9Fvbyr30CKZ0IIumf98FFqLh06Vuc21fddsr34botKtz27T81pqkpDYXNXYomA01dg==",
2934 | "requires": {
2935 | "@puppeteer/browsers": "1.1.0",
2936 | "chromium-bidi": "0.4.7",
2937 | "cross-fetch": "3.1.5",
2938 | "debug": "4.3.4",
2939 | "devtools-protocol": "0.0.1120988",
2940 | "ws": "8.13.0"
2941 | }
2942 | },
2943 | "qs": {
2944 | "version": "6.11.1",
2945 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.1.tgz",
2946 | "integrity": "sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ==",
2947 | "requires": {
2948 | "side-channel": "^1.0.4"
2949 | }
2950 | },
2951 | "querystringify": {
2952 | "version": "2.2.0",
2953 | "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
2954 | "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="
2955 | },
2956 | "raw-body": {
2957 | "version": "2.5.2",
2958 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
2959 | "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
2960 | "requires": {
2961 | "bytes": "3.1.2",
2962 | "http-errors": "2.0.0",
2963 | "iconv-lite": "0.4.24",
2964 | "unpipe": "1.0.0"
2965 | },
2966 | "dependencies": {
2967 | "http-errors": {
2968 | "version": "2.0.0",
2969 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
2970 | "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
2971 | "requires": {
2972 | "depd": "2.0.0",
2973 | "inherits": "2.0.4",
2974 | "setprototypeof": "1.2.0",
2975 | "statuses": "2.0.1",
2976 | "toidentifier": "1.0.1"
2977 | }
2978 | },
2979 | "statuses": {
2980 | "version": "2.0.1",
2981 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
2982 | "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
2983 | }
2984 | }
2985 | },
2986 | "readable-stream": {
2987 | "version": "3.6.2",
2988 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
2989 | "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
2990 | "requires": {
2991 | "inherits": "^2.0.3",
2992 | "string_decoder": "^1.1.1",
2993 | "util-deprecate": "^1.0.1"
2994 | }
2995 | },
2996 | "ref-napi": {
2997 | "version": "3.0.3",
2998 | "resolved": "https://registry.npmjs.org/ref-napi/-/ref-napi-3.0.3.tgz",
2999 | "integrity": "sha512-LiMq/XDGcgodTYOMppikEtJelWsKQERbLQsYm0IOOnzhwE9xYZC7x8txNnFC9wJNOkPferQI4vD4ZkC0mDyrOA==",
3000 | "requires": {
3001 | "debug": "^4.1.1",
3002 | "get-symbol-from-current-process-h": "^1.0.2",
3003 | "node-addon-api": "^3.0.0",
3004 | "node-gyp-build": "^4.2.1"
3005 | }
3006 | },
3007 | "ref-struct-di": {
3008 | "version": "1.1.1",
3009 | "resolved": "https://registry.npmjs.org/ref-struct-di/-/ref-struct-di-1.1.1.tgz",
3010 | "integrity": "sha512-2Xyn/0Qgz89VT+++WP0sTosdm9oeowLP23wRJYhG4BFdMUrLj3jhwHZNEytYNYgtPKLNTP3KJX4HEgBvM1/Y2g==",
3011 | "requires": {
3012 | "debug": "^3.1.0"
3013 | },
3014 | "dependencies": {
3015 | "debug": {
3016 | "version": "3.2.7",
3017 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
3018 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
3019 | "requires": {
3020 | "ms": "^2.1.1"
3021 | }
3022 | }
3023 | }
3024 | },
3025 | "regenerator-runtime": {
3026 | "version": "0.13.11",
3027 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
3028 | "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
3029 | },
3030 | "require-directory": {
3031 | "version": "2.1.1",
3032 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
3033 | "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="
3034 | },
3035 | "requires-port": {
3036 | "version": "1.0.0",
3037 | "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
3038 | "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="
3039 | },
3040 | "resolve-from": {
3041 | "version": "4.0.0",
3042 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
3043 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="
3044 | },
3045 | "safe-buffer": {
3046 | "version": "5.2.1",
3047 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
3048 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
3049 | },
3050 | "safer-buffer": {
3051 | "version": "2.1.2",
3052 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
3053 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
3054 | },
3055 | "setprototypeof": {
3056 | "version": "1.2.0",
3057 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
3058 | "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
3059 | },
3060 | "side-channel": {
3061 | "version": "1.0.4",
3062 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
3063 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
3064 | "requires": {
3065 | "call-bind": "^1.0.0",
3066 | "get-intrinsic": "^1.0.2",
3067 | "object-inspect": "^1.9.0"
3068 | }
3069 | },
3070 | "split": {
3071 | "version": "1.0.1",
3072 | "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
3073 | "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
3074 | "requires": {
3075 | "through": "2"
3076 | }
3077 | },
3078 | "statuses": {
3079 | "version": "1.5.0",
3080 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
3081 | "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA=="
3082 | },
3083 | "stream-combiner": {
3084 | "version": "0.2.2",
3085 | "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz",
3086 | "integrity": "sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ==",
3087 | "requires": {
3088 | "duplexer": "~0.1.1",
3089 | "through": "~2.3.4"
3090 | }
3091 | },
3092 | "string_decoder": {
3093 | "version": "1.3.0",
3094 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
3095 | "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
3096 | "requires": {
3097 | "safe-buffer": "~5.2.0"
3098 | }
3099 | },
3100 | "string-width": {
3101 | "version": "4.2.3",
3102 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
3103 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
3104 | "requires": {
3105 | "emoji-regex": "^8.0.0",
3106 | "is-fullwidth-code-point": "^3.0.0",
3107 | "strip-ansi": "^6.0.1"
3108 | }
3109 | },
3110 | "strip-ansi": {
3111 | "version": "6.0.1",
3112 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
3113 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
3114 | "requires": {
3115 | "ansi-regex": "^5.0.1"
3116 | }
3117 | },
3118 | "supports-color": {
3119 | "version": "5.5.0",
3120 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
3121 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
3122 | "requires": {
3123 | "has-flag": "^3.0.0"
3124 | }
3125 | },
3126 | "tar-fs": {
3127 | "version": "2.1.1",
3128 | "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
3129 | "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
3130 | "requires": {
3131 | "chownr": "^1.1.1",
3132 | "mkdirp-classic": "^0.5.2",
3133 | "pump": "^3.0.0",
3134 | "tar-stream": "^2.1.4"
3135 | }
3136 | },
3137 | "tar-stream": {
3138 | "version": "2.2.0",
3139 | "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
3140 | "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
3141 | "requires": {
3142 | "bl": "^4.0.3",
3143 | "end-of-stream": "^1.4.1",
3144 | "fs-constants": "^1.0.0",
3145 | "inherits": "^2.0.3",
3146 | "readable-stream": "^3.1.1"
3147 | }
3148 | },
3149 | "through": {
3150 | "version": "2.3.8",
3151 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
3152 | "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="
3153 | },
3154 | "tls-client": {
3155 | "version": "0.0.5",
3156 | "resolved": "https://registry.npmjs.org/tls-client/-/tls-client-0.0.5.tgz",
3157 | "integrity": "sha512-kx0+MRC7Ef7VIzdpyOz1zjXlanHMJFror4xT+mu/ZeBR/kbw5j931FSIaiI6W0FKB2Isj0X6XlfMfMB9mjubKA==",
3158 | "requires": {
3159 | "ffi-napi": "^4.0.3",
3160 | "tough-cookie": "^4.1.2"
3161 | }
3162 | },
3163 | "toidentifier": {
3164 | "version": "1.0.1",
3165 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
3166 | "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
3167 | },
3168 | "tough-cookie": {
3169 | "version": "4.1.2",
3170 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz",
3171 | "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==",
3172 | "requires": {
3173 | "psl": "^1.1.33",
3174 | "punycode": "^2.1.1",
3175 | "universalify": "^0.2.0",
3176 | "url-parse": "^1.5.3"
3177 | }
3178 | },
3179 | "tr46": {
3180 | "version": "0.0.3",
3181 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
3182 | "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
3183 | },
3184 | "tsscmp": {
3185 | "version": "1.0.6",
3186 | "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz",
3187 | "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA=="
3188 | },
3189 | "type-is": {
3190 | "version": "1.6.18",
3191 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
3192 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
3193 | "requires": {
3194 | "media-typer": "0.3.0",
3195 | "mime-types": "~2.1.24"
3196 | }
3197 | },
3198 | "typescript": {
3199 | "version": "5.0.4",
3200 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz",
3201 | "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==",
3202 | "optional": true,
3203 | "peer": true
3204 | },
3205 | "unbzip2-stream": {
3206 | "version": "1.4.3",
3207 | "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
3208 | "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==",
3209 | "requires": {
3210 | "buffer": "^5.2.1",
3211 | "through": "^2.3.8"
3212 | }
3213 | },
3214 | "underscore": {
3215 | "version": "1.13.6",
3216 | "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz",
3217 | "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A=="
3218 | },
3219 | "underscore-keypath": {
3220 | "version": "0.0.22",
3221 | "resolved": "https://registry.npmjs.org/underscore-keypath/-/underscore-keypath-0.0.22.tgz",
3222 | "integrity": "sha512-fU7aYj1J2LQd+jqdQ67AlCOZKK3Pl+VErS8fGYcgZG75XB9/bY+RLM+F2xEcKHhHNtLvqqFyXAoZQlLYfec3Xg==",
3223 | "requires": {
3224 | "underscore": "*"
3225 | }
3226 | },
3227 | "universalify": {
3228 | "version": "0.2.0",
3229 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
3230 | "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg=="
3231 | },
3232 | "unpipe": {
3233 | "version": "1.0.0",
3234 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
3235 | "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="
3236 | },
3237 | "url-parse": {
3238 | "version": "1.5.10",
3239 | "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
3240 | "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
3241 | "requires": {
3242 | "querystringify": "^2.1.1",
3243 | "requires-port": "^1.0.0"
3244 | }
3245 | },
3246 | "user-agents": {
3247 | "version": "1.0.1374",
3248 | "resolved": "https://registry.npmjs.org/user-agents/-/user-agents-1.0.1374.tgz",
3249 | "integrity": "sha512-HM3RZ4CCuo/TG6+DNeolWOlm6xqVfvNk4aCHXFht7MGr5HStiLlG3lyGjfnAIagrlTuc+tGEo0qy3ePastIUgw==",
3250 | "requires": {
3251 | "dot-json": "^1.3.0",
3252 | "lodash.clonedeep": "^4.5.0"
3253 | }
3254 | },
3255 | "util-deprecate": {
3256 | "version": "1.0.2",
3257 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
3258 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
3259 | },
3260 | "uuid": {
3261 | "version": "9.0.0",
3262 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz",
3263 | "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg=="
3264 | },
3265 | "vary": {
3266 | "version": "1.1.2",
3267 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
3268 | "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="
3269 | },
3270 | "webidl-conversions": {
3271 | "version": "3.0.1",
3272 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
3273 | "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
3274 | },
3275 | "whatwg-url": {
3276 | "version": "5.0.0",
3277 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
3278 | "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
3279 | "requires": {
3280 | "tr46": "~0.0.3",
3281 | "webidl-conversions": "^3.0.0"
3282 | }
3283 | },
3284 | "wrap-ansi": {
3285 | "version": "7.0.0",
3286 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
3287 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
3288 | "requires": {
3289 | "ansi-styles": "^4.0.0",
3290 | "string-width": "^4.1.0",
3291 | "strip-ansi": "^6.0.0"
3292 | },
3293 | "dependencies": {
3294 | "ansi-styles": {
3295 | "version": "4.3.0",
3296 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
3297 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
3298 | "requires": {
3299 | "color-convert": "^2.0.1"
3300 | }
3301 | },
3302 | "color-convert": {
3303 | "version": "2.0.1",
3304 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
3305 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
3306 | "requires": {
3307 | "color-name": "~1.1.4"
3308 | }
3309 | },
3310 | "color-name": {
3311 | "version": "1.1.4",
3312 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
3313 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
3314 | }
3315 | }
3316 | },
3317 | "wrappy": {
3318 | "version": "1.0.2",
3319 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
3320 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
3321 | },
3322 | "ws": {
3323 | "version": "8.13.0",
3324 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz",
3325 | "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==",
3326 | "requires": {}
3327 | },
3328 | "xregexp": {
3329 | "version": "5.1.1",
3330 | "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-5.1.1.tgz",
3331 | "integrity": "sha512-fKXeVorD+CzWvFs7VBuKTYIW63YD1e1osxwQ8caZ6o1jg6pDAbABDG54LCIq0j5cy7PjRvGIq6sef9DYPXpncg==",
3332 | "requires": {
3333 | "@babel/runtime-corejs3": "^7.16.5"
3334 | }
3335 | },
3336 | "y18n": {
3337 | "version": "5.0.8",
3338 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
3339 | "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="
3340 | },
3341 | "yargs": {
3342 | "version": "17.7.1",
3343 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz",
3344 | "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==",
3345 | "requires": {
3346 | "cliui": "^8.0.1",
3347 | "escalade": "^3.1.1",
3348 | "get-caller-file": "^2.0.5",
3349 | "require-directory": "^2.1.1",
3350 | "string-width": "^4.2.3",
3351 | "y18n": "^5.0.5",
3352 | "yargs-parser": "^21.1.1"
3353 | }
3354 | },
3355 | "yargs-parser": {
3356 | "version": "21.1.1",
3357 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
3358 | "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw=="
3359 | },
3360 | "yauzl": {
3361 | "version": "2.10.0",
3362 | "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
3363 | "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==",
3364 | "requires": {
3365 | "buffer-crc32": "~0.2.3",
3366 | "fd-slicer": "~1.1.0"
3367 | }
3368 | },
3369 | "ylru": {
3370 | "version": "1.3.2",
3371 | "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.3.2.tgz",
3372 | "integrity": "sha512-RXRJzMiK6U2ye0BlGGZnmpwJDPgakn6aNQ0A7gHRbD4I0uvK4TW6UqkK1V0pp9jskjJBAXd3dRrbzWkqJ+6cxA=="
3373 | }
3374 | }
3375 | }
3376 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "package_name": "gpt4free-js",
3 | "name": "gpt4free-js",
4 | "version": "1.0.0",
5 | "description": "gpt4free javascript version",
6 | "main": "index.js",
7 | "scripts": {
8 | "start": "node index.js"
9 | },
10 | "keywords": [
11 | "gpt4free",
12 | "javascript"
13 | ],
14 | "type": "module",
15 | "author": "thaon",
16 | "dependencies": {
17 | "axios": "^1.4.0",
18 | "dotenv": "^16.0.3",
19 | "event-stream": "^4.0.1",
20 | "fake-useragent": "^1.0.1",
21 | "http-proxy-agent": "^6.0.1",
22 | "https-proxy-agent": "^5.0.1",
23 | "koa": "^2.14.2",
24 | "koa-bodyparser": "^4.4.0",
25 | "koa-router": "^12.0.0",
26 | "puppeteer": "^20.1.2",
27 | "tls-client": "^0.0.5",
28 | "user-agents": "^1.0.1367",
29 | "uuid": "^9.0.0"
30 | },
31 | "devDependencies": {},
32 | "repository": {
33 | "type": "git",
34 | "url": "git+https://github.com/Thaon/gpt4free-js.git"
35 | },
36 | "license": "MIT",
37 | "bugs": {
38 | "url": "https://github.com/Thaon/gpt4free-js/issues"
39 | },
40 | "homepage": "https://github.com/Thaon/gpt4free-js#readme"
41 | }
42 |
--------------------------------------------------------------------------------
/pool/puppeteer.js:
--------------------------------------------------------------------------------
1 | import puppeteer from "puppeteer";
2 | import fs from "fs";
3 | import path from "path";
4 |
5 | const runPath = path.join("./run");
6 |
7 | export class FreeBrowser {
8 | browser = undefined;
9 | options;
10 | urls = new Set();
11 | pages = {};
12 | id;
13 |
14 | constructor(id, options) {
15 | this.options = {
16 | userDataDir: path.join(runPath, id),
17 | ...options,
18 | };
19 | this.id = id;
20 | }
21 |
22 | async init() {
23 | this.browser = await puppeteer.launch(this.options);
24 | }
25 |
26 | async getPage(url) {
27 | if (!this.browser) {
28 | throw new Error("Browser must init first");
29 | }
30 | if (this.pages[url]) {
31 | return this.pages[url];
32 | }
33 | const page = await this.browser.newPage();
34 | await page.goto(url);
35 |
36 | this.pages[url] = page;
37 | return page;
38 | }
39 | }
40 |
41 | class FreeBrowserPool {
42 | size = 0;
43 | pool;
44 |
45 | constructor() {
46 | this.pool = [];
47 | }
48 |
49 | async init(size, debug) {
50 | console.log(`browser pool init size:${size}`);
51 | if (!fs.existsSync(runPath)) {
52 | fs.mkdirSync(runPath);
53 | }
54 | this.size = size;
55 | const options = {
56 | headless: !debug,
57 | };
58 | for (let i = 0; i < size; i++) {
59 | const browser = new FreeBrowser(`${i}`, options);
60 | await browser.init();
61 | this.pool.push(browser);
62 | }
63 | }
64 |
65 | getRandom() {
66 | return this.pool[Math.floor(Math.random() * this.pool.length)];
67 | }
68 | }
69 |
70 | export const freeBrowserPool = new FreeBrowserPool();
71 |
--------------------------------------------------------------------------------
/utils/emailFactory.js:
--------------------------------------------------------------------------------
1 | import { md5, randomStr } from "./index.js";
2 | import { CreateAxiosProxy } from "./proxyAgent.js";
3 |
4 | // export enum TempEmailType {
5 | // // need credit card https://rapidapi.com/Privatix/api/temp-mail
6 | // TempEmail = 'temp-email',
7 | // // not need credit card , hard limit 100/day https://rapidapi.com/calvinloveland335703-0p6BxLYIH8f/api/temp-mail44
8 | // TempEmail44 = 'temp-email44',
9 | // }
10 |
11 | // export interface BaseMailMessage {
12 | // // main content of email
13 | // content: string;
14 | // }
15 |
16 | // export interface TempMailMessage extends BaseMailMessage {
17 | // _id: {
18 | // oid: string;
19 | // };
20 | // createdAt: {
21 | // milliseconds: number;
22 | // };
23 | // mail_id: string;
24 | // mail_address_id: string;
25 | // mail_from: string;
26 | // mail_subject: string;
27 | // mail_preview: string;
28 | // mail_text_only: string;
29 | // mail_text: string;
30 | // mail_html: string;
31 | // mail_timestamp: number;
32 | // mail_attachments_count: number;
33 | // mail_attachments: {
34 | // attachment[];
35 | // };
36 | // }
37 |
38 | // interface BaseOptions {
39 | // }
40 |
41 | // export interface TempMailOptions extends BaseOptions {
42 | // apikey?: string;
43 | // }
44 |
45 | export function CreateEmail(tempMailType, options) {
46 | switch (tempMailType) {
47 | case "temp-email44":
48 | return new TempMail44(options);
49 | case "temp-email":
50 | return new TempMail(options);
51 | default:
52 | throw new Error("not support TempEmailType");
53 | }
54 | }
55 |
56 | class BaseEmail {
57 | constructor(options) {}
58 |
59 | getMailAddress() {}
60 |
61 | waitMails() {}
62 | }
63 |
64 | class TempMail extends BaseEmail {
65 | client;
66 | address;
67 | mailID;
68 |
69 | constructor(options) {
70 | super(options);
71 | const apikey = options?.apikey || process.env.rapid_api_key;
72 | if (!apikey) {
73 | throw new Error("Need apikey for TempMail");
74 | }
75 | this.client = CreateAxiosProxy({
76 | baseURL: "https://privatix-temp-mail-v1.p.rapidapi.com/request/",
77 | headers: {
78 | "X-RapidAPI-Key": apikey,
79 | "X-RapidAPI-Host": "privatix-temp-mail-v1.p.rapidapi.com",
80 | },
81 | });
82 | }
83 |
84 | async getMailAddress() {
85 | this.address = `${randomStr()}${await this.randomDomain()}`;
86 | this.mailID = md5(this.address);
87 | return this.address;
88 | }
89 |
90 | async waitMails() {
91 | const mailID = this.mailID;
92 | return new Promise((resolve) => {
93 | let time = 0;
94 | const itl = setInterval(async () => {
95 | const response = await this.client.get(`/mail/id/${mailID}`);
96 | if (response.data && response.data.length > 0) {
97 | resolve(
98 | response.data.map((item) => ({ ...item, content: item.mail_html }))
99 | );
100 | clearInterval(itl);
101 | return;
102 | }
103 | if (time > 5) {
104 | resolve([]);
105 | clearInterval(itl);
106 | return;
107 | }
108 | time++;
109 | }, 5000);
110 | });
111 | }
112 |
113 | async getDomainsList() {
114 | const res = await this.client.get(`/domains/`);
115 | return res.data;
116 | }
117 |
118 | async randomDomain() {
119 | const domainList = await this.getDomainsList();
120 | return domainList[Math.floor(Math.random() * domainList.length)];
121 | }
122 | }
123 |
124 | class TempMail44 extends BaseEmail {
125 | client;
126 | address;
127 |
128 | constructor(options) {
129 | super(options);
130 | const apikey = options?.apikey || process.env.rapid_api_key;
131 | if (!apikey) {
132 | throw new Error("Need apikey for TempMail");
133 | }
134 | this.client = CreateAxiosProxy({
135 | baseURL: "https://temp-mail44.p.rapidapi.com/api/v3/email/",
136 | headers: {
137 | "X-RapidAPI-Key": apikey,
138 | "X-RapidAPI-Host": "temp-mail44.p.rapidapi.com",
139 | },
140 | });
141 | }
142 |
143 | async getMailAddress() {
144 | const response = await this.client.post(
145 | "/new",
146 | {},
147 | {
148 | headers: {
149 | "content-type": "application/json",
150 | },
151 | }
152 | );
153 | this.address = response.data.email;
154 | return this.address;
155 | }
156 |
157 | async waitMails() {
158 | return new Promise((resolve) => {
159 | let time = 0;
160 | const itl = setInterval(async () => {
161 | const response = await this.client.get(`/${this.address}/messages`);
162 | if (response.data && response.data.length > 0) {
163 | resolve(
164 | response.data.map((item) => ({ ...item, content: item.body_html }))
165 | );
166 | clearInterval(itl);
167 | return;
168 | }
169 | if (time > 5) {
170 | resolve([]);
171 | clearInterval(itl);
172 | return;
173 | }
174 | time++;
175 | }, 5000);
176 | });
177 | }
178 | }
179 |
--------------------------------------------------------------------------------
/utils/index.js:
--------------------------------------------------------------------------------
1 | import es from "event-stream";
2 | import { PassThrough } from "stream";
3 | import * as crypto from "crypto";
4 | import { v4 } from "uuid";
5 |
6 | // type eventFunc = (eventName, data) => void;
7 |
8 | export function toEventCB(arr, emit) {
9 | const pt = new PassThrough();
10 | pt.write(arr);
11 | pt.pipe(es.split(/\r?\n\r?\n/)) //split stream to break on newlines
12 | .pipe(
13 | es.map(async function (chunk, cb) {
14 | //turn this async function into a stream
15 | const [eventStr, dataStr] = chunk.split(/\r?\n/);
16 | const event = eventStr.replace(/event: /, "");
17 | const data = dataStr.replace(/data: /, "");
18 | emit(event, data);
19 | cb(null, { data, event });
20 | })
21 | );
22 | }
23 |
24 | export function toEventStream(arr) {
25 | const pt = new PassThrough();
26 | pt.write(arr);
27 | return pt;
28 | }
29 |
30 | export function md5(str) {
31 | return crypto.createHash("md5").update(str).digest("hex");
32 | }
33 |
34 | export function randomStr() {
35 | return v4().split("-").join("").slice(-6);
36 | }
37 |
38 | export function parseJSON(str, defaultObj) {
39 | try {
40 | return JSON.parse(str);
41 | } catch (e) {
42 | console.error(str, e);
43 | return defaultObj;
44 | }
45 | }
46 |
47 | export function encryptWithAes256Cbc(data, key) {
48 | const hash = crypto.createHash("sha256").update(key).digest();
49 | const iv = crypto.randomBytes(16);
50 | const cipher = crypto.createCipheriv("aes-256-cbc", hash, iv);
51 |
52 | let encryptedData = cipher.update(data, "utf-8", "hex");
53 | encryptedData += cipher.final("hex");
54 |
55 | return iv.toString("hex") + encryptedData;
56 | }
57 |
--------------------------------------------------------------------------------
/utils/proxyAgent.js:
--------------------------------------------------------------------------------
1 | import axios from "axios";
2 | import HttpsProxyAgent from "https-proxy-agent";
3 | import tlsClient from "tls-client";
4 |
5 | export function CreateAxiosProxy(config, proxy) {
6 | const createConfig = { ...config };
7 | const useProxy = process.env.http_proxy || proxy;
8 | if (useProxy) {
9 | createConfig.proxy = false;
10 | createConfig.httpAgent = HttpsProxyAgent(useProxy);
11 | createConfig.httpsAgent = HttpsProxyAgent(useProxy);
12 | }
13 | return axios.create(createConfig);
14 | }
15 |
16 | export function CreateTlsProxy(config, proxy) {
17 | const client = new tlsClient.Session(config);
18 | const useProxy = process.env.http_proxy || proxy;
19 | if (useProxy) {
20 | client.proxy = useProxy;
21 | }
22 | return client;
23 | }
24 |
--------------------------------------------------------------------------------