├── .editorconfig
├── .gitignore
├── .vscode
└── settings.json
├── HTML
├── README.md
└── index.html
├── README.md
├── deno
├── .vscode
│ └── settings.json
├── README.md
└── main.ts
├── logo.png
├── nim
├── .gitignore
├── README.md
├── nim.cfg
├── src
│ └── voiceflow.nim
└── voiceflow.nimble
├── nodeJS
├── README.md
├── index.js
├── package-lock.json
└── package.json
├── python
├── README.md
└── index.py
├── react
├── App.js
└── README.md
├── renovate.json
└── rust
├── .gitignore
├── Cargo.lock
├── Cargo.toml
├── README.md
└── src
└── main.rs
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | end_of_line = lf
6 | indent_size = 2
7 | indent_style = space
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
11 | [vcbuild.bat]
12 | end_of_line = crlf
13 |
14 | [Makefile]
15 | indent_size = 8
16 | indent_style = tab
17 |
18 | [{deps}/**]
19 | charset = ignore
20 | end_of_line = ignore
21 | indent_size = ignore
22 | indent_style = ignore
23 | trim_trailing_whitespace = ignore
24 |
25 | [{test/fixtures,deps,tools/node_modules,tools/gyp,tools/icu,tools/msvs}/**]
26 | insert_final_newline = false
27 |
28 | [*.js]
29 | trim_trailing_whitespace = false
30 | max_line_length = 150
31 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "nim.nimprettyIndent": 2,
3 | "nim.nimprettyMaxLineLen": 180
4 | }
5 |
--------------------------------------------------------------------------------
/HTML/README.md:
--------------------------------------------------------------------------------
1 | # Voiceflow API HTML/JQuery Example
2 |
3 | Set up your Voiceflow project on a simple webpage in a matter of minutes.
4 | This example is not meant to be run in production.
5 |
6 | > ⚠️ - It is not recommended to allow anyone to see your API Key, keep this a secret and implement it on the backend instead.
7 | > Voiceflow may create public keys in the future.
8 |
9 | ## Documentation
10 |
11 | For additional information about the Voiceflow API, visit the [documentation](https://www.voiceflow.com/api/dialog-manager).
12 |
13 | ## Setup
14 |
15 | 1. Replace `'YOUR_API_KEY_HERE'` in `index.html` with your Dialog Manager API Key. You can find it under the integrations tab:
16 |
17 |
18 |
19 | 2. Open `index.html` on any browser to start your chat!
20 |
21 | ## Example
22 |
23 | What it might look like in action:
24 |
25 |
26 |
--------------------------------------------------------------------------------
/HTML/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Voiceflow API examples
2 |
3 | 
4 |
5 | Getting started with the [Voiceflow API](https://www.voiceflow.com/developer) has never been easier.
6 | Use one of our examples to get setup in a matter of minutes:
7 |
8 | - [Node.js](./nodeJS/README.md) - A Node.js app that lets you interact with your project from the terminal
9 | - [Deno](./deno/README.md) - A Deno app that lets you interact with your project from the terminal
10 | - [HTML and jQuery](./HTML/README.md) - A simple webpage that displays messages in your browser
11 | - [Nim](./nim/README.md) - A Nim app that lets you interact with your project from the terminal
12 | - [Rust](./rust/README.md) - A Rust app that lets you interact with your project from the terminal
13 | - [Python](./python/README.md) - A Python app that lets you interact with your project from the terminal
14 |
15 | Want an example that isn't listed?
16 | [Open a GitHub issue](https://github.com/voiceflow/api-examples/issues/new) and we'll add it to the list.
17 |
--------------------------------------------------------------------------------
/deno/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "deno.enable": true,
3 | "deno.lint": true,
4 | "deno.unstable": false
5 | }
6 |
--------------------------------------------------------------------------------
/deno/README.md:
--------------------------------------------------------------------------------
1 | # Voiceflow API Deno Example
2 |
3 | Set up your Voiceflow project with Deno in a matter of minutes.
4 | This example can be adapted to run as an HTTP server.
5 |
6 | This example lets you chat with your project via the terminal.
7 |
8 | ## Documentation
9 |
10 | For additional information about the Voiceflow API, visit the [documentation](https://www.voiceflow.com/api/dialog-manager).
11 |
12 | ## Setup
13 |
14 | 1. Download and install [Deno](https://deno.land/#installation)
15 | 1. Replace `'YOUR_API_KEY_HERE'` in `main.ts` with your Dialog Manager API Key. You can find it under the integrations tab:
16 |
17 | 1. Run `deno run --allow-net main.ts` to start your chat
18 |
19 | ## Example
20 |
21 | What it might look like in action:
22 |
23 | ```
24 | $ deno run --allow-net main.ts
25 |
26 | > What is your name?: tyler
27 | what can I do for you?
28 | ...
29 | > Say something: send email
30 | who is the recipient?
31 | ...
32 | > Say something: tyler@voiceflow.com
33 | what is the title of your email?
34 | ...
35 | > Say something: How was your day?
36 | sending the email for tyler@voiceflow.com called "How was your day?". Is that correct?
37 | ...
38 | > Say something: yes
39 | successfully sent the email for tyler@voiceflow.com called "How was your day?"
40 | The end!
41 | ```
--------------------------------------------------------------------------------
/deno/main.ts:
--------------------------------------------------------------------------------
1 | // Import types using skypack for deno support
2 | import { Request } from "https://cdn.skypack.dev/@voiceflow/base-types";
3 |
4 | const API_KEY = "YOUR_API_KEY_HERE"; // it should look like this: VF.DM.XXXXXXX.XXXXXX... keep this a secret!
5 |
6 | const API_URL = `https://general-runtime.voiceflow.com/`;
7 |
8 | // send an interaction to the Voiceflow API, and log the response, returns true if there is a next step
9 | async function interact(
10 | userID: string,
11 | request: R,
12 | ): Promise {
13 | const url = new URL(`state/user/${userID}/interact`, API_URL);
14 |
15 | // call the Voiceflow API with the user's name & request, get back a response
16 | const response = await fetch(url, {
17 | method: "POST",
18 | headers: {
19 | Authorization: API_KEY,
20 | "Content-Type": "application/json",
21 | },
22 | body: JSON.stringify({request}),
23 | });
24 |
25 | if (!response.ok) {
26 | console.log("Uh oh", response.status, response.statusText);
27 | return false;
28 | }
29 |
30 | const json = await response.json();
31 | console.log('response', json);
32 | // loop through the response
33 | for (const trace of json) {
34 | switch (trace.type) {
35 | case "text":
36 | case "speak": {
37 | console.log(trace.payload.message);
38 | break;
39 | }
40 | case "end": {
41 | // an end trace means the the Voiceflow dialog has ended
42 | return false;
43 | }
44 | }
45 | }
46 |
47 | return true;
48 | }
49 |
50 | const userID = prompt("> What is your name?");
51 | if (userID) {
52 | // send a simple launch request starting the dialog
53 | let isRunning = await interact(userID, {
54 | type: Request.RequestType.LAUNCH,
55 | });
56 |
57 | while (isRunning) {
58 | const nextInput = prompt("> Say something");
59 | if (!nextInput) break;
60 |
61 | // send a simple text type request with the user input
62 | isRunning = await interact(userID, {
63 | type: Request.RequestType.TEXT,
64 | payload: nextInput,
65 | });
66 | }
67 | }
68 |
69 | console.log("The end!");
70 |
--------------------------------------------------------------------------------
/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/voiceflow/api-examples/c3d8ba9ee8eced7ec8d241973b1eb0284aaec212/logo.png
--------------------------------------------------------------------------------
/nim/.gitignore:
--------------------------------------------------------------------------------
1 | # compiled binary
2 | voiceflow
3 |
--------------------------------------------------------------------------------
/nim/README.md:
--------------------------------------------------------------------------------
1 | # Voiceflow API Nim Example
2 |
3 | Set up your Voiceflow project with Nim in a matter of minutes.
4 | [Nim](https://nim-lang.org/) is a statically typed compiled systems programming language.
5 |
6 | This example lets you chat with your project via the terminal.
7 |
8 | ## Documentation
9 |
10 | For additional information about the Voiceflow API, visit the [documentation](https://www.voiceflow.com/api/dialog-manager).
11 |
12 | ## Setup
13 |
14 | 1. If you do not yet have Nim installed, [install it from here](https://nim-lang.org/install.html).
15 | 2. Replace `'YOUR_API_KEY_HERE'` in `src/voiceflow.nim` with your Dialog Manager API Key. You can find it under the integrations tab:
16 |
17 |
18 |
19 | 3. Run `nimble run` to compile and run the app.
20 |
21 | ## Example
22 |
23 | What it might look like in action:
24 |
25 | ```
26 | $ nimble run
27 |
28 | > What is your name?: tyler
29 | what can I do for you?
30 | ...
31 | > Say something: send email
32 | who is the recipient?
33 | ...
34 | > Say something: tyler@voiceflow.com
35 | what is the title of your email?
36 | ...
37 | > Say something: How was your day?
38 | sending the email for tyler@voiceflow.com called "How was your day?". Is that correct?
39 | ...
40 | > Say something: yes
41 | successfully sent the email for tyler@voiceflow.com called "How was your day?"
42 | The end!
43 | ```
44 |
--------------------------------------------------------------------------------
/nim/nim.cfg:
--------------------------------------------------------------------------------
1 | # Enable SSL
2 | -d:ssl
3 |
--------------------------------------------------------------------------------
/nim/src/voiceflow.nim:
--------------------------------------------------------------------------------
1 | # view the README.md file for additional instructions
2 |
3 | import httpclient
4 | import rdstdin
5 | import json
6 | import strformat
7 |
8 | const apiKey = "YOUR_API_KEY_HERE" # it should look like this: VF.DM.XXXXXXX.XXXXXX... keep this a secret!
9 |
10 | var http = newHttpClient()
11 |
12 | proc interact(userID: string, request: JsonNode): bool =
13 | echo "..."
14 |
15 | let headers = newHttpHeaders({"Content-Type": "application/json", "Authorization": apiKey})
16 | let url = fmt"https://general-runtime.voiceflow.com/state/user/{userID}/interact"
17 |
18 | # call the Voiceflow API with the user's name & request, get back a response
19 | let response = http.request(url, HttpPost, $(%*request), headers)
20 |
21 | let body = response.body().parseJson()
22 |
23 | if response.status != $Http200:
24 | # quit on errors
25 | quit(fmt"HTTP error: {body}", QuitFailure)
26 |
27 | let traces = body.getElems()
28 | for trace in traces:
29 | case trace["type"].getStr():
30 | of "speak":
31 | echo trace["payload"]["message"].getStr()
32 | of "text":
33 | echo trace["payload"]["text"].getStr()
34 | of "end":
35 | # an end trace means the the Voiceflow dialog has ended
36 | return false
37 |
38 | return true
39 |
40 | let userID = readLineFromStdin("> What is your name?: ")
41 | # send a simple launch request starting the dialog
42 | var isRunning = userID.interact(%*{"type": "launch"})
43 |
44 | while isRunning:
45 | # send a simple text type request with the user input
46 | let nextInput = readLineFromStdin("> Say something: ")
47 | isRunning = userID.interact(%*{"type": "text", "payload": nextInput})
48 |
49 | echo "The end!"
50 |
--------------------------------------------------------------------------------
/nim/voiceflow.nimble:
--------------------------------------------------------------------------------
1 | # Package
2 |
3 | version = "0.1.0"
4 | author = "Jonah Snider"
5 | description = "Interact with the Voiceflow API from Nim"
6 | license = "MIT"
7 | srcDir = "src"
8 | bin = @["voiceflow"]
9 |
10 |
11 | # Dependencies
12 |
13 | requires "nim >= 1.4.8"
14 |
15 |
--------------------------------------------------------------------------------
/nodeJS/README.md:
--------------------------------------------------------------------------------
1 | # Voiceflow API Node.js Example
2 |
3 | Set up your Voiceflow project with Node.js in a matter of minutes.
4 | Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine.
5 | This example can be adapted to run as an HTTP server.
6 |
7 | This example lets you chat with your project via the terminal.
8 |
9 | ## Documentation
10 |
11 | For additional information about the Voiceflow API, visit the [documentation](https://www.voiceflow.com/api/dialog-manager).
12 |
13 | ## Setup
14 |
15 | 1. If you do not have node, install _Node.js_ and _npm_ from [nodejs.org](https://nodejs.org/), or follow an equivalent guide.
16 | 2. In this folder, run `npm install`.
17 | 3. Replace `'YOUR_API_KEY_HERE'` in `index.js` with your Dialog Manager API Key. You can find it under the integrations tab:
18 |
19 |
20 |
21 | 4. run `npm start` to start your chat!
22 |
23 | ## Example
24 |
25 | What it might look like in action:
26 |
27 | ```
28 | $ npm start
29 |
30 | > What is your name?: tyler
31 | what can I do for you?
32 | ...
33 | > Say something: send email
34 | who is the recipient?
35 | ...
36 | > Say something: tyler@voiceflow.com
37 | what is the title of your email?
38 | ...
39 | > Say something: How was your day?
40 | sending the email for tyler@voiceflow.com called "How was your day?". Is that correct?
41 | ...
42 | > Say something: yes
43 | successfully sent the email for tyler@voiceflow.com called "How was your day?"
44 | The end! Start me again with `npm start`
45 | ```
46 |
--------------------------------------------------------------------------------
/nodeJS/index.js:
--------------------------------------------------------------------------------
1 | // view the README.md file for additional instructions
2 | const axios = require("axios");
3 | const { cli } = require("cli-ux");
4 |
5 | const API_KEY = "YOUR_API_KEY_HERE"; // it should look like this: VF.DM.XXXXXXX.XXXXXX... keep this a secret!
6 |
7 | // send an interaction to the Voiceflow API, and log the response, returns true if there is a next step
8 | async function interact(userID, request) {
9 | console.log("...");
10 |
11 | // call the Voiceflow API with the user's name & request, get back a response
12 | const response = await axios({
13 | method: "POST",
14 | url: `https://general-runtime.voiceflow.com/state/user/${userID}/interact`,
15 | headers: { Authorization: API_KEY },
16 | data: { request },
17 | });
18 |
19 | // loop through the response
20 | for (const trace of response.data) {
21 | switch (trace.type) {
22 | case "text":
23 | case "speak": {
24 | console.log(trace.payload.message);
25 | break;
26 | }
27 | case "end": {
28 | // an end trace means the the Voiceflow dialog has ended
29 | return false;
30 | }
31 | }
32 | }
33 |
34 | return true;
35 | }
36 |
37 | async function main() {
38 | const userID = await cli.prompt("> What is your name?");
39 | // send a simple launch request starting the dialog
40 | let isRunning = await interact(userID, { type: "launch" });
41 |
42 | while (isRunning) {
43 | const nextInput = await cli.prompt("> Say something");
44 | // send a simple text type request with the user input
45 | isRunning = await interact(userID, { type: "text", payload: nextInput });
46 | }
47 | console.log("The end! Start me again with `npm start`");
48 | }
49 |
50 | main();
51 |
--------------------------------------------------------------------------------
/nodeJS/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "voiceflow-api-nodejs-example",
3 | "version": "1.0.0",
4 | "lockfileVersion": 2,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "voiceflow-api-nodejs-example",
9 | "version": "1.0.0",
10 | "license": "ISC",
11 | "dependencies": {
12 | "axios": "^0.21.2",
13 | "cli-ux": "^5.6.3"
14 | }
15 | },
16 | "node_modules/@nodelib/fs.scandir": {
17 | "version": "2.1.5",
18 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
19 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
20 | "dependencies": {
21 | "@nodelib/fs.stat": "2.0.5",
22 | "run-parallel": "^1.1.9"
23 | },
24 | "engines": {
25 | "node": ">= 8"
26 | }
27 | },
28 | "node_modules/@nodelib/fs.stat": {
29 | "version": "2.0.5",
30 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
31 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
32 | "engines": {
33 | "node": ">= 8"
34 | }
35 | },
36 | "node_modules/@nodelib/fs.walk": {
37 | "version": "1.2.8",
38 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
39 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
40 | "dependencies": {
41 | "@nodelib/fs.scandir": "2.1.5",
42 | "fastq": "^1.6.0"
43 | },
44 | "engines": {
45 | "node": ">= 8"
46 | }
47 | },
48 | "node_modules/@oclif/command": {
49 | "version": "1.8.0",
50 | "resolved": "https://registry.npmjs.org/@oclif/command/-/command-1.8.0.tgz",
51 | "integrity": "sha512-5vwpq6kbvwkQwKqAoOU3L72GZ3Ta8RRrewKj9OJRolx28KLJJ8Dg9Rf7obRwt5jQA9bkYd8gqzMTrI7H3xLfaw==",
52 | "dependencies": {
53 | "@oclif/config": "^1.15.1",
54 | "@oclif/errors": "^1.3.3",
55 | "@oclif/parser": "^3.8.3",
56 | "@oclif/plugin-help": "^3",
57 | "debug": "^4.1.1",
58 | "semver": "^7.3.2"
59 | },
60 | "engines": {
61 | "node": ">=8.0.0"
62 | },
63 | "peerDependencies": {
64 | "@oclif/config": "^1"
65 | }
66 | },
67 | "node_modules/@oclif/config": {
68 | "version": "1.17.0",
69 | "resolved": "https://registry.npmjs.org/@oclif/config/-/config-1.17.0.tgz",
70 | "integrity": "sha512-Lmfuf6ubjQ4ifC/9bz1fSCHc6F6E653oyaRXxg+lgT4+bYf9bk+nqrUpAbrXyABkCqgIBiFr3J4zR/kiFdE1PA==",
71 | "dependencies": {
72 | "@oclif/errors": "^1.3.3",
73 | "@oclif/parser": "^3.8.0",
74 | "debug": "^4.1.1",
75 | "globby": "^11.0.1",
76 | "is-wsl": "^2.1.1",
77 | "tslib": "^2.0.0"
78 | },
79 | "engines": {
80 | "node": ">=8.0.0"
81 | }
82 | },
83 | "node_modules/@oclif/errors": {
84 | "version": "1.3.5",
85 | "resolved": "https://registry.npmjs.org/@oclif/errors/-/errors-1.3.5.tgz",
86 | "integrity": "sha512-OivucXPH/eLLlOT7FkCMoZXiaVYf8I/w1eTAM1+gKzfhALwWTusxEx7wBmW0uzvkSg/9ovWLycPaBgJbM3LOCQ==",
87 | "dependencies": {
88 | "clean-stack": "^3.0.0",
89 | "fs-extra": "^8.1",
90 | "indent-string": "^4.0.0",
91 | "strip-ansi": "^6.0.0",
92 | "wrap-ansi": "^7.0.0"
93 | },
94 | "engines": {
95 | "node": ">=8.0.0"
96 | }
97 | },
98 | "node_modules/@oclif/linewrap": {
99 | "version": "1.0.0",
100 | "resolved": "https://registry.npmjs.org/@oclif/linewrap/-/linewrap-1.0.0.tgz",
101 | "integrity": "sha512-Ups2dShK52xXa8w6iBWLgcjPJWjais6KPJQq3gQ/88AY6BXoTX+MIGFPrWQO1KLMiQfoTpcLnUwloN4brrVUHw=="
102 | },
103 | "node_modules/@oclif/parser": {
104 | "version": "3.8.5",
105 | "resolved": "https://registry.npmjs.org/@oclif/parser/-/parser-3.8.5.tgz",
106 | "integrity": "sha512-yojzeEfmSxjjkAvMRj0KzspXlMjCfBzNRPkWw8ZwOSoNWoJn+OCS/m/S+yfV6BvAM4u2lTzX9Y5rCbrFIgkJLg==",
107 | "dependencies": {
108 | "@oclif/errors": "^1.2.2",
109 | "@oclif/linewrap": "^1.0.0",
110 | "chalk": "^2.4.2",
111 | "tslib": "^1.9.3"
112 | },
113 | "engines": {
114 | "node": ">=8.0.0"
115 | }
116 | },
117 | "node_modules/@oclif/parser/node_modules/ansi-styles": {
118 | "version": "3.2.1",
119 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
120 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
121 | "dependencies": {
122 | "color-convert": "^1.9.0"
123 | },
124 | "engines": {
125 | "node": ">=4"
126 | }
127 | },
128 | "node_modules/@oclif/parser/node_modules/chalk": {
129 | "version": "2.4.2",
130 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
131 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
132 | "dependencies": {
133 | "ansi-styles": "^3.2.1",
134 | "escape-string-regexp": "^1.0.5",
135 | "supports-color": "^5.3.0"
136 | },
137 | "engines": {
138 | "node": ">=4"
139 | }
140 | },
141 | "node_modules/@oclif/parser/node_modules/color-convert": {
142 | "version": "1.9.3",
143 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
144 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
145 | "dependencies": {
146 | "color-name": "1.1.3"
147 | }
148 | },
149 | "node_modules/@oclif/parser/node_modules/color-name": {
150 | "version": "1.1.3",
151 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
152 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
153 | },
154 | "node_modules/@oclif/parser/node_modules/escape-string-regexp": {
155 | "version": "1.0.5",
156 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
157 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
158 | "engines": {
159 | "node": ">=0.8.0"
160 | }
161 | },
162 | "node_modules/@oclif/parser/node_modules/has-flag": {
163 | "version": "3.0.0",
164 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
165 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
166 | "engines": {
167 | "node": ">=4"
168 | }
169 | },
170 | "node_modules/@oclif/parser/node_modules/supports-color": {
171 | "version": "5.5.0",
172 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
173 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
174 | "dependencies": {
175 | "has-flag": "^3.0.0"
176 | },
177 | "engines": {
178 | "node": ">=4"
179 | }
180 | },
181 | "node_modules/@oclif/parser/node_modules/tslib": {
182 | "version": "1.14.1",
183 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
184 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
185 | },
186 | "node_modules/@oclif/plugin-help": {
187 | "version": "3.2.3",
188 | "resolved": "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-3.2.3.tgz",
189 | "integrity": "sha512-l2Pd0lbOMq4u/7xsl9hqISFqyR9gWEz/8+05xmrXFr67jXyS6EUCQB+mFBa0wepltrmJu0sAFg9AvA2mLaMMqQ==",
190 | "dependencies": {
191 | "@oclif/command": "^1.5.20",
192 | "@oclif/config": "^1.15.1",
193 | "@oclif/errors": "^1.2.2",
194 | "chalk": "^4.1.0",
195 | "indent-string": "^4.0.0",
196 | "lodash.template": "^4.4.0",
197 | "string-width": "^4.2.0",
198 | "strip-ansi": "^6.0.0",
199 | "widest-line": "^3.1.0",
200 | "wrap-ansi": "^4.0.0"
201 | },
202 | "engines": {
203 | "node": ">=8.0.0"
204 | }
205 | },
206 | "node_modules/@oclif/plugin-help/node_modules/ansi-regex": {
207 | "version": "3.0.1",
208 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz",
209 | "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==",
210 | "engines": {
211 | "node": ">=4"
212 | }
213 | },
214 | "node_modules/@oclif/plugin-help/node_modules/ansi-styles": {
215 | "version": "3.2.1",
216 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
217 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
218 | "dependencies": {
219 | "color-convert": "^1.9.0"
220 | },
221 | "engines": {
222 | "node": ">=4"
223 | }
224 | },
225 | "node_modules/@oclif/plugin-help/node_modules/color-convert": {
226 | "version": "1.9.3",
227 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
228 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
229 | "dependencies": {
230 | "color-name": "1.1.3"
231 | }
232 | },
233 | "node_modules/@oclif/plugin-help/node_modules/color-name": {
234 | "version": "1.1.3",
235 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
236 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
237 | },
238 | "node_modules/@oclif/plugin-help/node_modules/is-fullwidth-code-point": {
239 | "version": "2.0.0",
240 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
241 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
242 | "engines": {
243 | "node": ">=4"
244 | }
245 | },
246 | "node_modules/@oclif/plugin-help/node_modules/wrap-ansi": {
247 | "version": "4.0.0",
248 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-4.0.0.tgz",
249 | "integrity": "sha512-uMTsj9rDb0/7kk1PbcbCcwvHUxp60fGDB/NNXpVa0Q+ic/e7y5+BwTxKfQ33VYgDppSwi/FBzpetYzo8s6tfbg==",
250 | "dependencies": {
251 | "ansi-styles": "^3.2.0",
252 | "string-width": "^2.1.1",
253 | "strip-ansi": "^4.0.0"
254 | },
255 | "engines": {
256 | "node": ">=6"
257 | }
258 | },
259 | "node_modules/@oclif/plugin-help/node_modules/wrap-ansi/node_modules/string-width": {
260 | "version": "2.1.1",
261 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
262 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
263 | "dependencies": {
264 | "is-fullwidth-code-point": "^2.0.0",
265 | "strip-ansi": "^4.0.0"
266 | },
267 | "engines": {
268 | "node": ">=4"
269 | }
270 | },
271 | "node_modules/@oclif/plugin-help/node_modules/wrap-ansi/node_modules/strip-ansi": {
272 | "version": "4.0.0",
273 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
274 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
275 | "dependencies": {
276 | "ansi-regex": "^3.0.0"
277 | },
278 | "engines": {
279 | "node": ">=4"
280 | }
281 | },
282 | "node_modules/@oclif/screen": {
283 | "version": "1.0.4",
284 | "resolved": "https://registry.npmjs.org/@oclif/screen/-/screen-1.0.4.tgz",
285 | "integrity": "sha512-60CHpq+eqnTxLZQ4PGHYNwUX572hgpMHGPtTWMjdTMsAvlm69lZV/4ly6O3sAYkomo4NggGcomrDpBe34rxUqw==",
286 | "engines": {
287 | "node": ">=8.0.0"
288 | }
289 | },
290 | "node_modules/ansi-escapes": {
291 | "version": "4.3.2",
292 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
293 | "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
294 | "dependencies": {
295 | "type-fest": "^0.21.3"
296 | },
297 | "engines": {
298 | "node": ">=8"
299 | },
300 | "funding": {
301 | "url": "https://github.com/sponsors/sindresorhus"
302 | }
303 | },
304 | "node_modules/ansi-regex": {
305 | "version": "5.0.1",
306 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
307 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
308 | "engines": {
309 | "node": ">=8"
310 | }
311 | },
312 | "node_modules/ansi-styles": {
313 | "version": "4.3.0",
314 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
315 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
316 | "dependencies": {
317 | "color-convert": "^2.0.1"
318 | },
319 | "engines": {
320 | "node": ">=8"
321 | },
322 | "funding": {
323 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
324 | }
325 | },
326 | "node_modules/ansicolors": {
327 | "version": "0.3.2",
328 | "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz",
329 | "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk="
330 | },
331 | "node_modules/argparse": {
332 | "version": "1.0.10",
333 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
334 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
335 | "dependencies": {
336 | "sprintf-js": "~1.0.2"
337 | }
338 | },
339 | "node_modules/array-union": {
340 | "version": "2.1.0",
341 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
342 | "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
343 | "engines": {
344 | "node": ">=8"
345 | }
346 | },
347 | "node_modules/axios": {
348 | "version": "0.21.2",
349 | "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.2.tgz",
350 | "integrity": "sha512-87otirqUw3e8CzHTMO+/9kh/FSgXt/eVDvipijwDtEuwbkySWZ9SBm6VEubmJ/kLKEoLQV/POhxXFb66bfekfg==",
351 | "dependencies": {
352 | "follow-redirects": "^1.14.0"
353 | }
354 | },
355 | "node_modules/braces": {
356 | "version": "3.0.2",
357 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
358 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
359 | "dependencies": {
360 | "fill-range": "^7.0.1"
361 | },
362 | "engines": {
363 | "node": ">=8"
364 | }
365 | },
366 | "node_modules/cardinal": {
367 | "version": "2.1.1",
368 | "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz",
369 | "integrity": "sha1-fMEFXYItISlU0HsIXeolHMe8VQU=",
370 | "dependencies": {
371 | "ansicolors": "~0.3.2",
372 | "redeyed": "~2.1.0"
373 | },
374 | "bin": {
375 | "cdl": "bin/cdl.js"
376 | }
377 | },
378 | "node_modules/chalk": {
379 | "version": "4.1.2",
380 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
381 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
382 | "dependencies": {
383 | "ansi-styles": "^4.1.0",
384 | "supports-color": "^7.1.0"
385 | },
386 | "engines": {
387 | "node": ">=10"
388 | },
389 | "funding": {
390 | "url": "https://github.com/chalk/chalk?sponsor=1"
391 | }
392 | },
393 | "node_modules/chalk/node_modules/supports-color": {
394 | "version": "7.2.0",
395 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
396 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
397 | "dependencies": {
398 | "has-flag": "^4.0.0"
399 | },
400 | "engines": {
401 | "node": ">=8"
402 | }
403 | },
404 | "node_modules/clean-stack": {
405 | "version": "3.0.1",
406 | "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-3.0.1.tgz",
407 | "integrity": "sha512-lR9wNiMRcVQjSB3a7xXGLuz4cr4wJuuXlaAEbRutGowQTmlp7R72/DOgN21e8jdwblMWl9UOJMJXarX94pzKdg==",
408 | "dependencies": {
409 | "escape-string-regexp": "4.0.0"
410 | },
411 | "engines": {
412 | "node": ">=10"
413 | },
414 | "funding": {
415 | "url": "https://github.com/sponsors/sindresorhus"
416 | }
417 | },
418 | "node_modules/cli-progress": {
419 | "version": "3.9.0",
420 | "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.9.0.tgz",
421 | "integrity": "sha512-g7rLWfhAo/7pF+a/STFH/xPyosaL1zgADhI0OM83hl3c7S43iGvJWEAV2QuDOnQ8i6EMBj/u4+NTd0d5L+4JfA==",
422 | "dependencies": {
423 | "colors": "^1.1.2",
424 | "string-width": "^4.2.0"
425 | },
426 | "engines": {
427 | "node": ">=4"
428 | }
429 | },
430 | "node_modules/cli-ux": {
431 | "version": "5.6.3",
432 | "resolved": "https://registry.npmjs.org/cli-ux/-/cli-ux-5.6.3.tgz",
433 | "integrity": "sha512-/oDU4v8BiDjX2OKcSunGH0iGDiEtj2rZaGyqNuv9IT4CgcSMyVWAMfn0+rEHaOc4n9ka78B0wo1+N1QX89f7mw==",
434 | "dependencies": {
435 | "@oclif/command": "^1.6.0",
436 | "@oclif/errors": "^1.2.1",
437 | "@oclif/linewrap": "^1.0.0",
438 | "@oclif/screen": "^1.0.3",
439 | "ansi-escapes": "^4.3.0",
440 | "ansi-styles": "^4.2.0",
441 | "cardinal": "^2.1.1",
442 | "chalk": "^4.1.0",
443 | "clean-stack": "^3.0.0",
444 | "cli-progress": "^3.4.0",
445 | "extract-stack": "^2.0.0",
446 | "fs-extra": "^8.1",
447 | "hyperlinker": "^1.0.0",
448 | "indent-string": "^4.0.0",
449 | "is-wsl": "^2.2.0",
450 | "js-yaml": "^3.13.1",
451 | "lodash": "^4.17.11",
452 | "natural-orderby": "^2.0.1",
453 | "object-treeify": "^1.1.4",
454 | "password-prompt": "^1.1.2",
455 | "semver": "^7.3.2",
456 | "string-width": "^4.2.0",
457 | "strip-ansi": "^6.0.0",
458 | "supports-color": "^8.1.0",
459 | "supports-hyperlinks": "^2.1.0",
460 | "tslib": "^2.0.0"
461 | },
462 | "engines": {
463 | "node": ">=8.0.0"
464 | }
465 | },
466 | "node_modules/color-convert": {
467 | "version": "2.0.1",
468 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
469 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
470 | "dependencies": {
471 | "color-name": "~1.1.4"
472 | },
473 | "engines": {
474 | "node": ">=7.0.0"
475 | }
476 | },
477 | "node_modules/color-name": {
478 | "version": "1.1.4",
479 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
480 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
481 | },
482 | "node_modules/colors": {
483 | "version": "1.4.0",
484 | "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
485 | "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
486 | "engines": {
487 | "node": ">=0.1.90"
488 | }
489 | },
490 | "node_modules/cross-spawn": {
491 | "version": "6.0.5",
492 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
493 | "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
494 | "dependencies": {
495 | "nice-try": "^1.0.4",
496 | "path-key": "^2.0.1",
497 | "semver": "^5.5.0",
498 | "shebang-command": "^1.2.0",
499 | "which": "^1.2.9"
500 | },
501 | "engines": {
502 | "node": ">=4.8"
503 | }
504 | },
505 | "node_modules/cross-spawn/node_modules/semver": {
506 | "version": "5.7.1",
507 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
508 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
509 | "bin": {
510 | "semver": "bin/semver"
511 | }
512 | },
513 | "node_modules/debug": {
514 | "version": "4.3.2",
515 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
516 | "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
517 | "dependencies": {
518 | "ms": "2.1.2"
519 | },
520 | "engines": {
521 | "node": ">=6.0"
522 | },
523 | "peerDependenciesMeta": {
524 | "supports-color": {
525 | "optional": true
526 | }
527 | }
528 | },
529 | "node_modules/dir-glob": {
530 | "version": "3.0.1",
531 | "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
532 | "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
533 | "dependencies": {
534 | "path-type": "^4.0.0"
535 | },
536 | "engines": {
537 | "node": ">=8"
538 | }
539 | },
540 | "node_modules/emoji-regex": {
541 | "version": "8.0.0",
542 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
543 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
544 | },
545 | "node_modules/escape-string-regexp": {
546 | "version": "4.0.0",
547 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
548 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
549 | "engines": {
550 | "node": ">=10"
551 | },
552 | "funding": {
553 | "url": "https://github.com/sponsors/sindresorhus"
554 | }
555 | },
556 | "node_modules/esprima": {
557 | "version": "4.0.1",
558 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
559 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
560 | "bin": {
561 | "esparse": "bin/esparse.js",
562 | "esvalidate": "bin/esvalidate.js"
563 | },
564 | "engines": {
565 | "node": ">=4"
566 | }
567 | },
568 | "node_modules/extract-stack": {
569 | "version": "2.0.0",
570 | "resolved": "https://registry.npmjs.org/extract-stack/-/extract-stack-2.0.0.tgz",
571 | "integrity": "sha512-AEo4zm+TenK7zQorGK1f9mJ8L14hnTDi2ZQPR+Mub1NX8zimka1mXpV5LpH8x9HoUmFSHZCfLHqWvp0Y4FxxzQ==",
572 | "engines": {
573 | "node": ">=8"
574 | }
575 | },
576 | "node_modules/fast-glob": {
577 | "version": "3.2.7",
578 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz",
579 | "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==",
580 | "dependencies": {
581 | "@nodelib/fs.stat": "^2.0.2",
582 | "@nodelib/fs.walk": "^1.2.3",
583 | "glob-parent": "^5.1.2",
584 | "merge2": "^1.3.0",
585 | "micromatch": "^4.0.4"
586 | },
587 | "engines": {
588 | "node": ">=8"
589 | }
590 | },
591 | "node_modules/fastq": {
592 | "version": "1.11.1",
593 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.1.tgz",
594 | "integrity": "sha512-HOnr8Mc60eNYl1gzwp6r5RoUyAn5/glBolUzP/Ez6IFVPMPirxn/9phgL6zhOtaTy7ISwPvQ+wT+hfcRZh/bzw==",
595 | "dependencies": {
596 | "reusify": "^1.0.4"
597 | }
598 | },
599 | "node_modules/fill-range": {
600 | "version": "7.0.1",
601 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
602 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
603 | "dependencies": {
604 | "to-regex-range": "^5.0.1"
605 | },
606 | "engines": {
607 | "node": ">=8"
608 | }
609 | },
610 | "node_modules/follow-redirects": {
611 | "version": "1.14.8",
612 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz",
613 | "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==",
614 | "funding": [
615 | {
616 | "type": "individual",
617 | "url": "https://github.com/sponsors/RubenVerborgh"
618 | }
619 | ],
620 | "engines": {
621 | "node": ">=4.0"
622 | },
623 | "peerDependenciesMeta": {
624 | "debug": {
625 | "optional": true
626 | }
627 | }
628 | },
629 | "node_modules/fs-extra": {
630 | "version": "8.1.0",
631 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
632 | "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
633 | "dependencies": {
634 | "graceful-fs": "^4.2.0",
635 | "jsonfile": "^4.0.0",
636 | "universalify": "^0.1.0"
637 | },
638 | "engines": {
639 | "node": ">=6 <7 || >=8"
640 | }
641 | },
642 | "node_modules/glob-parent": {
643 | "version": "5.1.2",
644 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
645 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
646 | "dependencies": {
647 | "is-glob": "^4.0.1"
648 | },
649 | "engines": {
650 | "node": ">= 6"
651 | }
652 | },
653 | "node_modules/globby": {
654 | "version": "11.0.4",
655 | "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz",
656 | "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==",
657 | "dependencies": {
658 | "array-union": "^2.1.0",
659 | "dir-glob": "^3.0.1",
660 | "fast-glob": "^3.1.1",
661 | "ignore": "^5.1.4",
662 | "merge2": "^1.3.0",
663 | "slash": "^3.0.0"
664 | },
665 | "engines": {
666 | "node": ">=10"
667 | },
668 | "funding": {
669 | "url": "https://github.com/sponsors/sindresorhus"
670 | }
671 | },
672 | "node_modules/graceful-fs": {
673 | "version": "4.2.8",
674 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
675 | "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg=="
676 | },
677 | "node_modules/has-flag": {
678 | "version": "4.0.0",
679 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
680 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
681 | "engines": {
682 | "node": ">=8"
683 | }
684 | },
685 | "node_modules/hyperlinker": {
686 | "version": "1.0.0",
687 | "resolved": "https://registry.npmjs.org/hyperlinker/-/hyperlinker-1.0.0.tgz",
688 | "integrity": "sha512-Ty8UblRWFEcfSuIaajM34LdPXIhbs1ajEX/BBPv24J+enSVaEVY63xQ6lTO9VRYS5LAoghIG0IDJ+p+IPzKUQQ==",
689 | "engines": {
690 | "node": ">=4"
691 | }
692 | },
693 | "node_modules/ignore": {
694 | "version": "5.1.8",
695 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz",
696 | "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==",
697 | "engines": {
698 | "node": ">= 4"
699 | }
700 | },
701 | "node_modules/indent-string": {
702 | "version": "4.0.0",
703 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
704 | "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
705 | "engines": {
706 | "node": ">=8"
707 | }
708 | },
709 | "node_modules/is-docker": {
710 | "version": "2.2.1",
711 | "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
712 | "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
713 | "bin": {
714 | "is-docker": "cli.js"
715 | },
716 | "engines": {
717 | "node": ">=8"
718 | },
719 | "funding": {
720 | "url": "https://github.com/sponsors/sindresorhus"
721 | }
722 | },
723 | "node_modules/is-extglob": {
724 | "version": "2.1.1",
725 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
726 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
727 | "engines": {
728 | "node": ">=0.10.0"
729 | }
730 | },
731 | "node_modules/is-fullwidth-code-point": {
732 | "version": "3.0.0",
733 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
734 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
735 | "engines": {
736 | "node": ">=8"
737 | }
738 | },
739 | "node_modules/is-glob": {
740 | "version": "4.0.1",
741 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
742 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
743 | "dependencies": {
744 | "is-extglob": "^2.1.1"
745 | },
746 | "engines": {
747 | "node": ">=0.10.0"
748 | }
749 | },
750 | "node_modules/is-number": {
751 | "version": "7.0.0",
752 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
753 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
754 | "engines": {
755 | "node": ">=0.12.0"
756 | }
757 | },
758 | "node_modules/is-wsl": {
759 | "version": "2.2.0",
760 | "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
761 | "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
762 | "dependencies": {
763 | "is-docker": "^2.0.0"
764 | },
765 | "engines": {
766 | "node": ">=8"
767 | }
768 | },
769 | "node_modules/isexe": {
770 | "version": "2.0.0",
771 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
772 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
773 | },
774 | "node_modules/js-yaml": {
775 | "version": "3.14.1",
776 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
777 | "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
778 | "dependencies": {
779 | "argparse": "^1.0.7",
780 | "esprima": "^4.0.0"
781 | },
782 | "bin": {
783 | "js-yaml": "bin/js-yaml.js"
784 | }
785 | },
786 | "node_modules/jsonfile": {
787 | "version": "4.0.0",
788 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
789 | "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
790 | "optionalDependencies": {
791 | "graceful-fs": "^4.1.6"
792 | }
793 | },
794 | "node_modules/lodash": {
795 | "version": "4.17.21",
796 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
797 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
798 | },
799 | "node_modules/lodash._reinterpolate": {
800 | "version": "3.0.0",
801 | "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
802 | "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0="
803 | },
804 | "node_modules/lodash.template": {
805 | "version": "4.5.0",
806 | "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz",
807 | "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==",
808 | "dependencies": {
809 | "lodash._reinterpolate": "^3.0.0",
810 | "lodash.templatesettings": "^4.0.0"
811 | }
812 | },
813 | "node_modules/lodash.templatesettings": {
814 | "version": "4.2.0",
815 | "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz",
816 | "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==",
817 | "dependencies": {
818 | "lodash._reinterpolate": "^3.0.0"
819 | }
820 | },
821 | "node_modules/lru-cache": {
822 | "version": "6.0.0",
823 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
824 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
825 | "dependencies": {
826 | "yallist": "^4.0.0"
827 | },
828 | "engines": {
829 | "node": ">=10"
830 | }
831 | },
832 | "node_modules/merge2": {
833 | "version": "1.4.1",
834 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
835 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
836 | "engines": {
837 | "node": ">= 8"
838 | }
839 | },
840 | "node_modules/micromatch": {
841 | "version": "4.0.4",
842 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
843 | "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
844 | "dependencies": {
845 | "braces": "^3.0.1",
846 | "picomatch": "^2.2.3"
847 | },
848 | "engines": {
849 | "node": ">=8.6"
850 | }
851 | },
852 | "node_modules/ms": {
853 | "version": "2.1.2",
854 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
855 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
856 | },
857 | "node_modules/natural-orderby": {
858 | "version": "2.0.3",
859 | "resolved": "https://registry.npmjs.org/natural-orderby/-/natural-orderby-2.0.3.tgz",
860 | "integrity": "sha512-p7KTHxU0CUrcOXe62Zfrb5Z13nLvPhSWR/so3kFulUQU0sgUll2Z0LwpsLN351eOOD+hRGu/F1g+6xDfPeD++Q==",
861 | "engines": {
862 | "node": "*"
863 | }
864 | },
865 | "node_modules/nice-try": {
866 | "version": "1.0.5",
867 | "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
868 | "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
869 | },
870 | "node_modules/object-treeify": {
871 | "version": "1.1.33",
872 | "resolved": "https://registry.npmjs.org/object-treeify/-/object-treeify-1.1.33.tgz",
873 | "integrity": "sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A==",
874 | "engines": {
875 | "node": ">= 10"
876 | }
877 | },
878 | "node_modules/password-prompt": {
879 | "version": "1.1.2",
880 | "resolved": "https://registry.npmjs.org/password-prompt/-/password-prompt-1.1.2.tgz",
881 | "integrity": "sha512-bpuBhROdrhuN3E7G/koAju0WjVw9/uQOG5Co5mokNj0MiOSBVZS1JTwM4zl55hu0WFmIEFvO9cU9sJQiBIYeIA==",
882 | "dependencies": {
883 | "ansi-escapes": "^3.1.0",
884 | "cross-spawn": "^6.0.5"
885 | }
886 | },
887 | "node_modules/password-prompt/node_modules/ansi-escapes": {
888 | "version": "3.2.0",
889 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
890 | "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
891 | "engines": {
892 | "node": ">=4"
893 | }
894 | },
895 | "node_modules/path-key": {
896 | "version": "2.0.1",
897 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
898 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
899 | "engines": {
900 | "node": ">=4"
901 | }
902 | },
903 | "node_modules/path-type": {
904 | "version": "4.0.0",
905 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
906 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
907 | "engines": {
908 | "node": ">=8"
909 | }
910 | },
911 | "node_modules/picomatch": {
912 | "version": "2.3.0",
913 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
914 | "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
915 | "engines": {
916 | "node": ">=8.6"
917 | },
918 | "funding": {
919 | "url": "https://github.com/sponsors/jonschlinkert"
920 | }
921 | },
922 | "node_modules/queue-microtask": {
923 | "version": "1.2.3",
924 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
925 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
926 | "funding": [
927 | {
928 | "type": "github",
929 | "url": "https://github.com/sponsors/feross"
930 | },
931 | {
932 | "type": "patreon",
933 | "url": "https://www.patreon.com/feross"
934 | },
935 | {
936 | "type": "consulting",
937 | "url": "https://feross.org/support"
938 | }
939 | ]
940 | },
941 | "node_modules/redeyed": {
942 | "version": "2.1.1",
943 | "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz",
944 | "integrity": "sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs=",
945 | "dependencies": {
946 | "esprima": "~4.0.0"
947 | }
948 | },
949 | "node_modules/reusify": {
950 | "version": "1.0.4",
951 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
952 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
953 | "engines": {
954 | "iojs": ">=1.0.0",
955 | "node": ">=0.10.0"
956 | }
957 | },
958 | "node_modules/run-parallel": {
959 | "version": "1.2.0",
960 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
961 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
962 | "funding": [
963 | {
964 | "type": "github",
965 | "url": "https://github.com/sponsors/feross"
966 | },
967 | {
968 | "type": "patreon",
969 | "url": "https://www.patreon.com/feross"
970 | },
971 | {
972 | "type": "consulting",
973 | "url": "https://feross.org/support"
974 | }
975 | ],
976 | "dependencies": {
977 | "queue-microtask": "^1.2.2"
978 | }
979 | },
980 | "node_modules/semver": {
981 | "version": "7.3.5",
982 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
983 | "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
984 | "dependencies": {
985 | "lru-cache": "^6.0.0"
986 | },
987 | "bin": {
988 | "semver": "bin/semver.js"
989 | },
990 | "engines": {
991 | "node": ">=10"
992 | }
993 | },
994 | "node_modules/shebang-command": {
995 | "version": "1.2.0",
996 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
997 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
998 | "dependencies": {
999 | "shebang-regex": "^1.0.0"
1000 | },
1001 | "engines": {
1002 | "node": ">=0.10.0"
1003 | }
1004 | },
1005 | "node_modules/shebang-regex": {
1006 | "version": "1.0.0",
1007 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
1008 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
1009 | "engines": {
1010 | "node": ">=0.10.0"
1011 | }
1012 | },
1013 | "node_modules/slash": {
1014 | "version": "3.0.0",
1015 | "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
1016 | "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
1017 | "engines": {
1018 | "node": ">=8"
1019 | }
1020 | },
1021 | "node_modules/sprintf-js": {
1022 | "version": "1.0.3",
1023 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
1024 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
1025 | },
1026 | "node_modules/string-width": {
1027 | "version": "4.2.2",
1028 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
1029 | "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
1030 | "dependencies": {
1031 | "emoji-regex": "^8.0.0",
1032 | "is-fullwidth-code-point": "^3.0.0",
1033 | "strip-ansi": "^6.0.0"
1034 | },
1035 | "engines": {
1036 | "node": ">=8"
1037 | }
1038 | },
1039 | "node_modules/strip-ansi": {
1040 | "version": "6.0.0",
1041 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
1042 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
1043 | "dependencies": {
1044 | "ansi-regex": "^5.0.0"
1045 | },
1046 | "engines": {
1047 | "node": ">=8"
1048 | }
1049 | },
1050 | "node_modules/supports-color": {
1051 | "version": "8.1.1",
1052 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
1053 | "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
1054 | "dependencies": {
1055 | "has-flag": "^4.0.0"
1056 | },
1057 | "engines": {
1058 | "node": ">=10"
1059 | },
1060 | "funding": {
1061 | "url": "https://github.com/chalk/supports-color?sponsor=1"
1062 | }
1063 | },
1064 | "node_modules/supports-hyperlinks": {
1065 | "version": "2.2.0",
1066 | "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz",
1067 | "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==",
1068 | "dependencies": {
1069 | "has-flag": "^4.0.0",
1070 | "supports-color": "^7.0.0"
1071 | },
1072 | "engines": {
1073 | "node": ">=8"
1074 | }
1075 | },
1076 | "node_modules/supports-hyperlinks/node_modules/supports-color": {
1077 | "version": "7.2.0",
1078 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
1079 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
1080 | "dependencies": {
1081 | "has-flag": "^4.0.0"
1082 | },
1083 | "engines": {
1084 | "node": ">=8"
1085 | }
1086 | },
1087 | "node_modules/to-regex-range": {
1088 | "version": "5.0.1",
1089 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
1090 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
1091 | "dependencies": {
1092 | "is-number": "^7.0.0"
1093 | },
1094 | "engines": {
1095 | "node": ">=8.0"
1096 | }
1097 | },
1098 | "node_modules/tslib": {
1099 | "version": "2.3.1",
1100 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
1101 | "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
1102 | },
1103 | "node_modules/type-fest": {
1104 | "version": "0.21.3",
1105 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
1106 | "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
1107 | "engines": {
1108 | "node": ">=10"
1109 | },
1110 | "funding": {
1111 | "url": "https://github.com/sponsors/sindresorhus"
1112 | }
1113 | },
1114 | "node_modules/universalify": {
1115 | "version": "0.1.2",
1116 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
1117 | "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
1118 | "engines": {
1119 | "node": ">= 4.0.0"
1120 | }
1121 | },
1122 | "node_modules/which": {
1123 | "version": "1.3.1",
1124 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
1125 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
1126 | "dependencies": {
1127 | "isexe": "^2.0.0"
1128 | },
1129 | "bin": {
1130 | "which": "bin/which"
1131 | }
1132 | },
1133 | "node_modules/widest-line": {
1134 | "version": "3.1.0",
1135 | "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz",
1136 | "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==",
1137 | "dependencies": {
1138 | "string-width": "^4.0.0"
1139 | },
1140 | "engines": {
1141 | "node": ">=8"
1142 | }
1143 | },
1144 | "node_modules/wrap-ansi": {
1145 | "version": "7.0.0",
1146 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
1147 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
1148 | "dependencies": {
1149 | "ansi-styles": "^4.0.0",
1150 | "string-width": "^4.1.0",
1151 | "strip-ansi": "^6.0.0"
1152 | },
1153 | "engines": {
1154 | "node": ">=10"
1155 | },
1156 | "funding": {
1157 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
1158 | }
1159 | },
1160 | "node_modules/yallist": {
1161 | "version": "4.0.0",
1162 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
1163 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
1164 | }
1165 | },
1166 | "dependencies": {
1167 | "@nodelib/fs.scandir": {
1168 | "version": "2.1.5",
1169 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
1170 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
1171 | "requires": {
1172 | "@nodelib/fs.stat": "2.0.5",
1173 | "run-parallel": "^1.1.9"
1174 | }
1175 | },
1176 | "@nodelib/fs.stat": {
1177 | "version": "2.0.5",
1178 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
1179 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="
1180 | },
1181 | "@nodelib/fs.walk": {
1182 | "version": "1.2.8",
1183 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
1184 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
1185 | "requires": {
1186 | "@nodelib/fs.scandir": "2.1.5",
1187 | "fastq": "^1.6.0"
1188 | }
1189 | },
1190 | "@oclif/command": {
1191 | "version": "1.8.0",
1192 | "resolved": "https://registry.npmjs.org/@oclif/command/-/command-1.8.0.tgz",
1193 | "integrity": "sha512-5vwpq6kbvwkQwKqAoOU3L72GZ3Ta8RRrewKj9OJRolx28KLJJ8Dg9Rf7obRwt5jQA9bkYd8gqzMTrI7H3xLfaw==",
1194 | "requires": {
1195 | "@oclif/config": "^1.15.1",
1196 | "@oclif/errors": "^1.3.3",
1197 | "@oclif/parser": "^3.8.3",
1198 | "@oclif/plugin-help": "^3",
1199 | "debug": "^4.1.1",
1200 | "semver": "^7.3.2"
1201 | }
1202 | },
1203 | "@oclif/config": {
1204 | "version": "1.17.0",
1205 | "resolved": "https://registry.npmjs.org/@oclif/config/-/config-1.17.0.tgz",
1206 | "integrity": "sha512-Lmfuf6ubjQ4ifC/9bz1fSCHc6F6E653oyaRXxg+lgT4+bYf9bk+nqrUpAbrXyABkCqgIBiFr3J4zR/kiFdE1PA==",
1207 | "requires": {
1208 | "@oclif/errors": "^1.3.3",
1209 | "@oclif/parser": "^3.8.0",
1210 | "debug": "^4.1.1",
1211 | "globby": "^11.0.1",
1212 | "is-wsl": "^2.1.1",
1213 | "tslib": "^2.0.0"
1214 | }
1215 | },
1216 | "@oclif/errors": {
1217 | "version": "1.3.5",
1218 | "resolved": "https://registry.npmjs.org/@oclif/errors/-/errors-1.3.5.tgz",
1219 | "integrity": "sha512-OivucXPH/eLLlOT7FkCMoZXiaVYf8I/w1eTAM1+gKzfhALwWTusxEx7wBmW0uzvkSg/9ovWLycPaBgJbM3LOCQ==",
1220 | "requires": {
1221 | "clean-stack": "^3.0.0",
1222 | "fs-extra": "^8.1",
1223 | "indent-string": "^4.0.0",
1224 | "strip-ansi": "^6.0.0",
1225 | "wrap-ansi": "^7.0.0"
1226 | }
1227 | },
1228 | "@oclif/linewrap": {
1229 | "version": "1.0.0",
1230 | "resolved": "https://registry.npmjs.org/@oclif/linewrap/-/linewrap-1.0.0.tgz",
1231 | "integrity": "sha512-Ups2dShK52xXa8w6iBWLgcjPJWjais6KPJQq3gQ/88AY6BXoTX+MIGFPrWQO1KLMiQfoTpcLnUwloN4brrVUHw=="
1232 | },
1233 | "@oclif/parser": {
1234 | "version": "3.8.5",
1235 | "resolved": "https://registry.npmjs.org/@oclif/parser/-/parser-3.8.5.tgz",
1236 | "integrity": "sha512-yojzeEfmSxjjkAvMRj0KzspXlMjCfBzNRPkWw8ZwOSoNWoJn+OCS/m/S+yfV6BvAM4u2lTzX9Y5rCbrFIgkJLg==",
1237 | "requires": {
1238 | "@oclif/errors": "^1.2.2",
1239 | "@oclif/linewrap": "^1.0.0",
1240 | "chalk": "^2.4.2",
1241 | "tslib": "^1.9.3"
1242 | },
1243 | "dependencies": {
1244 | "ansi-styles": {
1245 | "version": "3.2.1",
1246 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
1247 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
1248 | "requires": {
1249 | "color-convert": "^1.9.0"
1250 | }
1251 | },
1252 | "chalk": {
1253 | "version": "2.4.2",
1254 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
1255 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
1256 | "requires": {
1257 | "ansi-styles": "^3.2.1",
1258 | "escape-string-regexp": "^1.0.5",
1259 | "supports-color": "^5.3.0"
1260 | }
1261 | },
1262 | "color-convert": {
1263 | "version": "1.9.3",
1264 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
1265 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
1266 | "requires": {
1267 | "color-name": "1.1.3"
1268 | }
1269 | },
1270 | "color-name": {
1271 | "version": "1.1.3",
1272 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
1273 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
1274 | },
1275 | "escape-string-regexp": {
1276 | "version": "1.0.5",
1277 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
1278 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
1279 | },
1280 | "has-flag": {
1281 | "version": "3.0.0",
1282 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
1283 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
1284 | },
1285 | "supports-color": {
1286 | "version": "5.5.0",
1287 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1288 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1289 | "requires": {
1290 | "has-flag": "^3.0.0"
1291 | }
1292 | },
1293 | "tslib": {
1294 | "version": "1.14.1",
1295 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
1296 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
1297 | }
1298 | }
1299 | },
1300 | "@oclif/plugin-help": {
1301 | "version": "3.2.3",
1302 | "resolved": "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-3.2.3.tgz",
1303 | "integrity": "sha512-l2Pd0lbOMq4u/7xsl9hqISFqyR9gWEz/8+05xmrXFr67jXyS6EUCQB+mFBa0wepltrmJu0sAFg9AvA2mLaMMqQ==",
1304 | "requires": {
1305 | "@oclif/command": "^1.5.20",
1306 | "@oclif/config": "^1.15.1",
1307 | "@oclif/errors": "^1.2.2",
1308 | "chalk": "^4.1.0",
1309 | "indent-string": "^4.0.0",
1310 | "lodash.template": "^4.4.0",
1311 | "string-width": "^4.2.0",
1312 | "strip-ansi": "^6.0.0",
1313 | "widest-line": "^3.1.0",
1314 | "wrap-ansi": "^4.0.0"
1315 | },
1316 | "dependencies": {
1317 | "ansi-regex": {
1318 | "version": "3.0.1",
1319 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz",
1320 | "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw=="
1321 | },
1322 | "ansi-styles": {
1323 | "version": "3.2.1",
1324 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
1325 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
1326 | "requires": {
1327 | "color-convert": "^1.9.0"
1328 | }
1329 | },
1330 | "color-convert": {
1331 | "version": "1.9.3",
1332 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
1333 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
1334 | "requires": {
1335 | "color-name": "1.1.3"
1336 | }
1337 | },
1338 | "color-name": {
1339 | "version": "1.1.3",
1340 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
1341 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
1342 | },
1343 | "is-fullwidth-code-point": {
1344 | "version": "2.0.0",
1345 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
1346 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
1347 | },
1348 | "wrap-ansi": {
1349 | "version": "4.0.0",
1350 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-4.0.0.tgz",
1351 | "integrity": "sha512-uMTsj9rDb0/7kk1PbcbCcwvHUxp60fGDB/NNXpVa0Q+ic/e7y5+BwTxKfQ33VYgDppSwi/FBzpetYzo8s6tfbg==",
1352 | "requires": {
1353 | "ansi-styles": "^3.2.0",
1354 | "string-width": "^2.1.1",
1355 | "strip-ansi": "^4.0.0"
1356 | },
1357 | "dependencies": {
1358 | "string-width": {
1359 | "version": "2.1.1",
1360 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
1361 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
1362 | "requires": {
1363 | "is-fullwidth-code-point": "^2.0.0",
1364 | "strip-ansi": "^4.0.0"
1365 | }
1366 | },
1367 | "strip-ansi": {
1368 | "version": "4.0.0",
1369 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
1370 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
1371 | "requires": {
1372 | "ansi-regex": "^3.0.0"
1373 | }
1374 | }
1375 | }
1376 | }
1377 | }
1378 | },
1379 | "@oclif/screen": {
1380 | "version": "1.0.4",
1381 | "resolved": "https://registry.npmjs.org/@oclif/screen/-/screen-1.0.4.tgz",
1382 | "integrity": "sha512-60CHpq+eqnTxLZQ4PGHYNwUX572hgpMHGPtTWMjdTMsAvlm69lZV/4ly6O3sAYkomo4NggGcomrDpBe34rxUqw=="
1383 | },
1384 | "ansi-escapes": {
1385 | "version": "4.3.2",
1386 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
1387 | "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
1388 | "requires": {
1389 | "type-fest": "^0.21.3"
1390 | }
1391 | },
1392 | "ansi-regex": {
1393 | "version": "5.0.1",
1394 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
1395 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
1396 | },
1397 | "ansi-styles": {
1398 | "version": "4.3.0",
1399 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
1400 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
1401 | "requires": {
1402 | "color-convert": "^2.0.1"
1403 | }
1404 | },
1405 | "ansicolors": {
1406 | "version": "0.3.2",
1407 | "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz",
1408 | "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk="
1409 | },
1410 | "argparse": {
1411 | "version": "1.0.10",
1412 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
1413 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
1414 | "requires": {
1415 | "sprintf-js": "~1.0.2"
1416 | }
1417 | },
1418 | "array-union": {
1419 | "version": "2.1.0",
1420 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
1421 | "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="
1422 | },
1423 | "axios": {
1424 | "version": "0.21.2",
1425 | "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.2.tgz",
1426 | "integrity": "sha512-87otirqUw3e8CzHTMO+/9kh/FSgXt/eVDvipijwDtEuwbkySWZ9SBm6VEubmJ/kLKEoLQV/POhxXFb66bfekfg==",
1427 | "requires": {
1428 | "follow-redirects": "^1.14.0"
1429 | }
1430 | },
1431 | "braces": {
1432 | "version": "3.0.2",
1433 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
1434 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
1435 | "requires": {
1436 | "fill-range": "^7.0.1"
1437 | }
1438 | },
1439 | "cardinal": {
1440 | "version": "2.1.1",
1441 | "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz",
1442 | "integrity": "sha1-fMEFXYItISlU0HsIXeolHMe8VQU=",
1443 | "requires": {
1444 | "ansicolors": "~0.3.2",
1445 | "redeyed": "~2.1.0"
1446 | }
1447 | },
1448 | "chalk": {
1449 | "version": "4.1.2",
1450 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
1451 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
1452 | "requires": {
1453 | "ansi-styles": "^4.1.0",
1454 | "supports-color": "^7.1.0"
1455 | },
1456 | "dependencies": {
1457 | "supports-color": {
1458 | "version": "7.2.0",
1459 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
1460 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
1461 | "requires": {
1462 | "has-flag": "^4.0.0"
1463 | }
1464 | }
1465 | }
1466 | },
1467 | "clean-stack": {
1468 | "version": "3.0.1",
1469 | "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-3.0.1.tgz",
1470 | "integrity": "sha512-lR9wNiMRcVQjSB3a7xXGLuz4cr4wJuuXlaAEbRutGowQTmlp7R72/DOgN21e8jdwblMWl9UOJMJXarX94pzKdg==",
1471 | "requires": {
1472 | "escape-string-regexp": "4.0.0"
1473 | }
1474 | },
1475 | "cli-progress": {
1476 | "version": "3.9.0",
1477 | "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.9.0.tgz",
1478 | "integrity": "sha512-g7rLWfhAo/7pF+a/STFH/xPyosaL1zgADhI0OM83hl3c7S43iGvJWEAV2QuDOnQ8i6EMBj/u4+NTd0d5L+4JfA==",
1479 | "requires": {
1480 | "colors": "^1.1.2",
1481 | "string-width": "^4.2.0"
1482 | }
1483 | },
1484 | "cli-ux": {
1485 | "version": "5.6.3",
1486 | "resolved": "https://registry.npmjs.org/cli-ux/-/cli-ux-5.6.3.tgz",
1487 | "integrity": "sha512-/oDU4v8BiDjX2OKcSunGH0iGDiEtj2rZaGyqNuv9IT4CgcSMyVWAMfn0+rEHaOc4n9ka78B0wo1+N1QX89f7mw==",
1488 | "requires": {
1489 | "@oclif/command": "^1.6.0",
1490 | "@oclif/errors": "^1.2.1",
1491 | "@oclif/linewrap": "^1.0.0",
1492 | "@oclif/screen": "^1.0.3",
1493 | "ansi-escapes": "^4.3.0",
1494 | "ansi-styles": "^4.2.0",
1495 | "cardinal": "^2.1.1",
1496 | "chalk": "^4.1.0",
1497 | "clean-stack": "^3.0.0",
1498 | "cli-progress": "^3.4.0",
1499 | "extract-stack": "^2.0.0",
1500 | "fs-extra": "^8.1",
1501 | "hyperlinker": "^1.0.0",
1502 | "indent-string": "^4.0.0",
1503 | "is-wsl": "^2.2.0",
1504 | "js-yaml": "^3.13.1",
1505 | "lodash": "^4.17.11",
1506 | "natural-orderby": "^2.0.1",
1507 | "object-treeify": "^1.1.4",
1508 | "password-prompt": "^1.1.2",
1509 | "semver": "^7.3.2",
1510 | "string-width": "^4.2.0",
1511 | "strip-ansi": "^6.0.0",
1512 | "supports-color": "^8.1.0",
1513 | "supports-hyperlinks": "^2.1.0",
1514 | "tslib": "^2.0.0"
1515 | }
1516 | },
1517 | "color-convert": {
1518 | "version": "2.0.1",
1519 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
1520 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
1521 | "requires": {
1522 | "color-name": "~1.1.4"
1523 | }
1524 | },
1525 | "color-name": {
1526 | "version": "1.1.4",
1527 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
1528 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
1529 | },
1530 | "colors": {
1531 | "version": "1.4.0",
1532 | "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
1533 | "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA=="
1534 | },
1535 | "cross-spawn": {
1536 | "version": "6.0.5",
1537 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
1538 | "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
1539 | "requires": {
1540 | "nice-try": "^1.0.4",
1541 | "path-key": "^2.0.1",
1542 | "semver": "^5.5.0",
1543 | "shebang-command": "^1.2.0",
1544 | "which": "^1.2.9"
1545 | },
1546 | "dependencies": {
1547 | "semver": {
1548 | "version": "5.7.1",
1549 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
1550 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
1551 | }
1552 | }
1553 | },
1554 | "debug": {
1555 | "version": "4.3.2",
1556 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
1557 | "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
1558 | "requires": {
1559 | "ms": "2.1.2"
1560 | }
1561 | },
1562 | "dir-glob": {
1563 | "version": "3.0.1",
1564 | "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
1565 | "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
1566 | "requires": {
1567 | "path-type": "^4.0.0"
1568 | }
1569 | },
1570 | "emoji-regex": {
1571 | "version": "8.0.0",
1572 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
1573 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
1574 | },
1575 | "escape-string-regexp": {
1576 | "version": "4.0.0",
1577 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
1578 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
1579 | },
1580 | "esprima": {
1581 | "version": "4.0.1",
1582 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
1583 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
1584 | },
1585 | "extract-stack": {
1586 | "version": "2.0.0",
1587 | "resolved": "https://registry.npmjs.org/extract-stack/-/extract-stack-2.0.0.tgz",
1588 | "integrity": "sha512-AEo4zm+TenK7zQorGK1f9mJ8L14hnTDi2ZQPR+Mub1NX8zimka1mXpV5LpH8x9HoUmFSHZCfLHqWvp0Y4FxxzQ=="
1589 | },
1590 | "fast-glob": {
1591 | "version": "3.2.7",
1592 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz",
1593 | "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==",
1594 | "requires": {
1595 | "@nodelib/fs.stat": "^2.0.2",
1596 | "@nodelib/fs.walk": "^1.2.3",
1597 | "glob-parent": "^5.1.2",
1598 | "merge2": "^1.3.0",
1599 | "micromatch": "^4.0.4"
1600 | }
1601 | },
1602 | "fastq": {
1603 | "version": "1.11.1",
1604 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.1.tgz",
1605 | "integrity": "sha512-HOnr8Mc60eNYl1gzwp6r5RoUyAn5/glBolUzP/Ez6IFVPMPirxn/9phgL6zhOtaTy7ISwPvQ+wT+hfcRZh/bzw==",
1606 | "requires": {
1607 | "reusify": "^1.0.4"
1608 | }
1609 | },
1610 | "fill-range": {
1611 | "version": "7.0.1",
1612 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
1613 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
1614 | "requires": {
1615 | "to-regex-range": "^5.0.1"
1616 | }
1617 | },
1618 | "follow-redirects": {
1619 | "version": "1.14.8",
1620 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz",
1621 | "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA=="
1622 | },
1623 | "fs-extra": {
1624 | "version": "8.1.0",
1625 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
1626 | "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
1627 | "requires": {
1628 | "graceful-fs": "^4.2.0",
1629 | "jsonfile": "^4.0.0",
1630 | "universalify": "^0.1.0"
1631 | }
1632 | },
1633 | "glob-parent": {
1634 | "version": "5.1.2",
1635 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
1636 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
1637 | "requires": {
1638 | "is-glob": "^4.0.1"
1639 | }
1640 | },
1641 | "globby": {
1642 | "version": "11.0.4",
1643 | "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz",
1644 | "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==",
1645 | "requires": {
1646 | "array-union": "^2.1.0",
1647 | "dir-glob": "^3.0.1",
1648 | "fast-glob": "^3.1.1",
1649 | "ignore": "^5.1.4",
1650 | "merge2": "^1.3.0",
1651 | "slash": "^3.0.0"
1652 | }
1653 | },
1654 | "graceful-fs": {
1655 | "version": "4.2.8",
1656 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
1657 | "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg=="
1658 | },
1659 | "has-flag": {
1660 | "version": "4.0.0",
1661 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
1662 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
1663 | },
1664 | "hyperlinker": {
1665 | "version": "1.0.0",
1666 | "resolved": "https://registry.npmjs.org/hyperlinker/-/hyperlinker-1.0.0.tgz",
1667 | "integrity": "sha512-Ty8UblRWFEcfSuIaajM34LdPXIhbs1ajEX/BBPv24J+enSVaEVY63xQ6lTO9VRYS5LAoghIG0IDJ+p+IPzKUQQ=="
1668 | },
1669 | "ignore": {
1670 | "version": "5.1.8",
1671 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz",
1672 | "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw=="
1673 | },
1674 | "indent-string": {
1675 | "version": "4.0.0",
1676 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
1677 | "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg=="
1678 | },
1679 | "is-docker": {
1680 | "version": "2.2.1",
1681 | "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
1682 | "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ=="
1683 | },
1684 | "is-extglob": {
1685 | "version": "2.1.1",
1686 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
1687 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
1688 | },
1689 | "is-fullwidth-code-point": {
1690 | "version": "3.0.0",
1691 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
1692 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
1693 | },
1694 | "is-glob": {
1695 | "version": "4.0.1",
1696 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
1697 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
1698 | "requires": {
1699 | "is-extglob": "^2.1.1"
1700 | }
1701 | },
1702 | "is-number": {
1703 | "version": "7.0.0",
1704 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
1705 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
1706 | },
1707 | "is-wsl": {
1708 | "version": "2.2.0",
1709 | "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
1710 | "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
1711 | "requires": {
1712 | "is-docker": "^2.0.0"
1713 | }
1714 | },
1715 | "isexe": {
1716 | "version": "2.0.0",
1717 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1718 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
1719 | },
1720 | "js-yaml": {
1721 | "version": "3.14.1",
1722 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
1723 | "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
1724 | "requires": {
1725 | "argparse": "^1.0.7",
1726 | "esprima": "^4.0.0"
1727 | }
1728 | },
1729 | "jsonfile": {
1730 | "version": "4.0.0",
1731 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
1732 | "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
1733 | "requires": {
1734 | "graceful-fs": "^4.1.6"
1735 | }
1736 | },
1737 | "lodash": {
1738 | "version": "4.17.21",
1739 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
1740 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
1741 | },
1742 | "lodash._reinterpolate": {
1743 | "version": "3.0.0",
1744 | "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
1745 | "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0="
1746 | },
1747 | "lodash.template": {
1748 | "version": "4.5.0",
1749 | "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz",
1750 | "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==",
1751 | "requires": {
1752 | "lodash._reinterpolate": "^3.0.0",
1753 | "lodash.templatesettings": "^4.0.0"
1754 | }
1755 | },
1756 | "lodash.templatesettings": {
1757 | "version": "4.2.0",
1758 | "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz",
1759 | "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==",
1760 | "requires": {
1761 | "lodash._reinterpolate": "^3.0.0"
1762 | }
1763 | },
1764 | "lru-cache": {
1765 | "version": "6.0.0",
1766 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
1767 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
1768 | "requires": {
1769 | "yallist": "^4.0.0"
1770 | }
1771 | },
1772 | "merge2": {
1773 | "version": "1.4.1",
1774 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
1775 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="
1776 | },
1777 | "micromatch": {
1778 | "version": "4.0.4",
1779 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
1780 | "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
1781 | "requires": {
1782 | "braces": "^3.0.1",
1783 | "picomatch": "^2.2.3"
1784 | }
1785 | },
1786 | "ms": {
1787 | "version": "2.1.2",
1788 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1789 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
1790 | },
1791 | "natural-orderby": {
1792 | "version": "2.0.3",
1793 | "resolved": "https://registry.npmjs.org/natural-orderby/-/natural-orderby-2.0.3.tgz",
1794 | "integrity": "sha512-p7KTHxU0CUrcOXe62Zfrb5Z13nLvPhSWR/so3kFulUQU0sgUll2Z0LwpsLN351eOOD+hRGu/F1g+6xDfPeD++Q=="
1795 | },
1796 | "nice-try": {
1797 | "version": "1.0.5",
1798 | "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
1799 | "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
1800 | },
1801 | "object-treeify": {
1802 | "version": "1.1.33",
1803 | "resolved": "https://registry.npmjs.org/object-treeify/-/object-treeify-1.1.33.tgz",
1804 | "integrity": "sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A=="
1805 | },
1806 | "password-prompt": {
1807 | "version": "1.1.2",
1808 | "resolved": "https://registry.npmjs.org/password-prompt/-/password-prompt-1.1.2.tgz",
1809 | "integrity": "sha512-bpuBhROdrhuN3E7G/koAju0WjVw9/uQOG5Co5mokNj0MiOSBVZS1JTwM4zl55hu0WFmIEFvO9cU9sJQiBIYeIA==",
1810 | "requires": {
1811 | "ansi-escapes": "^3.1.0",
1812 | "cross-spawn": "^6.0.5"
1813 | },
1814 | "dependencies": {
1815 | "ansi-escapes": {
1816 | "version": "3.2.0",
1817 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
1818 | "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ=="
1819 | }
1820 | }
1821 | },
1822 | "path-key": {
1823 | "version": "2.0.1",
1824 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
1825 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A="
1826 | },
1827 | "path-type": {
1828 | "version": "4.0.0",
1829 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
1830 | "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="
1831 | },
1832 | "picomatch": {
1833 | "version": "2.3.0",
1834 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
1835 | "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw=="
1836 | },
1837 | "queue-microtask": {
1838 | "version": "1.2.3",
1839 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
1840 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
1841 | },
1842 | "redeyed": {
1843 | "version": "2.1.1",
1844 | "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz",
1845 | "integrity": "sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs=",
1846 | "requires": {
1847 | "esprima": "~4.0.0"
1848 | }
1849 | },
1850 | "reusify": {
1851 | "version": "1.0.4",
1852 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
1853 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
1854 | },
1855 | "run-parallel": {
1856 | "version": "1.2.0",
1857 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
1858 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
1859 | "requires": {
1860 | "queue-microtask": "^1.2.2"
1861 | }
1862 | },
1863 | "semver": {
1864 | "version": "7.3.5",
1865 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
1866 | "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
1867 | "requires": {
1868 | "lru-cache": "^6.0.0"
1869 | }
1870 | },
1871 | "shebang-command": {
1872 | "version": "1.2.0",
1873 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
1874 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
1875 | "requires": {
1876 | "shebang-regex": "^1.0.0"
1877 | }
1878 | },
1879 | "shebang-regex": {
1880 | "version": "1.0.0",
1881 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
1882 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
1883 | },
1884 | "slash": {
1885 | "version": "3.0.0",
1886 | "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
1887 | "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
1888 | },
1889 | "sprintf-js": {
1890 | "version": "1.0.3",
1891 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
1892 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
1893 | },
1894 | "string-width": {
1895 | "version": "4.2.2",
1896 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
1897 | "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
1898 | "requires": {
1899 | "emoji-regex": "^8.0.0",
1900 | "is-fullwidth-code-point": "^3.0.0",
1901 | "strip-ansi": "^6.0.0"
1902 | }
1903 | },
1904 | "strip-ansi": {
1905 | "version": "6.0.0",
1906 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
1907 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
1908 | "requires": {
1909 | "ansi-regex": "^5.0.0"
1910 | }
1911 | },
1912 | "supports-color": {
1913 | "version": "8.1.1",
1914 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
1915 | "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
1916 | "requires": {
1917 | "has-flag": "^4.0.0"
1918 | }
1919 | },
1920 | "supports-hyperlinks": {
1921 | "version": "2.2.0",
1922 | "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz",
1923 | "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==",
1924 | "requires": {
1925 | "has-flag": "^4.0.0",
1926 | "supports-color": "^7.0.0"
1927 | },
1928 | "dependencies": {
1929 | "supports-color": {
1930 | "version": "7.2.0",
1931 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
1932 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
1933 | "requires": {
1934 | "has-flag": "^4.0.0"
1935 | }
1936 | }
1937 | }
1938 | },
1939 | "to-regex-range": {
1940 | "version": "5.0.1",
1941 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
1942 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
1943 | "requires": {
1944 | "is-number": "^7.0.0"
1945 | }
1946 | },
1947 | "tslib": {
1948 | "version": "2.3.1",
1949 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
1950 | "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
1951 | },
1952 | "type-fest": {
1953 | "version": "0.21.3",
1954 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
1955 | "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w=="
1956 | },
1957 | "universalify": {
1958 | "version": "0.1.2",
1959 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
1960 | "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
1961 | },
1962 | "which": {
1963 | "version": "1.3.1",
1964 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
1965 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
1966 | "requires": {
1967 | "isexe": "^2.0.0"
1968 | }
1969 | },
1970 | "widest-line": {
1971 | "version": "3.1.0",
1972 | "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz",
1973 | "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==",
1974 | "requires": {
1975 | "string-width": "^4.0.0"
1976 | }
1977 | },
1978 | "wrap-ansi": {
1979 | "version": "7.0.0",
1980 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
1981 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
1982 | "requires": {
1983 | "ansi-styles": "^4.0.0",
1984 | "string-width": "^4.1.0",
1985 | "strip-ansi": "^6.0.0"
1986 | }
1987 | },
1988 | "yallist": {
1989 | "version": "4.0.0",
1990 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
1991 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
1992 | }
1993 | }
1994 | }
1995 |
--------------------------------------------------------------------------------
/nodeJS/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "voiceflow-api-nodejs-example",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "start": "node index.js"
8 | },
9 | "author": "",
10 | "license": "ISC",
11 | "dependencies": {
12 | "axios": "^0.21.2",
13 | "cli-ux": "^5.6.3"
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/python/README.md:
--------------------------------------------------------------------------------
1 | # Voiceflow API Python Example
2 |
3 | Set up your Voiceflow project with Python in a matter of minutes. This example can be adapted to run as a server with Django or Flask.
4 |
5 | This example enables you to chat with your project on the terminal.
6 |
7 | ## Documentation
8 |
9 | For additional information about the Voiceflow API, visit the [documentation](https://www.voiceflow.com/api/dialog-manager).
10 |
11 | ## Setup
12 |
13 | 1. If you do not have python, install Python from [python.org](https://www.python.org/downloads), or follow an equivalent guide.
14 | 2. Replace `'YOUR_API_KEY_HERE'` in `index.py` with your Dialog Manager API Key. You can find it under the integrations tab:
15 |
16 |
17 |
18 | 3. run `python index.py` to start your chat!
19 |
20 | (If you have both Python 2 and Python 3 on your computer, you might likely need to run `python3 index.py`).
21 |
22 | ## Example
23 |
24 | What it might look like in action:
25 |
26 | ```
27 | ➜ python git:(master) ✗ python index.py
28 | > What is your name?
29 | Tyler
30 | what can I do for you?
31 | > Say something
32 | send email
33 | who is the recipient?
34 | > Say something
35 | tyler@voiceflow.com
36 | what is the title of your email?
37 | > Say something
38 | hello world
39 | sending the email for tyler@voiceflow.com called hello world , is that correct?
40 | > Say something
41 | yes
42 | successfully sent the email for tyler@voiceflow.com called hello world
43 | The end! Start me again with `python index.py` or `python3 index.py`
44 | ```
45 |
--------------------------------------------------------------------------------
/python/index.py:
--------------------------------------------------------------------------------
1 | # meant for Python 3, will not work with Python 2
2 | import requests # pip install requests
3 |
4 | api_key = 'YOUR_API_KEY_HERE' # it should look like this: VF.DM.XXXXXXX.XXXXXX... keep this a secret!
5 |
6 | # user_id defines who is having the conversation, e.g. steve, john.doe@gmail.com, username_464
7 | def interact(user_id, request):
8 | response = requests.post(
9 | f'https://general-runtime.voiceflow.com/state/user/{user_id}/interact',
10 | json={ 'request': request },
11 | headers={ 'Authorization': api_key },
12 | )
13 |
14 | for trace in response.json():
15 | if trace['type'] == 'speak' or trace['type'] == 'text':
16 | print(trace['payload']['message'])
17 | elif trace['type'] == 'end':
18 | # an end trace means the the voiceflow dialog has ended
19 | return False
20 | return True
21 |
22 | name = input('> What is your name?\n')
23 | isRunning = interact(name, { 'type': 'launch' })
24 |
25 | while (isRunning):
26 | nextInput = input('> Say something\n')
27 | # send a simple text type request with the user input
28 | isRunning = interact(name, { 'type': 'text', 'payload': nextInput })
29 |
30 | input('The end! Start me again with `python index.py` or `python3 index.py`')
--------------------------------------------------------------------------------
/react/App.js:
--------------------------------------------------------------------------------
1 | import './App.css';
2 | import React, {useState} from "react";
3 |
4 | const API_KEY = 'YOUR_API_KEY_HERE'; // change this to YOUR API key, it should look like this: VF.DM.XXXXXXX.XXXXXX... keep this a secret!
5 |
6 | const RUNTIME_API_URL = 'https://general-runtime.voiceflow.com/' // change this to whatever your API URL is
7 |
8 | const App = props => {
9 |
10 | const [user, setUser] = useState("");
11 | const [message, setMsg] = useState("");
12 | const [resArr, updateArr] = useState([]);
13 |
14 | const handleClick = async() => {
15 | let data = await fetch(RUNTIME_API_URL, {
16 | headers: { Authorization: apiKey, 'Content-Type': 'application/json' },
17 | method: "POST",
18 | body: JSON.stringify({
19 | "request": {
20 | "type": "text",
21 | "payload": message
22 | }
23 | })
24 | })
25 | let postRes = await data.json();
26 | console.log(postRes);
27 | for(let i=0; i < postRes.length; i++){
28 | if(postRes[i].type === "text"){
29 | updateArr(arr => [...arr, message + ">" + postRes[i].payload.message]);
30 | }
31 | }
32 | }
33 |
34 |
35 | const handleChangeUser = (event) => setUser(event.target.value);
36 |
37 | const handleChange = (event) => setMsg(event.target.value);
38 |
39 | return (
40 |
41 |
42 |
45 |
49 |
{resArr.map(e =>
50 |
{e}
51 | )}
52 |
53 |
{'>'} {message}
54 |
55 | );
56 | };
57 |
58 | export default App;
59 |
--------------------------------------------------------------------------------
/react/README.md:
--------------------------------------------------------------------------------
1 | # Voiceflow React API Example
2 |
3 | This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
4 |
5 | ### Setup
6 |
7 | 1. If you do not have node, install _Node.js_ and _npm_ from [nodejs.org](https://nodejs.org/), or follow an equivalent guide.
8 | 1. Run `npm install`
9 | 1. Run `npx create-react-app my-app` to get started
10 | 1. Do `cd my-app`
11 | 1. Replace `'YOUR_API_KEY_HERE'` in `App.js` with your API Key
12 | You can find them under the integrations tab:
13 |
14 | 1. Run `npm start` to start your chat!
15 |
16 | ### Example
17 | ```
18 | /> Hello
19 |
20 | What can I do for you? > Send an email
21 |
22 | Who is the recipient? > Tyler@Voiceflow.com
23 |
24 | What is the title of your email? > Hello Tyler
25 |
26 | Sending the email to Tyler@Voiceflow.com called "Hello Tyler", is that correct? > yes
27 |
28 | Successfully sent the email to Tyler@Voiceflow.com called "Hello Tyler"
29 | ```
30 |
--------------------------------------------------------------------------------
/renovate.json:
--------------------------------------------------------------------------------
1 | { "enabled": false }
2 |
--------------------------------------------------------------------------------
/rust/.gitignore:
--------------------------------------------------------------------------------
1 | # Generated by Cargo
2 | # will have compiled files and executables
3 | debug/
4 | target/
5 |
6 | # These are backup files generated by rustfmt
7 | **/*.rs.bk
8 |
--------------------------------------------------------------------------------
/rust/Cargo.lock:
--------------------------------------------------------------------------------
1 | # This file is automatically @generated by Cargo.
2 | # It is not intended for manual editing.
3 | version = 3
4 |
5 | [[package]]
6 | name = "autocfg"
7 | version = "1.0.1"
8 | source = "registry+https://github.com/rust-lang/crates.io-index"
9 | checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
10 |
11 | [[package]]
12 | name = "base64"
13 | version = "0.13.0"
14 | source = "registry+https://github.com/rust-lang/crates.io-index"
15 | checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
16 |
17 | [[package]]
18 | name = "bitflags"
19 | version = "1.3.2"
20 | source = "registry+https://github.com/rust-lang/crates.io-index"
21 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
22 |
23 | [[package]]
24 | name = "bumpalo"
25 | version = "3.8.0"
26 | source = "registry+https://github.com/rust-lang/crates.io-index"
27 | checksum = "8f1e260c3a9040a7c19a12468758f4c16f31a81a1fe087482be9570ec864bb6c"
28 |
29 | [[package]]
30 | name = "bytes"
31 | version = "1.1.0"
32 | source = "registry+https://github.com/rust-lang/crates.io-index"
33 | checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8"
34 |
35 | [[package]]
36 | name = "cc"
37 | version = "1.0.72"
38 | source = "registry+https://github.com/rust-lang/crates.io-index"
39 | checksum = "22a9137b95ea06864e018375b72adfb7db6e6f68cfc8df5a04d00288050485ee"
40 |
41 | [[package]]
42 | name = "cfg-if"
43 | version = "0.1.10"
44 | source = "registry+https://github.com/rust-lang/crates.io-index"
45 | checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
46 |
47 | [[package]]
48 | name = "cfg-if"
49 | version = "1.0.0"
50 | source = "registry+https://github.com/rust-lang/crates.io-index"
51 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
52 |
53 | [[package]]
54 | name = "core-foundation"
55 | version = "0.9.2"
56 | source = "registry+https://github.com/rust-lang/crates.io-index"
57 | checksum = "6888e10551bb93e424d8df1d07f1a8b4fceb0001a3a4b048bfc47554946f47b3"
58 | dependencies = [
59 | "core-foundation-sys",
60 | "libc",
61 | ]
62 |
63 | [[package]]
64 | name = "core-foundation-sys"
65 | version = "0.8.3"
66 | source = "registry+https://github.com/rust-lang/crates.io-index"
67 | checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
68 |
69 | [[package]]
70 | name = "dirs-next"
71 | version = "1.0.2"
72 | source = "registry+https://github.com/rust-lang/crates.io-index"
73 | checksum = "cf36e65a80337bea855cd4ef9b8401ffce06a7baedf2e85ec467b1ac3f6e82b6"
74 | dependencies = [
75 | "cfg-if 1.0.0",
76 | "dirs-sys-next",
77 | ]
78 |
79 | [[package]]
80 | name = "dirs-sys-next"
81 | version = "0.1.2"
82 | source = "registry+https://github.com/rust-lang/crates.io-index"
83 | checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
84 | dependencies = [
85 | "libc",
86 | "redox_users",
87 | "winapi",
88 | ]
89 |
90 | [[package]]
91 | name = "encoding_rs"
92 | version = "0.8.30"
93 | source = "registry+https://github.com/rust-lang/crates.io-index"
94 | checksum = "7896dc8abb250ffdda33912550faa54c88ec8b998dec0b2c55ab224921ce11df"
95 | dependencies = [
96 | "cfg-if 1.0.0",
97 | ]
98 |
99 | [[package]]
100 | name = "fnv"
101 | version = "1.0.7"
102 | source = "registry+https://github.com/rust-lang/crates.io-index"
103 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
104 |
105 | [[package]]
106 | name = "foreign-types"
107 | version = "0.3.2"
108 | source = "registry+https://github.com/rust-lang/crates.io-index"
109 | checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
110 | dependencies = [
111 | "foreign-types-shared",
112 | ]
113 |
114 | [[package]]
115 | name = "foreign-types-shared"
116 | version = "0.1.1"
117 | source = "registry+https://github.com/rust-lang/crates.io-index"
118 | checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
119 |
120 | [[package]]
121 | name = "form_urlencoded"
122 | version = "1.0.1"
123 | source = "registry+https://github.com/rust-lang/crates.io-index"
124 | checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191"
125 | dependencies = [
126 | "matches",
127 | "percent-encoding",
128 | ]
129 |
130 | [[package]]
131 | name = "futures-channel"
132 | version = "0.3.18"
133 | source = "registry+https://github.com/rust-lang/crates.io-index"
134 | checksum = "7fc8cd39e3dbf865f7340dce6a2d401d24fd37c6fe6c4f0ee0de8bfca2252d27"
135 | dependencies = [
136 | "futures-core",
137 | ]
138 |
139 | [[package]]
140 | name = "futures-core"
141 | version = "0.3.18"
142 | source = "registry+https://github.com/rust-lang/crates.io-index"
143 | checksum = "629316e42fe7c2a0b9a65b47d159ceaa5453ab14e8f0a3c5eedbb8cd55b4a445"
144 |
145 | [[package]]
146 | name = "futures-io"
147 | version = "0.3.18"
148 | source = "registry+https://github.com/rust-lang/crates.io-index"
149 | checksum = "e481354db6b5c353246ccf6a728b0c5511d752c08da7260546fc0933869daa11"
150 |
151 | [[package]]
152 | name = "futures-sink"
153 | version = "0.3.18"
154 | source = "registry+https://github.com/rust-lang/crates.io-index"
155 | checksum = "996c6442437b62d21a32cd9906f9c41e7dc1e19a9579843fad948696769305af"
156 |
157 | [[package]]
158 | name = "futures-task"
159 | version = "0.3.18"
160 | source = "registry+https://github.com/rust-lang/crates.io-index"
161 | checksum = "dabf1872aaab32c886832f2276d2f5399887e2bd613698a02359e4ea83f8de12"
162 |
163 | [[package]]
164 | name = "futures-util"
165 | version = "0.3.17"
166 | source = "registry+https://github.com/rust-lang/crates.io-index"
167 | checksum = "36568465210a3a6ee45e1f165136d68671471a501e632e9a98d96872222b5481"
168 | dependencies = [
169 | "autocfg",
170 | "futures-core",
171 | "futures-io",
172 | "futures-task",
173 | "memchr",
174 | "pin-project-lite",
175 | "pin-utils",
176 | "slab",
177 | ]
178 |
179 | [[package]]
180 | name = "getrandom"
181 | version = "0.2.3"
182 | source = "registry+https://github.com/rust-lang/crates.io-index"
183 | checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753"
184 | dependencies = [
185 | "cfg-if 1.0.0",
186 | "libc",
187 | "wasi",
188 | ]
189 |
190 | [[package]]
191 | name = "h2"
192 | version = "0.3.9"
193 | source = "registry+https://github.com/rust-lang/crates.io-index"
194 | checksum = "8f072413d126e57991455e0a922b31e4c8ba7c2ffbebf6b78b4f8521397d65cd"
195 | dependencies = [
196 | "bytes",
197 | "fnv",
198 | "futures-core",
199 | "futures-sink",
200 | "futures-util",
201 | "http",
202 | "indexmap",
203 | "slab",
204 | "tokio",
205 | "tokio-util",
206 | "tracing",
207 | ]
208 |
209 | [[package]]
210 | name = "hashbrown"
211 | version = "0.11.2"
212 | source = "registry+https://github.com/rust-lang/crates.io-index"
213 | checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
214 |
215 | [[package]]
216 | name = "hermit-abi"
217 | version = "0.1.19"
218 | source = "registry+https://github.com/rust-lang/crates.io-index"
219 | checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
220 | dependencies = [
221 | "libc",
222 | ]
223 |
224 | [[package]]
225 | name = "http"
226 | version = "0.2.5"
227 | source = "registry+https://github.com/rust-lang/crates.io-index"
228 | checksum = "1323096b05d41827dadeaee54c9981958c0f94e670bc94ed80037d1a7b8b186b"
229 | dependencies = [
230 | "bytes",
231 | "fnv",
232 | "itoa 0.4.8",
233 | ]
234 |
235 | [[package]]
236 | name = "http-body"
237 | version = "0.4.4"
238 | source = "registry+https://github.com/rust-lang/crates.io-index"
239 | checksum = "1ff4f84919677303da5f147645dbea6b1881f368d03ac84e1dc09031ebd7b2c6"
240 | dependencies = [
241 | "bytes",
242 | "http",
243 | "pin-project-lite",
244 | ]
245 |
246 | [[package]]
247 | name = "httparse"
248 | version = "1.5.1"
249 | source = "registry+https://github.com/rust-lang/crates.io-index"
250 | checksum = "acd94fdbe1d4ff688b67b04eee2e17bd50995534a61539e45adfefb45e5e5503"
251 |
252 | [[package]]
253 | name = "httpdate"
254 | version = "1.0.2"
255 | source = "registry+https://github.com/rust-lang/crates.io-index"
256 | checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421"
257 |
258 | [[package]]
259 | name = "hyper"
260 | version = "0.14.16"
261 | source = "registry+https://github.com/rust-lang/crates.io-index"
262 | checksum = "b7ec3e62bdc98a2f0393a5048e4c30ef659440ea6e0e572965103e72bd836f55"
263 | dependencies = [
264 | "bytes",
265 | "futures-channel",
266 | "futures-core",
267 | "futures-util",
268 | "h2",
269 | "http",
270 | "http-body",
271 | "httparse",
272 | "httpdate",
273 | "itoa 0.4.8",
274 | "pin-project-lite",
275 | "socket2",
276 | "tokio",
277 | "tower-service",
278 | "tracing",
279 | "want",
280 | ]
281 |
282 | [[package]]
283 | name = "hyper-tls"
284 | version = "0.5.0"
285 | source = "registry+https://github.com/rust-lang/crates.io-index"
286 | checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
287 | dependencies = [
288 | "bytes",
289 | "hyper",
290 | "native-tls",
291 | "tokio",
292 | "tokio-native-tls",
293 | ]
294 |
295 | [[package]]
296 | name = "idna"
297 | version = "0.2.3"
298 | source = "registry+https://github.com/rust-lang/crates.io-index"
299 | checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
300 | dependencies = [
301 | "matches",
302 | "unicode-bidi",
303 | "unicode-normalization",
304 | ]
305 |
306 | [[package]]
307 | name = "indexmap"
308 | version = "1.7.0"
309 | source = "registry+https://github.com/rust-lang/crates.io-index"
310 | checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5"
311 | dependencies = [
312 | "autocfg",
313 | "hashbrown",
314 | ]
315 |
316 | [[package]]
317 | name = "ipnet"
318 | version = "2.3.1"
319 | source = "registry+https://github.com/rust-lang/crates.io-index"
320 | checksum = "68f2d64f2edebec4ce84ad108148e67e1064789bee435edc5b60ad398714a3a9"
321 |
322 | [[package]]
323 | name = "itoa"
324 | version = "0.4.8"
325 | source = "registry+https://github.com/rust-lang/crates.io-index"
326 | checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
327 |
328 | [[package]]
329 | name = "itoa"
330 | version = "1.0.1"
331 | source = "registry+https://github.com/rust-lang/crates.io-index"
332 | checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35"
333 |
334 | [[package]]
335 | name = "js-sys"
336 | version = "0.3.55"
337 | source = "registry+https://github.com/rust-lang/crates.io-index"
338 | checksum = "7cc9ffccd38c451a86bf13657df244e9c3f37493cce8e5e21e940963777acc84"
339 | dependencies = [
340 | "wasm-bindgen",
341 | ]
342 |
343 | [[package]]
344 | name = "lazy_static"
345 | version = "1.4.0"
346 | source = "registry+https://github.com/rust-lang/crates.io-index"
347 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
348 |
349 | [[package]]
350 | name = "libc"
351 | version = "0.2.112"
352 | source = "registry+https://github.com/rust-lang/crates.io-index"
353 | checksum = "1b03d17f364a3a042d5e5d46b053bbbf82c92c9430c592dd4c064dc6ee997125"
354 |
355 | [[package]]
356 | name = "log"
357 | version = "0.4.14"
358 | source = "registry+https://github.com/rust-lang/crates.io-index"
359 | checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
360 | dependencies = [
361 | "cfg-if 1.0.0",
362 | ]
363 |
364 | [[package]]
365 | name = "matches"
366 | version = "0.1.9"
367 | source = "registry+https://github.com/rust-lang/crates.io-index"
368 | checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f"
369 |
370 | [[package]]
371 | name = "memchr"
372 | version = "2.4.1"
373 | source = "registry+https://github.com/rust-lang/crates.io-index"
374 | checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
375 |
376 | [[package]]
377 | name = "mime"
378 | version = "0.3.16"
379 | source = "registry+https://github.com/rust-lang/crates.io-index"
380 | checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
381 |
382 | [[package]]
383 | name = "mio"
384 | version = "0.7.14"
385 | source = "registry+https://github.com/rust-lang/crates.io-index"
386 | checksum = "8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc"
387 | dependencies = [
388 | "libc",
389 | "log",
390 | "miow",
391 | "ntapi",
392 | "winapi",
393 | ]
394 |
395 | [[package]]
396 | name = "miow"
397 | version = "0.3.7"
398 | source = "registry+https://github.com/rust-lang/crates.io-index"
399 | checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21"
400 | dependencies = [
401 | "winapi",
402 | ]
403 |
404 | [[package]]
405 | name = "native-tls"
406 | version = "0.2.8"
407 | source = "registry+https://github.com/rust-lang/crates.io-index"
408 | checksum = "48ba9f7719b5a0f42f338907614285fb5fd70e53858141f69898a1fb7203b24d"
409 | dependencies = [
410 | "lazy_static",
411 | "libc",
412 | "log",
413 | "openssl",
414 | "openssl-probe",
415 | "openssl-sys",
416 | "schannel",
417 | "security-framework",
418 | "security-framework-sys",
419 | "tempfile",
420 | ]
421 |
422 | [[package]]
423 | name = "nix"
424 | version = "0.18.0"
425 | source = "registry+https://github.com/rust-lang/crates.io-index"
426 | checksum = "83450fe6a6142ddd95fb064b746083fc4ef1705fe81f64a64e1d4b39f54a1055"
427 | dependencies = [
428 | "bitflags",
429 | "cc",
430 | "cfg-if 0.1.10",
431 | "libc",
432 | ]
433 |
434 | [[package]]
435 | name = "ntapi"
436 | version = "0.3.6"
437 | source = "registry+https://github.com/rust-lang/crates.io-index"
438 | checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44"
439 | dependencies = [
440 | "winapi",
441 | ]
442 |
443 | [[package]]
444 | name = "num_cpus"
445 | version = "1.13.0"
446 | source = "registry+https://github.com/rust-lang/crates.io-index"
447 | checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
448 | dependencies = [
449 | "hermit-abi",
450 | "libc",
451 | ]
452 |
453 | [[package]]
454 | name = "once_cell"
455 | version = "1.9.0"
456 | source = "registry+https://github.com/rust-lang/crates.io-index"
457 | checksum = "da32515d9f6e6e489d7bc9d84c71b060db7247dc035bbe44eac88cf87486d8d5"
458 |
459 | [[package]]
460 | name = "openssl"
461 | version = "0.10.38"
462 | source = "registry+https://github.com/rust-lang/crates.io-index"
463 | checksum = "0c7ae222234c30df141154f159066c5093ff73b63204dcda7121eb082fc56a95"
464 | dependencies = [
465 | "bitflags",
466 | "cfg-if 1.0.0",
467 | "foreign-types",
468 | "libc",
469 | "once_cell",
470 | "openssl-sys",
471 | ]
472 |
473 | [[package]]
474 | name = "openssl-probe"
475 | version = "0.1.4"
476 | source = "registry+https://github.com/rust-lang/crates.io-index"
477 | checksum = "28988d872ab76095a6e6ac88d99b54fd267702734fd7ffe610ca27f533ddb95a"
478 |
479 | [[package]]
480 | name = "openssl-sys"
481 | version = "0.9.72"
482 | source = "registry+https://github.com/rust-lang/crates.io-index"
483 | checksum = "7e46109c383602735fa0a2e48dd2b7c892b048e1bf69e5c3b1d804b7d9c203cb"
484 | dependencies = [
485 | "autocfg",
486 | "cc",
487 | "libc",
488 | "pkg-config",
489 | "vcpkg",
490 | ]
491 |
492 | [[package]]
493 | name = "percent-encoding"
494 | version = "2.1.0"
495 | source = "registry+https://github.com/rust-lang/crates.io-index"
496 | checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
497 |
498 | [[package]]
499 | name = "pin-project-lite"
500 | version = "0.2.7"
501 | source = "registry+https://github.com/rust-lang/crates.io-index"
502 | checksum = "8d31d11c69a6b52a174b42bdc0c30e5e11670f90788b2c471c31c1d17d449443"
503 |
504 | [[package]]
505 | name = "pin-utils"
506 | version = "0.1.0"
507 | source = "registry+https://github.com/rust-lang/crates.io-index"
508 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
509 |
510 | [[package]]
511 | name = "pkg-config"
512 | version = "0.3.24"
513 | source = "registry+https://github.com/rust-lang/crates.io-index"
514 | checksum = "58893f751c9b0412871a09abd62ecd2a00298c6c83befa223ef98c52aef40cbe"
515 |
516 | [[package]]
517 | name = "ppv-lite86"
518 | version = "0.2.15"
519 | source = "registry+https://github.com/rust-lang/crates.io-index"
520 | checksum = "ed0cfbc8191465bed66e1718596ee0b0b35d5ee1f41c5df2189d0fe8bde535ba"
521 |
522 | [[package]]
523 | name = "proc-macro2"
524 | version = "1.0.34"
525 | source = "registry+https://github.com/rust-lang/crates.io-index"
526 | checksum = "2f84e92c0f7c9d58328b85a78557813e4bd845130db68d7184635344399423b1"
527 | dependencies = [
528 | "unicode-xid",
529 | ]
530 |
531 | [[package]]
532 | name = "promptly"
533 | version = "0.3.0"
534 | source = "registry+https://github.com/rust-lang/crates.io-index"
535 | checksum = "b99cfb0289110d969dd21637cfbc922584329bc9e5037c5e576325c615658509"
536 | dependencies = [
537 | "rustyline",
538 | ]
539 |
540 | [[package]]
541 | name = "quote"
542 | version = "1.0.10"
543 | source = "registry+https://github.com/rust-lang/crates.io-index"
544 | checksum = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05"
545 | dependencies = [
546 | "proc-macro2",
547 | ]
548 |
549 | [[package]]
550 | name = "rand"
551 | version = "0.8.4"
552 | source = "registry+https://github.com/rust-lang/crates.io-index"
553 | checksum = "2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8"
554 | dependencies = [
555 | "libc",
556 | "rand_chacha",
557 | "rand_core",
558 | "rand_hc",
559 | ]
560 |
561 | [[package]]
562 | name = "rand_chacha"
563 | version = "0.3.1"
564 | source = "registry+https://github.com/rust-lang/crates.io-index"
565 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
566 | dependencies = [
567 | "ppv-lite86",
568 | "rand_core",
569 | ]
570 |
571 | [[package]]
572 | name = "rand_core"
573 | version = "0.6.3"
574 | source = "registry+https://github.com/rust-lang/crates.io-index"
575 | checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
576 | dependencies = [
577 | "getrandom",
578 | ]
579 |
580 | [[package]]
581 | name = "rand_hc"
582 | version = "0.3.1"
583 | source = "registry+https://github.com/rust-lang/crates.io-index"
584 | checksum = "d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7"
585 | dependencies = [
586 | "rand_core",
587 | ]
588 |
589 | [[package]]
590 | name = "redox_syscall"
591 | version = "0.2.10"
592 | source = "registry+https://github.com/rust-lang/crates.io-index"
593 | checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff"
594 | dependencies = [
595 | "bitflags",
596 | ]
597 |
598 | [[package]]
599 | name = "redox_users"
600 | version = "0.4.0"
601 | source = "registry+https://github.com/rust-lang/crates.io-index"
602 | checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64"
603 | dependencies = [
604 | "getrandom",
605 | "redox_syscall",
606 | ]
607 |
608 | [[package]]
609 | name = "remove_dir_all"
610 | version = "0.5.3"
611 | source = "registry+https://github.com/rust-lang/crates.io-index"
612 | checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
613 | dependencies = [
614 | "winapi",
615 | ]
616 |
617 | [[package]]
618 | name = "reqwest"
619 | version = "0.11.7"
620 | source = "registry+https://github.com/rust-lang/crates.io-index"
621 | checksum = "07bea77bc708afa10e59905c3d4af7c8fd43c9214251673095ff8b14345fcbc5"
622 | dependencies = [
623 | "base64",
624 | "bytes",
625 | "encoding_rs",
626 | "futures-core",
627 | "futures-util",
628 | "http",
629 | "http-body",
630 | "hyper",
631 | "hyper-tls",
632 | "ipnet",
633 | "js-sys",
634 | "lazy_static",
635 | "log",
636 | "mime",
637 | "native-tls",
638 | "percent-encoding",
639 | "pin-project-lite",
640 | "serde",
641 | "serde_json",
642 | "serde_urlencoded",
643 | "tokio",
644 | "tokio-native-tls",
645 | "url",
646 | "wasm-bindgen",
647 | "wasm-bindgen-futures",
648 | "web-sys",
649 | "winreg",
650 | ]
651 |
652 | [[package]]
653 | name = "rustyline"
654 | version = "6.3.0"
655 | source = "registry+https://github.com/rust-lang/crates.io-index"
656 | checksum = "6f0d5e7b0219a3eadd5439498525d4765c59b7c993ef0c12244865cd2d988413"
657 | dependencies = [
658 | "cfg-if 0.1.10",
659 | "dirs-next",
660 | "libc",
661 | "log",
662 | "memchr",
663 | "nix",
664 | "scopeguard",
665 | "unicode-segmentation",
666 | "unicode-width",
667 | "utf8parse",
668 | "winapi",
669 | ]
670 |
671 | [[package]]
672 | name = "ryu"
673 | version = "1.0.9"
674 | source = "registry+https://github.com/rust-lang/crates.io-index"
675 | checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f"
676 |
677 | [[package]]
678 | name = "schannel"
679 | version = "0.1.19"
680 | source = "registry+https://github.com/rust-lang/crates.io-index"
681 | checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75"
682 | dependencies = [
683 | "lazy_static",
684 | "winapi",
685 | ]
686 |
687 | [[package]]
688 | name = "scopeguard"
689 | version = "1.1.0"
690 | source = "registry+https://github.com/rust-lang/crates.io-index"
691 | checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
692 |
693 | [[package]]
694 | name = "security-framework"
695 | version = "2.4.2"
696 | source = "registry+https://github.com/rust-lang/crates.io-index"
697 | checksum = "525bc1abfda2e1998d152c45cf13e696f76d0a4972310b22fac1658b05df7c87"
698 | dependencies = [
699 | "bitflags",
700 | "core-foundation",
701 | "core-foundation-sys",
702 | "libc",
703 | "security-framework-sys",
704 | ]
705 |
706 | [[package]]
707 | name = "security-framework-sys"
708 | version = "2.4.2"
709 | source = "registry+https://github.com/rust-lang/crates.io-index"
710 | checksum = "a9dd14d83160b528b7bfd66439110573efcfbe281b17fc2ca9f39f550d619c7e"
711 | dependencies = [
712 | "core-foundation-sys",
713 | "libc",
714 | ]
715 |
716 | [[package]]
717 | name = "serde"
718 | version = "1.0.131"
719 | source = "registry+https://github.com/rust-lang/crates.io-index"
720 | checksum = "b4ad69dfbd3e45369132cc64e6748c2d65cdfb001a2b1c232d128b4ad60561c1"
721 | dependencies = [
722 | "serde_derive",
723 | ]
724 |
725 | [[package]]
726 | name = "serde_derive"
727 | version = "1.0.131"
728 | source = "registry+https://github.com/rust-lang/crates.io-index"
729 | checksum = "b710a83c4e0dff6a3d511946b95274ad9ca9e5d3ae497b63fda866ac955358d2"
730 | dependencies = [
731 | "proc-macro2",
732 | "quote",
733 | "syn",
734 | ]
735 |
736 | [[package]]
737 | name = "serde_json"
738 | version = "1.0.73"
739 | source = "registry+https://github.com/rust-lang/crates.io-index"
740 | checksum = "bcbd0344bc6533bc7ec56df11d42fb70f1b912351c0825ccb7211b59d8af7cf5"
741 | dependencies = [
742 | "itoa 1.0.1",
743 | "ryu",
744 | "serde",
745 | ]
746 |
747 | [[package]]
748 | name = "serde_urlencoded"
749 | version = "0.7.0"
750 | source = "registry+https://github.com/rust-lang/crates.io-index"
751 | checksum = "edfa57a7f8d9c1d260a549e7224100f6c43d43f9103e06dd8b4095a9b2b43ce9"
752 | dependencies = [
753 | "form_urlencoded",
754 | "itoa 0.4.8",
755 | "ryu",
756 | "serde",
757 | ]
758 |
759 | [[package]]
760 | name = "slab"
761 | version = "0.4.5"
762 | source = "registry+https://github.com/rust-lang/crates.io-index"
763 | checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5"
764 |
765 | [[package]]
766 | name = "socket2"
767 | version = "0.4.2"
768 | source = "registry+https://github.com/rust-lang/crates.io-index"
769 | checksum = "5dc90fe6c7be1a323296982db1836d1ea9e47b6839496dde9a541bc496df3516"
770 | dependencies = [
771 | "libc",
772 | "winapi",
773 | ]
774 |
775 | [[package]]
776 | name = "syn"
777 | version = "1.0.82"
778 | source = "registry+https://github.com/rust-lang/crates.io-index"
779 | checksum = "8daf5dd0bb60cbd4137b1b587d2fc0ae729bc07cf01cd70b36a1ed5ade3b9d59"
780 | dependencies = [
781 | "proc-macro2",
782 | "quote",
783 | "unicode-xid",
784 | ]
785 |
786 | [[package]]
787 | name = "tempfile"
788 | version = "3.2.0"
789 | source = "registry+https://github.com/rust-lang/crates.io-index"
790 | checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22"
791 | dependencies = [
792 | "cfg-if 1.0.0",
793 | "libc",
794 | "rand",
795 | "redox_syscall",
796 | "remove_dir_all",
797 | "winapi",
798 | ]
799 |
800 | [[package]]
801 | name = "tinyvec"
802 | version = "1.5.1"
803 | source = "registry+https://github.com/rust-lang/crates.io-index"
804 | checksum = "2c1c1d5a42b6245520c249549ec267180beaffcc0615401ac8e31853d4b6d8d2"
805 | dependencies = [
806 | "tinyvec_macros",
807 | ]
808 |
809 | [[package]]
810 | name = "tinyvec_macros"
811 | version = "0.1.0"
812 | source = "registry+https://github.com/rust-lang/crates.io-index"
813 | checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
814 |
815 | [[package]]
816 | name = "tokio"
817 | version = "1.14.0"
818 | source = "registry+https://github.com/rust-lang/crates.io-index"
819 | checksum = "70e992e41e0d2fb9f755b37446f20900f64446ef54874f40a60c78f021ac6144"
820 | dependencies = [
821 | "autocfg",
822 | "bytes",
823 | "libc",
824 | "memchr",
825 | "mio",
826 | "num_cpus",
827 | "pin-project-lite",
828 | "winapi",
829 | ]
830 |
831 | [[package]]
832 | name = "tokio-native-tls"
833 | version = "0.3.0"
834 | source = "registry+https://github.com/rust-lang/crates.io-index"
835 | checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b"
836 | dependencies = [
837 | "native-tls",
838 | "tokio",
839 | ]
840 |
841 | [[package]]
842 | name = "tokio-util"
843 | version = "0.6.9"
844 | source = "registry+https://github.com/rust-lang/crates.io-index"
845 | checksum = "9e99e1983e5d376cd8eb4b66604d2e99e79f5bd988c3055891dcd8c9e2604cc0"
846 | dependencies = [
847 | "bytes",
848 | "futures-core",
849 | "futures-sink",
850 | "log",
851 | "pin-project-lite",
852 | "tokio",
853 | ]
854 |
855 | [[package]]
856 | name = "tower-service"
857 | version = "0.3.1"
858 | source = "registry+https://github.com/rust-lang/crates.io-index"
859 | checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6"
860 |
861 | [[package]]
862 | name = "tracing"
863 | version = "0.1.29"
864 | source = "registry+https://github.com/rust-lang/crates.io-index"
865 | checksum = "375a639232caf30edfc78e8d89b2d4c375515393e7af7e16f01cd96917fb2105"
866 | dependencies = [
867 | "cfg-if 1.0.0",
868 | "pin-project-lite",
869 | "tracing-core",
870 | ]
871 |
872 | [[package]]
873 | name = "tracing-core"
874 | version = "0.1.21"
875 | source = "registry+https://github.com/rust-lang/crates.io-index"
876 | checksum = "1f4ed65637b8390770814083d20756f87bfa2c21bf2f110babdc5438351746e4"
877 | dependencies = [
878 | "lazy_static",
879 | ]
880 |
881 | [[package]]
882 | name = "try-lock"
883 | version = "0.2.3"
884 | source = "registry+https://github.com/rust-lang/crates.io-index"
885 | checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642"
886 |
887 | [[package]]
888 | name = "unicode-bidi"
889 | version = "0.3.7"
890 | source = "registry+https://github.com/rust-lang/crates.io-index"
891 | checksum = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f"
892 |
893 | [[package]]
894 | name = "unicode-normalization"
895 | version = "0.1.19"
896 | source = "registry+https://github.com/rust-lang/crates.io-index"
897 | checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9"
898 | dependencies = [
899 | "tinyvec",
900 | ]
901 |
902 | [[package]]
903 | name = "unicode-segmentation"
904 | version = "1.8.0"
905 | source = "registry+https://github.com/rust-lang/crates.io-index"
906 | checksum = "8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b"
907 |
908 | [[package]]
909 | name = "unicode-width"
910 | version = "0.1.9"
911 | source = "registry+https://github.com/rust-lang/crates.io-index"
912 | checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
913 |
914 | [[package]]
915 | name = "unicode-xid"
916 | version = "0.2.2"
917 | source = "registry+https://github.com/rust-lang/crates.io-index"
918 | checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
919 |
920 | [[package]]
921 | name = "url"
922 | version = "2.2.2"
923 | source = "registry+https://github.com/rust-lang/crates.io-index"
924 | checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c"
925 | dependencies = [
926 | "form_urlencoded",
927 | "idna",
928 | "matches",
929 | "percent-encoding",
930 | ]
931 |
932 | [[package]]
933 | name = "utf8parse"
934 | version = "0.2.0"
935 | source = "registry+https://github.com/rust-lang/crates.io-index"
936 | checksum = "936e4b492acfd135421d8dca4b1aa80a7bfc26e702ef3af710e0752684df5372"
937 |
938 | [[package]]
939 | name = "vcpkg"
940 | version = "0.2.15"
941 | source = "registry+https://github.com/rust-lang/crates.io-index"
942 | checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
943 |
944 | [[package]]
945 | name = "voiceflow"
946 | version = "0.1.0"
947 | dependencies = [
948 | "promptly",
949 | "reqwest",
950 | "serde",
951 | "serde_json",
952 | ]
953 |
954 | [[package]]
955 | name = "want"
956 | version = "0.3.0"
957 | source = "registry+https://github.com/rust-lang/crates.io-index"
958 | checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0"
959 | dependencies = [
960 | "log",
961 | "try-lock",
962 | ]
963 |
964 | [[package]]
965 | name = "wasi"
966 | version = "0.10.2+wasi-snapshot-preview1"
967 | source = "registry+https://github.com/rust-lang/crates.io-index"
968 | checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
969 |
970 | [[package]]
971 | name = "wasm-bindgen"
972 | version = "0.2.78"
973 | source = "registry+https://github.com/rust-lang/crates.io-index"
974 | checksum = "632f73e236b219150ea279196e54e610f5dbafa5d61786303d4da54f84e47fce"
975 | dependencies = [
976 | "cfg-if 1.0.0",
977 | "wasm-bindgen-macro",
978 | ]
979 |
980 | [[package]]
981 | name = "wasm-bindgen-backend"
982 | version = "0.2.78"
983 | source = "registry+https://github.com/rust-lang/crates.io-index"
984 | checksum = "a317bf8f9fba2476b4b2c85ef4c4af8ff39c3c7f0cdfeed4f82c34a880aa837b"
985 | dependencies = [
986 | "bumpalo",
987 | "lazy_static",
988 | "log",
989 | "proc-macro2",
990 | "quote",
991 | "syn",
992 | "wasm-bindgen-shared",
993 | ]
994 |
995 | [[package]]
996 | name = "wasm-bindgen-futures"
997 | version = "0.4.28"
998 | source = "registry+https://github.com/rust-lang/crates.io-index"
999 | checksum = "8e8d7523cb1f2a4c96c1317ca690031b714a51cc14e05f712446691f413f5d39"
1000 | dependencies = [
1001 | "cfg-if 1.0.0",
1002 | "js-sys",
1003 | "wasm-bindgen",
1004 | "web-sys",
1005 | ]
1006 |
1007 | [[package]]
1008 | name = "wasm-bindgen-macro"
1009 | version = "0.2.78"
1010 | source = "registry+https://github.com/rust-lang/crates.io-index"
1011 | checksum = "d56146e7c495528bf6587663bea13a8eb588d39b36b679d83972e1a2dbbdacf9"
1012 | dependencies = [
1013 | "quote",
1014 | "wasm-bindgen-macro-support",
1015 | ]
1016 |
1017 | [[package]]
1018 | name = "wasm-bindgen-macro-support"
1019 | version = "0.2.78"
1020 | source = "registry+https://github.com/rust-lang/crates.io-index"
1021 | checksum = "7803e0eea25835f8abdc585cd3021b3deb11543c6fe226dcd30b228857c5c5ab"
1022 | dependencies = [
1023 | "proc-macro2",
1024 | "quote",
1025 | "syn",
1026 | "wasm-bindgen-backend",
1027 | "wasm-bindgen-shared",
1028 | ]
1029 |
1030 | [[package]]
1031 | name = "wasm-bindgen-shared"
1032 | version = "0.2.78"
1033 | source = "registry+https://github.com/rust-lang/crates.io-index"
1034 | checksum = "0237232789cf037d5480773fe568aac745bfe2afbc11a863e97901780a6b47cc"
1035 |
1036 | [[package]]
1037 | name = "web-sys"
1038 | version = "0.3.55"
1039 | source = "registry+https://github.com/rust-lang/crates.io-index"
1040 | checksum = "38eb105f1c59d9eaa6b5cdc92b859d85b926e82cb2e0945cd0c9259faa6fe9fb"
1041 | dependencies = [
1042 | "js-sys",
1043 | "wasm-bindgen",
1044 | ]
1045 |
1046 | [[package]]
1047 | name = "winapi"
1048 | version = "0.3.9"
1049 | source = "registry+https://github.com/rust-lang/crates.io-index"
1050 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
1051 | dependencies = [
1052 | "winapi-i686-pc-windows-gnu",
1053 | "winapi-x86_64-pc-windows-gnu",
1054 | ]
1055 |
1056 | [[package]]
1057 | name = "winapi-i686-pc-windows-gnu"
1058 | version = "0.4.0"
1059 | source = "registry+https://github.com/rust-lang/crates.io-index"
1060 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
1061 |
1062 | [[package]]
1063 | name = "winapi-x86_64-pc-windows-gnu"
1064 | version = "0.4.0"
1065 | source = "registry+https://github.com/rust-lang/crates.io-index"
1066 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
1067 |
1068 | [[package]]
1069 | name = "winreg"
1070 | version = "0.7.0"
1071 | source = "registry+https://github.com/rust-lang/crates.io-index"
1072 | checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69"
1073 | dependencies = [
1074 | "winapi",
1075 | ]
1076 |
--------------------------------------------------------------------------------
/rust/Cargo.toml:
--------------------------------------------------------------------------------
1 | [package]
2 | name = "voiceflow"
3 | version = "0.1.0"
4 | edition = "2021"
5 |
6 | [dependencies]
7 | reqwest = { version = "0.11", features = ["blocking", "json"] }
8 | serde = { version = "1.0", features = ["derive"] }
9 | serde_json = "1.0"
10 | promptly = "0.3"
--------------------------------------------------------------------------------
/rust/README.md:
--------------------------------------------------------------------------------
1 | # Voiceflow API Rust Example
2 |
3 | Set up your Voiceflow project with Rust in a matter of minutes.
4 | Rust is a general-purpose programming language empowering everyone to build reliable and efficient software.
5 | This example can be adapted to run as an HTTP server.
6 |
7 | This example lets you chat with your project via the terminal.
8 |
9 | ## Documentation
10 |
11 | For additional information about the Voiceflow API, visit the [documentation](https://www.voiceflow.com/api/dialog-manager).
12 |
13 | ## Setup
14 |
15 | 1. If you do not have Rust, install _Rust_ from [https://www.rust-lang.org/learn/get-started](https://www.rust-lang.org/learn/get-started), or follow an equivalent guide.
16 | 1. Replace `'YOUR_API_KEY_HERE'` in `main.rs` with your API Key Dialog Manager API Key. You can find it under the integrations tab:
17 |
18 |
19 |
20 | 1. run `cargo run` to start your chat!
21 |
22 | ## Example
23 |
24 | What it might look like in action:
25 |
26 | ```
27 | $ cargo run
28 |
29 | > What is your name?: tyler
30 | what can I do for you?
31 | ...
32 | > Say something: send email
33 | who is the recipient?
34 | ...
35 | > Say something: tyler@voiceflow.com
36 | what is the title of your email?
37 | ...
38 | > Say something: How was your day?
39 | sending the email for tyler@voiceflow.com called "How was your day?". Is that correct?
40 | ...
41 | > Say something: yes
42 | successfully sent the email for tyler@voiceflow.com called "How was your day?"
43 | The end!
44 | ```
45 |
--------------------------------------------------------------------------------
/rust/src/main.rs:
--------------------------------------------------------------------------------
1 | use promptly::prompt;
2 | use reqwest::{blocking, header};
3 | use serde_json::{json, Value as JsonValue};
4 |
5 | const API_KEY: &str = "YOUR_API_KEY_HERE"; // it should look like this: VF.DM.XXXXXXX.XXXXXX... keep this a secret!
6 |
7 | const API_URL: &str = "https://general-runtime.voiceflow.com";
8 |
9 | fn interact(user_id: &str, request: JsonValue) -> Result> {
10 | let url = format!("{}/state/user/{}/interact", API_URL, user_id);
11 |
12 | // call the Voiceflow API with the user's name & request, get back a response
13 | let client = blocking::Client::new();
14 | let response = client
15 | .post(url)
16 | .json(&request)
17 | .header(header::AUTHORIZATION, API_KEY)
18 | .send()
19 | .and_then(blocking::Response::error_for_status)?;
20 |
21 | let traces: Vec = response.json()?;
22 |
23 | for trace in traces {
24 | match trace["type"].to_string().as_str() {
25 | "\"text\"" | "\"speak\"" => println!("{}", trace["payload"]["message"]),
26 | "\"end\"" => return Ok(false),
27 | _ => {}
28 | }
29 | }
30 |
31 | Ok(true)
32 | }
33 |
34 | fn main() -> Result<(), Box> {
35 | let user_id: String = prompt("> What is your name?")?;
36 | // send a simple launch request starting the dialog
37 | let mut is_running = interact(&user_id, json!({"request": {"type": "launch"}}))?;
38 |
39 | while is_running {
40 | let next_input: String = prompt("> Say something")?;
41 | // send a simple text type request with the user input
42 | is_running = interact(
43 | &user_id,
44 | json!({"request": {"type": "text", "payload": next_input}}),
45 | )?;
46 | }
47 |
48 | println!("The end!");
49 |
50 | Ok(())
51 | }
52 |
--------------------------------------------------------------------------------