├── .gitignore
├── LICENSE
├── README.md
├── assembly
├── ansi.ts
├── characters.ts
├── cli.ts
├── droplet.ts
├── env.ts
├── index.ts
├── tsconfig.json
├── utils.ts
└── wasa.ts
├── docs_assets
├── matrix-meme.jpg
└── matrix.gif
├── package-lock.json
├── package.json
├── wapm.lock
└── wapm.toml
/.gitignore:
--------------------------------------------------------------------------------
1 | # Wapm
2 | wapm_packages/
3 |
4 | # Build
5 | build/*.*.map
6 |
7 | # System files
8 | .DS_Store
9 |
10 | # Logs
11 | logs
12 | *.log
13 | npm-debug.log*
14 | yarn-debug.log*
15 | yarn-error.log*
16 |
17 | # Runtime data
18 | pids
19 | *.pid
20 | *.seed
21 | *.pid.lock
22 |
23 | # Directory for instrumented libs generated by jscoverage/JSCover
24 | lib-cov
25 |
26 | # Coverage directory used by tools like istanbul
27 | coverage
28 |
29 | # nyc test coverage
30 | .nyc_output
31 |
32 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
33 | .grunt
34 |
35 | # Bower dependency directory (https://bower.io/)
36 | bower_components
37 |
38 | # node-waf configuration
39 | .lock-wscript
40 |
41 | # Compiled binary addons (https://nodejs.org/api/addons.html)
42 | build/Release
43 |
44 | # Dependency directories
45 | node_modules/
46 | jspm_packages/
47 |
48 | # TypeScript v1 declaration files
49 | typings/
50 |
51 | # Optional npm cache directory
52 | .npm
53 |
54 | # Optional eslint cache
55 | .eslintcache
56 |
57 | # Optional REPL history
58 | .node_repl_history
59 |
60 | # Output of 'npm pack'
61 | *.tgz
62 |
63 | # Yarn Integrity file
64 | .yarn-integrity
65 |
66 | # dotenv environment variables file
67 | .env
68 |
69 | # next.js build output
70 | .next
71 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction,
10 | and distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by
13 | the copyright owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all
16 | other entities that control, are controlled by, or are under common
17 | control with that entity. For the purposes of this definition,
18 | "control" means (i) the power, direct or indirect, to cause the
19 | direction or management of such entity, whether by contract or
20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
21 | outstanding shares, or (iii) beneficial ownership of such entity.
22 |
23 | "You" (or "Your") shall mean an individual or Legal Entity
24 | exercising permissions granted by this License.
25 |
26 | "Source" form shall mean the preferred form for making modifications,
27 | including but not limited to software source code, documentation
28 | source, and configuration files.
29 |
30 | "Object" form shall mean any form resulting from mechanical
31 | transformation or translation of a Source form, including but
32 | not limited to compiled object code, generated documentation,
33 | and conversions to other media types.
34 |
35 | "Work" shall mean the work of authorship, whether in Source or
36 | Object form, made available under the License, as indicated by a
37 | copyright notice that is included in or attached to the work
38 | (an example is provided in the Appendix below).
39 |
40 | "Derivative Works" shall mean any work, whether in Source or Object
41 | form, that is based on (or derived from) the Work and for which the
42 | editorial revisions, annotations, elaborations, or other modifications
43 | represent, as a whole, an original work of authorship. For the purposes
44 | of this License, Derivative Works shall not include works that remain
45 | separable from, or merely link (or bind by name) to the interfaces of,
46 | the Work and Derivative Works thereof.
47 |
48 | "Contribution" shall mean any work of authorship, including
49 | the original version of the Work and any modifications or additions
50 | to that Work or Derivative Works thereof, that is intentionally
51 | submitted to Licensor for inclusion in the Work by the copyright owner
52 | or by an individual or Legal Entity authorized to submit on behalf of
53 | the copyright owner. For the purposes of this definition, "submitted"
54 | means any form of electronic, verbal, or written communication sent
55 | to the Licensor or its representatives, including but not limited to
56 | communication on electronic mailing lists, source code control systems,
57 | and issue tracking systems that are managed by, or on behalf of, the
58 | Licensor for the purpose of discussing and improving the Work, but
59 | excluding communication that is conspicuously marked or otherwise
60 | designated in writing by the copyright owner as "Not a Contribution."
61 |
62 | "Contributor" shall mean Licensor and any individual or Legal Entity
63 | on behalf of whom a Contribution has been received by Licensor and
64 | subsequently incorporated within the Work.
65 |
66 | 2. Grant of Copyright License. Subject to the terms and conditions of
67 | this License, each Contributor hereby grants to You a perpetual,
68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69 | copyright license to reproduce, prepare Derivative Works of,
70 | publicly display, publicly perform, sublicense, and distribute the
71 | Work and such Derivative Works in Source or Object form.
72 |
73 | 3. Grant of Patent License. Subject to the terms and conditions of
74 | this License, each Contributor hereby grants to You a perpetual,
75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76 | (except as stated in this section) patent license to make, have made,
77 | use, offer to sell, sell, import, and otherwise transfer the Work,
78 | where such license applies only to those patent claims licensable
79 | by such Contributor that are necessarily infringed by their
80 | Contribution(s) alone or by combination of their Contribution(s)
81 | with the Work to which such Contribution(s) was submitted. If You
82 | institute patent litigation against any entity (including a
83 | cross-claim or counterclaim in a lawsuit) alleging that the Work
84 | or a Contribution incorporated within the Work constitutes direct
85 | or contributory patent infringement, then any patent licenses
86 | granted to You under this License for that Work shall terminate
87 | as of the date such litigation is filed.
88 |
89 | 4. Redistribution. You may reproduce and distribute copies of the
90 | Work or Derivative Works thereof in any medium, with or without
91 | modifications, and in Source or Object form, provided that You
92 | meet the following conditions:
93 |
94 | (a) You must give any other recipients of the Work or
95 | Derivative Works a copy of this License; and
96 |
97 | (b) You must cause any modified files to carry prominent notices
98 | stating that You changed the files; and
99 |
100 | (c) You must retain, in the Source form of any Derivative Works
101 | that You distribute, all copyright, patent, trademark, and
102 | attribution notices from the Source form of the Work,
103 | excluding those notices that do not pertain to any part of
104 | the Derivative Works; and
105 |
106 | (d) If the Work includes a "NOTICE" text file as part of its
107 | distribution, then any Derivative Works that You distribute must
108 | include a readable copy of the attribution notices contained
109 | within such NOTICE file, excluding those notices that do not
110 | pertain to any part of the Derivative Works, in at least one
111 | of the following places: within a NOTICE text file distributed
112 | as part of the Derivative Works; within the Source form or
113 | documentation, if provided along with the Derivative Works; or,
114 | within a display generated by the Derivative Works, if and
115 | wherever such third-party notices normally appear. The contents
116 | of the NOTICE file are for informational purposes only and
117 | do not modify the License. You may add Your own attribution
118 | notices within Derivative Works that You distribute, alongside
119 | or as an addendum to the NOTICE text from the Work, provided
120 | that such additional attribution notices cannot be construed
121 | as modifying the License.
122 |
123 | You may add Your own copyright statement to Your modifications and
124 | may provide additional or different license terms and conditions
125 | for use, reproduction, or distribution of Your modifications, or
126 | for any such Derivative Works as a whole, provided Your use,
127 | reproduction, and distribution of the Work otherwise complies with
128 | the conditions stated in this License.
129 |
130 | 5. Submission of Contributions. Unless You explicitly state otherwise,
131 | any Contribution intentionally submitted for inclusion in the Work
132 | by You to the Licensor shall be under the terms and conditions of
133 | this License, without any additional terms or conditions.
134 | Notwithstanding the above, nothing herein shall supersede or modify
135 | the terms of any separate license agreement you may have executed
136 | with Licensor regarding such Contributions.
137 |
138 | 6. Trademarks. This License does not grant permission to use the trade
139 | names, trademarks, service marks, or product names of the Licensor,
140 | except as required for reasonable and customary use in describing the
141 | origin of the Work and reproducing the content of the NOTICE file.
142 |
143 | 7. Disclaimer of Warranty. Unless required by applicable law or
144 | agreed to in writing, Licensor provides the Work (and each
145 | Contributor provides its Contributions) on an "AS IS" BASIS,
146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147 | implied, including, without limitation, any warranties or conditions
148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149 | PARTICULAR PURPOSE. You are solely responsible for determining the
150 | appropriateness of using or redistributing the Work and assume any
151 | risks associated with Your exercise of permissions under this License.
152 |
153 | 8. Limitation of Liability. In no event and under no legal theory,
154 | whether in tort (including negligence), contract, or otherwise,
155 | unless required by applicable law (such as deliberate and grossly
156 | negligent acts) or agreed to in writing, shall any Contributor be
157 | liable to You for damages, including any direct, indirect, special,
158 | incidental, or consequential damages of any character arising as a
159 | result of this License or out of the use or inability to use the
160 | Work (including but not limited to damages for loss of goodwill,
161 | work stoppage, computer failure or malfunction, or any and all
162 | other commercial damages or losses), even if such Contributor
163 | has been advised of the possibility of such damages.
164 |
165 | 9. Accepting Warranty or Additional Liability. While redistributing
166 | the Work or Derivative Works thereof, You may choose to offer,
167 | and charge a fee for, acceptance of support, warranty, indemnity,
168 | or other liability obligations and/or rights consistent with this
169 | License. However, in accepting such obligations, You may act only
170 | on Your own behalf and on Your sole responsibility, not on behalf
171 | of any other Contributor, and only if You agree to indemnify,
172 | defend, and hold each Contributor harmless for any liability
173 | incurred by, or claims asserted against, such Contributor by reason
174 | of your accepting any such warranty or additional liability.
175 |
176 | END OF TERMS AND CONDITIONS
177 |
178 | APPENDIX: How to apply the Apache License to your work.
179 |
180 | To apply the Apache License to your work, attach the following
181 | boilerplate notice, with the fields enclosed by brackets "[]"
182 | replaced with your own identifying information. (Don't include
183 | the brackets!) The text should be enclosed in the appropriate
184 | comment syntax for the file format. We also recommend that a
185 | file or class name and description of purpose be included on the
186 | same "printed page" as the copyright notice for easier
187 | identification within third-party archives.
188 |
189 | Copyright [yyyy] [name of copyright owner]
190 |
191 | Licensed under the Apache License, Version 2.0 (the "License");
192 | you may not use this file except in compliance with the License.
193 | You may obtain a copy of the License at
194 |
195 | http://www.apache.org/licenses/LICENSE-2.0
196 |
197 | Unless required by applicable law or agreed to in writing, software
198 | distributed under the License is distributed on an "AS IS" BASIS,
199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200 | See the License for the specific language governing permissions and
201 | limitations under the License.
202 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # wasm-matrix
2 |
3 | A Matrix Effect in your terminal using AssemblyScript 🚀 and WASI 🧩 . Deployed to WAPM 📦 .
4 |
5 | Uses the [AssemblyScript WASI bindings](https://github.com/AssemblyScript/assemblyscript/blob/master/std/assembly/bindings/wasi_unstable.ts), with some help from [Wasa](https://github.com/jedisct1/wasa).
6 |
7 |
8 |
9 | # Table of Contents
10 |
11 | - [Usage](#usage)
12 | - [Caveats](#caveats)
13 | - [Contributing](#contributing)
14 | - [Setup](#setup)
15 | - [Resources](#resources)
16 | - [Special Thanks](#special-thanks)
17 |
18 | # Usage
19 |
20 | **Install using [WAPM](https://wapm.io/)**:
21 |
22 | `wapm install -g torch2424/wasm-matrix`
23 |
24 | **And then run `wasm-matrix`**:
25 |
26 | `wapm run wasm-matrix -l $LINES -c $COLUMNS`
27 |
28 | # Caveats
29 |
30 | Currently, in version `0.0.1` this isn't using the clock subscription, and using an old school `while(true)` loop to run the matrix. Thus, this will peg a core of CPU, wouldn't suggest running this on a cheap single core droplet (server). 🙂
31 |
32 | # Contributing
33 |
34 | Feel free to fork and submit PRs! Opening an issue is reccomended before starting any development, as a discussion would be nice on the idea / feature before writing code. Any help is much appreciated, and would be a ton of fun! 🎉
35 |
36 | ## Setup
37 |
38 | This project's setup is meant to follow a standard Node app. Install Node with [nvm](https://github.com/creationix/nvm), `git clone` the project, and `npm install`, and you should be good to go!
39 |
40 | Build your changes with: `npm run build`.
41 |
42 | Run the project with the standard usage: `wapm run wasm-matrix -l $LINES -c $COLUMNS`.
43 |
44 | # Resources
45 |
46 | - [AssemblyScript](https://github.com/AssemblyScript/assemblyscript) - Typescript(-ish) to WebAssembly Compiler.
47 |
48 | - [Wasa](https://github.com/jedisct1/wasa) - An AssemblyScript API layer for WASI system calls [WIP].
49 |
50 | - [Wasi](https://wasi.dev/) - System interface for WebAssembly
51 |
52 | - [WAPM](https://wapm.io/) - A WebAssembly package manager built on top of [Wasmer](https://github.com/wasmerio/wasmer).
53 |
54 | # Special Thanks
55 |
56 | - [jedisct1](https://github.com/jedisct1) - For building wasa. Was a huge help!
57 |
58 | - [Binji](https://twitter.com/binjimint) - For inspiring this project on one of our hack days. Check out their [hack day wasm project](https://twitter.com/binjimint/status/1127421365139587072)!
59 |
60 | - [Colin Eberhardt](https://twitter.com/ColinEberhardt) - For [joining in on the Wasm Hacking fun](https://twitter.com/ColinEberhardt/status/1128701985757253632)!
61 |
--------------------------------------------------------------------------------
/assembly/ansi.ts:
--------------------------------------------------------------------------------
1 | // Ansi Sequences and convenience functions
2 |
3 | import { Console } from "./wasa";
4 |
5 | // ANSI Escape
6 | const ESC: string = "\u001b[";
7 |
8 | // Ansi Color Codes
9 | export const GREEN: string = ESC + "32m";
10 | export const WHITE: string = ESC + "37m";
11 | export const RED: string = ESC + "31m";
12 | export const CYAN: string = ESC + "36m";
13 | export const RESET: string = ESC + "0m";
14 |
15 | // Ansi Cursor Codes
16 | export const HIDE_CURSOR: string = ESC + "?25h";
17 |
18 | export function printColor(value: string, color: string): void {
19 | Console.write(color + value + RESET, false);
20 | }
21 |
22 | export function flushConsole(): void {
23 | Console.write(ESC + "2J", false);
24 | }
25 |
26 | // https://github.com/nojvek/matrix-rain/blob/master/ansi.js
27 | export function moveCursorToPosition(column: i32, row: i32): void {
28 | let cursorPosition: string =
29 | ESC + row.toString() + ";" + column.toString() + "H";
30 | Console.write(cursorPosition, false);
31 |
32 | // Hide the cursor
33 | Console.write(HIDE_CURSOR, false);
34 | }
35 |
--------------------------------------------------------------------------------
/assembly/characters.ts:
--------------------------------------------------------------------------------
1 | // All of our character sets
2 |
3 | import { getRandomNumber } from "./utils";
4 |
5 | // Character code indexes
6 | // Not extracting from a string, to save memory
7 | // And make up for lack of garbage collection
8 | // http://www.asciitable.com/
9 | export const ENGLISH_CHARACTER_CODE_START: i32 = 33;
10 | export const ENGLISH_CHARACTER_CODE_END: i32 = 126;
11 |
12 | // Get a random character from a character set
13 | export function getRandomCharacter(characterSet: string): string {
14 | let index: i32 = getRandomNumber() % characterSet.length;
15 | let newCharacter: string = characterSet.slice(index, index + 1);
16 | return newCharacter;
17 | }
18 |
19 | export function getRandomCharacterCode(start: i32, end: i32): u8 {
20 | let length = abs(end - start);
21 | return ((getRandomNumber() % length) + start) as u8;
22 | }
23 |
--------------------------------------------------------------------------------
/assembly/cli.ts:
--------------------------------------------------------------------------------
1 | // Convinience functions for our CLI
2 |
3 | import { Console } from "./wasa";
4 | import { GREEN, CYAN, RED, RESET, printColor } from "./ansi";
5 |
6 | export function showHelp(): void {
7 | Console.log("");
8 | printColor("wasm-matrix", GREEN);
9 | Console.log("");
10 |
11 | printColor("USAGE:", CYAN);
12 | Console.log("");
13 |
14 | Console.log("[wapm run] wasm-matrix -l $LINES -c $COLUMNS");
15 | Console.log("");
16 |
17 | printColor("FLAGS:", CYAN);
18 | Console.log("");
19 |
20 | Console.log("-l, --lines " + RED + "(REQUIRED)" + RESET);
21 | Console.log("Number of lines (rows) to render the matrix");
22 | Console.log("Suggested: $LINES [Bash Variable], Default: 24");
23 | Console.log("");
24 |
25 | Console.log("-c, --columns " + RED + "(REQUIRED)" + RESET);
26 | Console.log("Number of columns to render the matrix");
27 | Console.log("Suggested: $COLUMNS [Bash Variable], Default: 80");
28 | Console.log("");
29 |
30 | Console.log("-s, --speed");
31 | Console.log("Speed of the matrix");
32 | Console.log("Suggested: 1, Default: 1");
33 | Console.log("");
34 | }
35 |
--------------------------------------------------------------------------------
/assembly/droplet.ts:
--------------------------------------------------------------------------------
1 | // Matrix Droplets
2 |
3 | import { getRandomNumber, rotateArrayRight } from "./utils";
4 | import {
5 | ENGLISH_CHARACTER_CODE_START,
6 | ENGLISH_CHARACTER_CODE_END,
7 | getRandomCharacterCode
8 | } from "./characters";
9 | import { GREEN, WHITE, printColor, moveCursorToPosition } from "./ansi";
10 |
11 | // Our Droplet Class
12 | export class Droplet {
13 | column: i32;
14 | row: i32;
15 | // Going to use a character code array here
16 | // instead of a string to fix memory issues
17 | characterCodeArray: Array;
18 | speed: i32;
19 | height: i32;
20 | }
21 |
22 | // Function to create a droplet
23 | export function createDroplet(column: i32, lines: i32): Droplet {
24 | // Create the droplet
25 | let droplet: Droplet = new Droplet();
26 |
27 | // Populate the droplet values
28 | droplet.column = column;
29 | droplet.row = getRandomNumber() % lines;
30 | droplet.height = (getRandomNumber() % (lines / 2)) + 3;
31 | droplet.speed = (getRandomNumber() % 2) + 1;
32 |
33 | // Create our initial string
34 | droplet.characterCodeArray = new Array(droplet.height);
35 | for (let i = 0; i < droplet.height; i++) {
36 | droplet.characterCodeArray[i] = getRandomCharacterCode(
37 | ENGLISH_CHARACTER_CODE_START,
38 | ENGLISH_CHARACTER_CODE_END
39 | );
40 | }
41 |
42 | return droplet;
43 | }
44 |
45 | // "Moves" a droplet down the screen
46 | export function updateDroplet(droplet: Droplet, lines: i32): void {
47 | // Increase the droplet row
48 | droplet.row += droplet.speed;
49 |
50 | // Wrap the rows so it comes back from up top
51 | if (droplet.row >= droplet.height + lines) {
52 | droplet.row = 0 - droplet.height;
53 | }
54 |
55 | // Rotate down the old characters
56 | // How many characters to rotate
57 | for (let i = 0; i < droplet.speed; i++) {
58 | rotateArrayRight(droplet.characterCodeArray);
59 | }
60 |
61 | // Add some new characters
62 | // To replace the old rotated ones
63 | for (let i = 0; i < droplet.speed; i++) {
64 | droplet.characterCodeArray[i] = getRandomCharacterCode(
65 | ENGLISH_CHARACTER_CODE_START,
66 | ENGLISH_CHARACTER_CODE_END
67 | );
68 | }
69 | }
70 |
71 | // Places a droplet (and its characters) onto the screen
72 | export function drawDroplet(droplet: Droplet, lines: i32): void {
73 | // Loop over our characters
74 | for (let i = 0; i < droplet.characterCodeArray.length; i++) {
75 | let cursorRow = droplet.row + i;
76 |
77 | if (cursorRow >= 0 && cursorRow <= lines) {
78 | // Move the cursor to the correct position
79 | moveCursorToPosition(droplet.column, cursorRow);
80 |
81 | // Get our color
82 | let color: string = GREEN;
83 | if (i === droplet.characterCodeArray.length - 1) {
84 | color = WHITE;
85 | }
86 |
87 | // Draw the character
88 | // TODO: Optimize this, and try to remove generating / manipulating.
89 | // Perhpas write the character Codes Array directly?
90 | printColor(String.fromCharCode(droplet.characterCodeArray[i]), color);
91 | }
92 | }
93 | }
94 |
--------------------------------------------------------------------------------
/assembly/env.ts:
--------------------------------------------------------------------------------
1 | // Any Env overrides
2 |
3 | import { Console } from "./wasa";
4 |
5 | // https://github.com/AssemblyScript/assemblyscript/blob/master/std/assembly/env.ts
6 | // https://github.com/AssemblyScript/assemblyscript/issues/388
7 | @global
8 | export function wasiabort(
9 | message: string | null = "",
10 | fileName: string | null = "",
11 | lineNumber: u32 = 0,
12 | columnNumber: u32 = 0
13 | ): void {
14 | Console.error(message);
15 | }
16 |
--------------------------------------------------------------------------------
/assembly/index.ts:
--------------------------------------------------------------------------------
1 | // The entry file of your WebAssembly module.
2 |
3 | // Import our Allocator
4 | import "allocator/arena";
5 |
6 | // Export our env overrides
7 | export { wasiabort } from "./env";
8 |
9 | // Import all of our utils and things
10 | import { showHelp } from "./cli";
11 | import { RED, printColor, flushConsole } from "./ansi";
12 | import { Droplet, createDroplet, updateDroplet, drawDroplet } from "./droplet";
13 | import { sleep } from "./utils";
14 |
15 | // Import our CommandLine for grabbing args
16 | import { CommandLine } from "./wasa";
17 |
18 | // Entry point into WASI Module
19 | // _start may be renamed
20 | // https://github.com/WebAssembly/WASI/issues/19
21 | export function _start(): void {
22 | // Set to the default linux terminal size
23 | let columns: i32 = 80;
24 | let lines: i32 = 24;
25 |
26 | // Set to the default speed
27 | let speed: i32 = 10;
28 |
29 | // Parse command line arguments
30 | let commandLine = new CommandLine();
31 | let args: Array = commandLine.all();
32 |
33 | if (args.length <= 1) {
34 | showHelp();
35 | return;
36 | }
37 |
38 | for (let i = 0; i < args.length; i++) {
39 | let arg: string = args[i];
40 |
41 | if (arg == "-l" || arg == "--lines") {
42 | lines = parseInt(args[i + 1]) as i32;
43 | i++;
44 |
45 | if (lines < 1) {
46 | printColor("Please enter a lines greater than zero", RED);
47 | return;
48 | }
49 | } else if (arg == "-c" || arg == "--columns") {
50 | columns = parseInt(args[i + 1]) as i32;
51 | i++;
52 |
53 | if (columns < 1) {
54 | printColor("Please enter a column greater than zero", RED);
55 | return;
56 | }
57 | } else if (arg == "-s" || arg == "--speed") {
58 | speed = parseInt(args[i + 1]) as i32;
59 | i++;
60 |
61 | if (speed < 1 || speed > 20) {
62 | printColor("Please enter a speed >=1 and <= 20", RED);
63 | return;
64 | }
65 | } else if (arg == "-h" || arg == "--help") {
66 | showHelp();
67 | return;
68 | }
69 | }
70 |
71 | // Create all of our droplets
72 | const droplets: Droplet[] = new Array(columns);
73 | for (let i = 0; i < columns; i++) {
74 | droplets[i] = createDroplet(i, lines);
75 | }
76 |
77 | while (true) {
78 | // Update our droplets
79 | for (let i = 0; i < droplets.length; i++) {
80 | updateDroplet(droplets[i], lines);
81 | }
82 |
83 | // Clear the screen
84 | flushConsole();
85 |
86 | // Draw the droplets
87 | for (let i = 0; i < droplets.length; i++) {
88 | drawDroplet(droplets[i], lines);
89 | }
90 |
91 | sleep(20 - speed);
92 |
93 | // Done!
94 | }
95 | }
96 |
--------------------------------------------------------------------------------
/assembly/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../node_modules/assemblyscript/std/assembly.json",
3 | "include": [
4 | "./**/*.ts"
5 | ]
6 | }
--------------------------------------------------------------------------------
/assembly/utils.ts:
--------------------------------------------------------------------------------
1 | // Some util functions
2 |
3 | import { clockid, clock_time_get, random_get, errno } from "bindings/wasi";
4 |
5 | // Our recycled random byte pointer
6 | let randomBytePointer = memory.allocate(1);
7 | export function getRandomNumber(): i32 {
8 | if (random_get(randomBytePointer, 1) != errno.SUCCESS) {
9 | abort();
10 | }
11 | return load(randomBytePointer) as i32;
12 | }
13 |
14 | export function rotateArrayRight(data: Array): void {
15 | for (let i: i32 = 0; i < data.length - 1; i++) {
16 | let rightElement: u8 = data[i + 1];
17 | data[i + 1] = data[i];
18 | data[i] = rightElement;
19 | }
20 | }
21 |
22 | export function sleep(sleepTicks: i32): void {
23 | let lastTime: i32 = getTimeCounter();
24 |
25 | let shouldLoop: boolean = true;
26 |
27 | while (shouldLoop) {
28 | let currentTime: i32 = getTimeCounter();
29 |
30 | // See if it is time to update
31 | if (abs(lastTime - currentTime) > sleepTicks) {
32 | shouldLoop = false;
33 | }
34 | }
35 | }
36 |
37 | // Recycle a time pointer to save memory
38 | let timeCounterPointer = memory.allocate(8);
39 | function getTimeCounter(): i32 {
40 | clock_time_get(clockid.REALTIME, 1000, timeCounterPointer);
41 | let timestamp = load(timeCounterPointer);
42 | // Divide by a large number here to get a reasonable counter
43 | // As the timestamp is very large
44 | return (timestamp / 10000000) as i32;
45 | }
46 |
--------------------------------------------------------------------------------
/assembly/wasa.ts:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | THIS CODE IS FROM ANOTHER PROJECT!!!
4 | Slightly modified for specific uses
5 | https://github.com/jedisct1/wasa
6 | This is a slimmed down version of their code
7 | To help with module size, compilation errors,
8 | and ease of use.
9 |
10 | MIT License
11 |
12 | Copyright (c) 2019 Frank Denis
13 |
14 | Permission is hereby granted, free of charge, to any person obtaining a copy
15 | of this software and associated documentation files (the "Software"), to deal
16 | in the Software without restriction, including without limitation the rights
17 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
18 | copies of the Software, and to permit persons to whom the Software is
19 | furnished to do so, subject to the following conditions:
20 |
21 | The above copyright notice and this permission notice shall be included in all
22 | copies or substantial portions of the Software.
23 |
24 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
25 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
26 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
27 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
28 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
29 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
30 | SOFTWARE.
31 |
32 | */
33 |
34 | import {
35 | errno,
36 | clockid,
37 | fd_write,
38 | fd_read,
39 | random_get,
40 | clock_time_get,
41 | clock_res_get,
42 | proc_exit,
43 | environ_sizes_get,
44 | environ_get,
45 | args_sizes_get,
46 | args_get,
47 | path_open,
48 | oflags,
49 | rights,
50 | lookupflags,
51 | fd,
52 | fdflags,
53 | fd_close
54 | } from "bindings/wasi";
55 |
56 | export type Descriptor = fd;
57 |
58 | export class IO {
59 | /**
60 | * Close a file descriptor
61 | * @param fd file descriptor
62 | */
63 | static close(fd: Descriptor): void {
64 | fd_close(fd);
65 | }
66 |
67 | /**
68 | * Write data to a file descriptor
69 | * @param fd file descriptor
70 | * @param data data
71 | */
72 | static write(fd: Descriptor, data: Array): void {
73 | let data_buf_len = data.length;
74 | let data_buf = memory.allocate(data_buf_len);
75 | for (let i = 0; i < data_buf_len; i++) {
76 | store(data_buf + i, unchecked(data[i]));
77 | }
78 | let iov = memory.allocate(2 * sizeof());
79 | store(iov, data_buf);
80 | store(iov + sizeof(), data_buf_len);
81 | let written_ptr = memory.allocate(sizeof());
82 | fd_write(fd, iov, 1, written_ptr);
83 | memory.free(written_ptr);
84 | memory.free(data_buf);
85 | memory.free(iov);
86 | }
87 |
88 | /**
89 | * Write a string to a file descriptor, after encoding it to UTF8
90 | * @param fd file descriptor
91 | * @param s string
92 | * @param newline `true` to add a newline after the string
93 | */
94 | static writeString(fd: Descriptor, s: string, newline: bool = false): void {
95 | if (newline) {
96 | this.writeStringLn(fd, s);
97 | return;
98 | }
99 | let s_utf8_len: usize = s.lengthUTF8 - 1;
100 | let s_utf8 = s.toUTF8();
101 | let iov = memory.allocate(2 * sizeof());
102 | store(iov, s_utf8);
103 | store(iov + sizeof(), s_utf8_len);
104 | let written_ptr = memory.allocate(sizeof());
105 | fd_write(fd, iov, 1, written_ptr);
106 | memory.free(written_ptr);
107 | memory.free(s_utf8);
108 | memory.free(iov);
109 | }
110 |
111 | /**
112 | * Write a string to a file descriptor, after encoding it to UTF8, with a newline
113 | * @param fd file descriptor
114 | * @param s string
115 | */
116 | static writeStringLn(fd: Descriptor, s: string): void {
117 | let s_utf8_len: usize = s.lengthUTF8 - 1;
118 | let s_utf8 = s.toUTF8();
119 | let iov = memory.allocate(4 * sizeof());
120 | store(iov, s_utf8);
121 | store(iov + sizeof(), s_utf8_len);
122 | let lf = memory.allocate(1);
123 | store(lf, 10);
124 | store(iov + sizeof() * 2, lf);
125 | store(iov + sizeof() * 3, 1);
126 | let written_ptr = memory.allocate(sizeof());
127 | fd_write(fd, iov, 2, written_ptr);
128 | memory.free(written_ptr);
129 | memory.free(s_utf8);
130 | memory.free(iov);
131 | memory.free(lf);
132 | }
133 |
134 | /**
135 | * Read data from a file descriptor
136 | * @param fd file descriptor
137 | * @param data existing array to push data to
138 | * @param chunk_size chunk size (default: 4096)
139 | */
140 | static read(
141 | fd: Descriptor,
142 | data: Array = [],
143 | chunk_size: usize = 4096
144 | ): Array | null {
145 | let data_partial_len = chunk_size;
146 | let data_partial = memory.allocate(data_partial_len);
147 | let iov = memory.allocate(2 * sizeof());
148 | store(iov, data_partial);
149 | store(iov + sizeof(), data_partial_len);
150 | let read_ptr = memory.allocate(sizeof());
151 | fd_read(fd, iov, 1, read_ptr);
152 | let read = load(read_ptr);
153 | if (read > 0) {
154 | for (let i: usize = 0; i < read; i++) {
155 | data.push(load(data_partial + i));
156 | }
157 | }
158 | memory.free(read_ptr);
159 | memory.free(data_partial);
160 | memory.free(iov);
161 |
162 | if (read <= 0) {
163 | return null;
164 | }
165 | return data;
166 | }
167 |
168 | /**
169 | * Read from a file descriptor until the end of the stream
170 | * @param fd file descriptor
171 | * @param data existing array to push data to
172 | * @param chunk_size chunk size (default: 4096)
173 | */
174 | static readAll(
175 | fd: Descriptor,
176 | data: Array = [],
177 | chunk_size: usize = 4096
178 | ): Array | null {
179 | let data_partial_len = chunk_size;
180 | let data_partial = memory.allocate(data_partial_len);
181 | let iov = memory.allocate(2 * sizeof());
182 | store(iov, data_partial);
183 | store(iov + sizeof(), data_partial_len);
184 | let read_ptr = memory.allocate(sizeof());
185 | let read: usize = 0;
186 | for (;;) {
187 | if (fd_read(fd, iov, 1, read_ptr) != errno.SUCCESS) {
188 | break;
189 | }
190 | read = load(read_ptr);
191 | if (read <= 0) {
192 | break;
193 | }
194 | for (let i: usize = 0; i < read; i++) {
195 | data.push(load(data_partial + i));
196 | }
197 | }
198 | memory.free(read_ptr);
199 | memory.free(data_partial);
200 | memory.free(iov);
201 |
202 | if (read < 0) {
203 | return null;
204 | }
205 | return data;
206 | }
207 |
208 | /**
209 | * Read an UTF8 string from a file descriptor, convert it to a native string
210 | * @param fd file descriptor
211 | * @param chunk_size chunk size (default: 4096)
212 | */
213 | static readString(fd: Descriptor, chunk_size: usize = 4096): string | null {
214 | let s_utf8_ = IO.readAll(fd);
215 | if (s_utf8_ === null) {
216 | return null;
217 | }
218 | let s_utf8 = s_utf8_!;
219 | let s_utf8_len = s_utf8.length;
220 | let s_utf8_buf = memory.allocate(s_utf8_len);
221 | for (let i = 0; i < s_utf8_len; i++) {
222 | store(s_utf8_buf + i, s_utf8[i]);
223 | }
224 | let s = String.fromUTF8(s_utf8_buf, s_utf8.length);
225 | memory.free(s_utf8_buf);
226 |
227 | return s;
228 | }
229 | }
230 |
231 | @global
232 | export class Console {
233 | /**
234 | * Write a string to the console
235 | * @param s string
236 | * @param newline `false` to avoid inserting a newline after the string
237 | */
238 | static write(s: string, newline: bool = true): void {
239 | IO.writeString(1, s, newline);
240 | }
241 |
242 | /**
243 | * Read an UTF8 string from the console, convert it to a native string
244 | */
245 | static readAll(): string | null {
246 | return IO.readString(0);
247 | }
248 |
249 | /**
250 | * Alias for `Console.write()`
251 | */
252 | static log(s: string): void {
253 | this.write(s);
254 | }
255 |
256 | /**
257 | * Write an error to the console
258 | * @param s string
259 | * @param newline `false` to avoid inserting a newline after the string
260 | */
261 | static error(s: string, newline: bool = true): void {
262 | IO.writeString(2, s, newline);
263 | }
264 | }
265 |
266 | class StringUtils {
267 | static fromCString(cstring: usize): string {
268 | let size = 0;
269 | while (load(cstring + size) != 0) {
270 | size++;
271 | }
272 | return String.fromUTF8(cstring, size);
273 | }
274 | }
275 |
276 | export class CommandLine {
277 | args: Array;
278 |
279 | constructor() {
280 | this.args = [];
281 | let count_and_size = memory.allocate(2 * sizeof());
282 | let ret = args_sizes_get(count_and_size, count_and_size + 4);
283 | if (ret != errno.SUCCESS) {
284 | abort();
285 | }
286 | let count = load(count_and_size);
287 | let size = load(count_and_size + sizeof());
288 | let env_ptrs = memory.allocate((count + 1) * sizeof());
289 | let buf = memory.allocate(size);
290 | if (args_get(env_ptrs, buf) != errno.SUCCESS) {
291 | abort();
292 | }
293 | for (let i: usize = 0; i < count; i++) {
294 | let env_ptr = load(env_ptrs + i * sizeof());
295 | let arg = StringUtils.fromCString(env_ptr);
296 | this.args.push(arg);
297 | }
298 | memory.free(buf);
299 | memory.free(env_ptrs);
300 | memory.free(count_and_size);
301 | }
302 |
303 | /**
304 | * Return all the command-line arguments
305 | */
306 | all(): Array {
307 | return this.args;
308 | }
309 |
310 | /**
311 | * Return the i-th command-ine argument
312 | * @param i index
313 | */
314 | get(i: usize): string | null {
315 | let args_len: usize = this.args[0].length;
316 | if (i < args_len) {
317 | return this.args[i];
318 | }
319 | return null;
320 | }
321 | }
322 |
--------------------------------------------------------------------------------
/docs_assets/matrix-meme.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/torch2424/wasm-matrix/abdd03a928a325f2822d1ea44c28a512a852661b/docs_assets/matrix-meme.jpg
--------------------------------------------------------------------------------
/docs_assets/matrix.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/torch2424/wasm-matrix/abdd03a928a325f2822d1ea44c28a512a852661b/docs_assets/matrix.gif
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "wasm-matrix",
3 | "version": "0.0.2",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "@protobufjs/utf8": {
8 | "version": "1.1.0",
9 | "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
10 | "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=",
11 | "dev": true
12 | },
13 | "@samverschueren/stream-to-observable": {
14 | "version": "0.3.0",
15 | "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz",
16 | "integrity": "sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg==",
17 | "dev": true,
18 | "requires": {
19 | "any-observable": "^0.3.0"
20 | }
21 | },
22 | "@sindresorhus/is": {
23 | "version": "0.14.0",
24 | "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
25 | "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==",
26 | "dev": true
27 | },
28 | "@szmarczak/http-timer": {
29 | "version": "1.1.2",
30 | "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
31 | "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
32 | "dev": true,
33 | "requires": {
34 | "defer-to-connect": "^1.0.1"
35 | }
36 | },
37 | "@types/events": {
38 | "version": "3.0.0",
39 | "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz",
40 | "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==",
41 | "dev": true
42 | },
43 | "@types/glob": {
44 | "version": "7.1.1",
45 | "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz",
46 | "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==",
47 | "dev": true,
48 | "requires": {
49 | "@types/events": "*",
50 | "@types/minimatch": "*",
51 | "@types/node": "*"
52 | }
53 | },
54 | "@types/minimatch": {
55 | "version": "3.0.3",
56 | "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz",
57 | "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==",
58 | "dev": true
59 | },
60 | "@types/node": {
61 | "version": "12.0.2",
62 | "resolved": "https://registry.npmjs.org/@types/node/-/node-12.0.2.tgz",
63 | "integrity": "sha512-5tabW/i+9mhrfEOUcLDu2xBPsHJ+X5Orqy9FKpale3SjDA17j5AEpYq5vfy3oAeAHGcvANRCO3NV3d2D6q3NiA==",
64 | "dev": true
65 | },
66 | "@types/normalize-package-data": {
67 | "version": "2.4.0",
68 | "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
69 | "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==",
70 | "dev": true
71 | },
72 | "ansi-align": {
73 | "version": "2.0.0",
74 | "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz",
75 | "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=",
76 | "dev": true,
77 | "requires": {
78 | "string-width": "^2.0.0"
79 | }
80 | },
81 | "ansi-escapes": {
82 | "version": "3.2.0",
83 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
84 | "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
85 | "dev": true
86 | },
87 | "ansi-regex": {
88 | "version": "3.0.0",
89 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
90 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
91 | "dev": true
92 | },
93 | "ansi-styles": {
94 | "version": "3.2.1",
95 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
96 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
97 | "dev": true,
98 | "requires": {
99 | "color-convert": "^1.9.0"
100 | }
101 | },
102 | "any-observable": {
103 | "version": "0.3.0",
104 | "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz",
105 | "integrity": "sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==",
106 | "dev": true
107 | },
108 | "argparse": {
109 | "version": "1.0.10",
110 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
111 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
112 | "dev": true,
113 | "requires": {
114 | "sprintf-js": "~1.0.2"
115 | }
116 | },
117 | "array-differ": {
118 | "version": "2.1.0",
119 | "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-2.1.0.tgz",
120 | "integrity": "sha512-KbUpJgx909ZscOc/7CLATBFam7P1Z1QRQInvgT0UztM9Q72aGKCunKASAl7WNW0tnPmPyEMeMhdsfWhfmW037w==",
121 | "dev": true
122 | },
123 | "array-find-index": {
124 | "version": "1.0.2",
125 | "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
126 | "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
127 | "dev": true
128 | },
129 | "array-union": {
130 | "version": "1.0.2",
131 | "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
132 | "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
133 | "dev": true,
134 | "requires": {
135 | "array-uniq": "^1.0.1"
136 | }
137 | },
138 | "array-uniq": {
139 | "version": "1.0.3",
140 | "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
141 | "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
142 | "dev": true
143 | },
144 | "arrify": {
145 | "version": "1.0.1",
146 | "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
147 | "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
148 | "dev": true
149 | },
150 | "assemblyscript": {
151 | "version": "github:AssemblyScript/assemblyscript#36040d5b5312f19a025782b5e36663823494c2f3",
152 | "from": "github:AssemblyScript/assemblyscript",
153 | "dev": true,
154 | "requires": {
155 | "@protobufjs/utf8": "^1.1.0",
156 | "binaryen": "77.0.0-nightly.20190407",
157 | "glob": "^7.1.3",
158 | "long": "^4.0.0",
159 | "opencollective-postinstall": "^2.0.0",
160 | "source-map-support": "^0.5.11"
161 | }
162 | },
163 | "async-exit-hook": {
164 | "version": "2.0.1",
165 | "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz",
166 | "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==",
167 | "dev": true
168 | },
169 | "balanced-match": {
170 | "version": "1.0.0",
171 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
172 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
173 | "dev": true
174 | },
175 | "binaryen": {
176 | "version": "77.0.0-nightly.20190407",
177 | "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-77.0.0-nightly.20190407.tgz",
178 | "integrity": "sha512-1mxYNvQ0xywMe582K7V6Vo2zzhZZxMTeGHH8aE/+/AND8f64D8Q1GThVY3RVRwGY/4p+p95ccw9Xbw2ovFXRIg==",
179 | "dev": true
180 | },
181 | "boxen": {
182 | "version": "1.3.0",
183 | "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz",
184 | "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==",
185 | "dev": true,
186 | "requires": {
187 | "ansi-align": "^2.0.0",
188 | "camelcase": "^4.0.0",
189 | "chalk": "^2.0.1",
190 | "cli-boxes": "^1.0.0",
191 | "string-width": "^2.0.0",
192 | "term-size": "^1.2.0",
193 | "widest-line": "^2.0.0"
194 | }
195 | },
196 | "brace-expansion": {
197 | "version": "1.1.11",
198 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
199 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
200 | "dev": true,
201 | "requires": {
202 | "balanced-match": "^1.0.0",
203 | "concat-map": "0.0.1"
204 | }
205 | },
206 | "buffer-from": {
207 | "version": "1.1.2",
208 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
209 | "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
210 | "dev": true
211 | },
212 | "builtins": {
213 | "version": "1.0.3",
214 | "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz",
215 | "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=",
216 | "dev": true
217 | },
218 | "cacheable-request": {
219 | "version": "6.0.0",
220 | "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.0.0.tgz",
221 | "integrity": "sha512-2N7AmszH/WPPpl5Z3XMw1HAP+8d+xugnKQAeKvxFZ/04dbT/CAznqwbl+7eSr3HkwdepNwtb2yx3CAMQWvG01Q==",
222 | "dev": true,
223 | "requires": {
224 | "clone-response": "^1.0.2",
225 | "get-stream": "^4.0.0",
226 | "http-cache-semantics": "^4.0.0",
227 | "keyv": "^3.0.0",
228 | "lowercase-keys": "^1.0.1",
229 | "normalize-url": "^3.1.0",
230 | "responselike": "^1.0.2"
231 | }
232 | },
233 | "caller-callsite": {
234 | "version": "2.0.0",
235 | "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
236 | "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=",
237 | "dev": true,
238 | "requires": {
239 | "callsites": "^2.0.0"
240 | }
241 | },
242 | "caller-path": {
243 | "version": "2.0.0",
244 | "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz",
245 | "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=",
246 | "dev": true,
247 | "requires": {
248 | "caller-callsite": "^2.0.0"
249 | }
250 | },
251 | "callsites": {
252 | "version": "2.0.0",
253 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
254 | "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=",
255 | "dev": true
256 | },
257 | "camelcase": {
258 | "version": "4.1.0",
259 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
260 | "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
261 | "dev": true
262 | },
263 | "camelcase-keys": {
264 | "version": "4.2.0",
265 | "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz",
266 | "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=",
267 | "dev": true,
268 | "requires": {
269 | "camelcase": "^4.1.0",
270 | "map-obj": "^2.0.0",
271 | "quick-lru": "^1.0.0"
272 | }
273 | },
274 | "capture-stack-trace": {
275 | "version": "1.0.1",
276 | "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz",
277 | "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==",
278 | "dev": true
279 | },
280 | "chalk": {
281 | "version": "2.4.2",
282 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
283 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
284 | "dev": true,
285 | "requires": {
286 | "ansi-styles": "^3.2.1",
287 | "escape-string-regexp": "^1.0.5",
288 | "supports-color": "^5.3.0"
289 | }
290 | },
291 | "chardet": {
292 | "version": "0.7.0",
293 | "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
294 | "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
295 | "dev": true
296 | },
297 | "ci-info": {
298 | "version": "2.0.0",
299 | "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
300 | "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
301 | "dev": true
302 | },
303 | "cli-boxes": {
304 | "version": "1.0.0",
305 | "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz",
306 | "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=",
307 | "dev": true
308 | },
309 | "cli-cursor": {
310 | "version": "2.1.0",
311 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
312 | "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
313 | "dev": true,
314 | "requires": {
315 | "restore-cursor": "^2.0.0"
316 | }
317 | },
318 | "cli-truncate": {
319 | "version": "0.2.1",
320 | "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz",
321 | "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=",
322 | "dev": true,
323 | "requires": {
324 | "slice-ansi": "0.0.4",
325 | "string-width": "^1.0.1"
326 | },
327 | "dependencies": {
328 | "ansi-regex": {
329 | "version": "2.1.1",
330 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
331 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
332 | "dev": true
333 | },
334 | "is-fullwidth-code-point": {
335 | "version": "1.0.0",
336 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
337 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
338 | "dev": true,
339 | "requires": {
340 | "number-is-nan": "^1.0.0"
341 | }
342 | },
343 | "string-width": {
344 | "version": "1.0.2",
345 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
346 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
347 | "dev": true,
348 | "requires": {
349 | "code-point-at": "^1.0.0",
350 | "is-fullwidth-code-point": "^1.0.0",
351 | "strip-ansi": "^3.0.0"
352 | }
353 | },
354 | "strip-ansi": {
355 | "version": "3.0.1",
356 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
357 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
358 | "dev": true,
359 | "requires": {
360 | "ansi-regex": "^2.0.0"
361 | }
362 | }
363 | }
364 | },
365 | "cli-width": {
366 | "version": "2.2.0",
367 | "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
368 | "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
369 | "dev": true
370 | },
371 | "clone-response": {
372 | "version": "1.0.2",
373 | "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
374 | "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
375 | "dev": true,
376 | "requires": {
377 | "mimic-response": "^1.0.0"
378 | }
379 | },
380 | "code-point-at": {
381 | "version": "1.1.0",
382 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
383 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
384 | "dev": true
385 | },
386 | "color-convert": {
387 | "version": "1.9.3",
388 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
389 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
390 | "dev": true,
391 | "requires": {
392 | "color-name": "1.1.3"
393 | }
394 | },
395 | "color-name": {
396 | "version": "1.1.3",
397 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
398 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
399 | "dev": true
400 | },
401 | "concat-map": {
402 | "version": "0.0.1",
403 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
404 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
405 | "dev": true
406 | },
407 | "configstore": {
408 | "version": "3.1.2",
409 | "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz",
410 | "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==",
411 | "dev": true,
412 | "requires": {
413 | "dot-prop": "^4.1.0",
414 | "graceful-fs": "^4.1.2",
415 | "make-dir": "^1.0.0",
416 | "unique-string": "^1.0.0",
417 | "write-file-atomic": "^2.0.0",
418 | "xdg-basedir": "^3.0.0"
419 | }
420 | },
421 | "cosmiconfig": {
422 | "version": "5.2.1",
423 | "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
424 | "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
425 | "dev": true,
426 | "requires": {
427 | "import-fresh": "^2.0.0",
428 | "is-directory": "^0.3.1",
429 | "js-yaml": "^3.13.1",
430 | "parse-json": "^4.0.0"
431 | }
432 | },
433 | "create-error-class": {
434 | "version": "3.0.2",
435 | "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz",
436 | "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=",
437 | "dev": true,
438 | "requires": {
439 | "capture-stack-trace": "^1.0.0"
440 | }
441 | },
442 | "cross-spawn": {
443 | "version": "6.0.5",
444 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
445 | "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
446 | "dev": true,
447 | "requires": {
448 | "nice-try": "^1.0.4",
449 | "path-key": "^2.0.1",
450 | "semver": "^5.5.0",
451 | "shebang-command": "^1.2.0",
452 | "which": "^1.2.9"
453 | }
454 | },
455 | "crypto-random-string": {
456 | "version": "1.0.0",
457 | "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz",
458 | "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=",
459 | "dev": true
460 | },
461 | "currently-unhandled": {
462 | "version": "0.4.1",
463 | "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
464 | "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
465 | "dev": true,
466 | "requires": {
467 | "array-find-index": "^1.0.1"
468 | }
469 | },
470 | "date-fns": {
471 | "version": "1.30.1",
472 | "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz",
473 | "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==",
474 | "dev": true
475 | },
476 | "decamelize": {
477 | "version": "1.2.0",
478 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
479 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
480 | "dev": true
481 | },
482 | "decamelize-keys": {
483 | "version": "1.1.0",
484 | "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz",
485 | "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=",
486 | "dev": true,
487 | "requires": {
488 | "decamelize": "^1.1.0",
489 | "map-obj": "^1.0.0"
490 | },
491 | "dependencies": {
492 | "map-obj": {
493 | "version": "1.0.1",
494 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
495 | "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
496 | "dev": true
497 | }
498 | }
499 | },
500 | "decompress-response": {
501 | "version": "3.3.0",
502 | "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
503 | "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
504 | "dev": true,
505 | "requires": {
506 | "mimic-response": "^1.0.0"
507 | }
508 | },
509 | "deep-extend": {
510 | "version": "0.6.0",
511 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
512 | "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
513 | "dev": true
514 | },
515 | "defer-to-connect": {
516 | "version": "1.0.2",
517 | "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.0.2.tgz",
518 | "integrity": "sha512-k09hcQcTDY+cwgiwa6PYKLm3jlagNzQ+RSvhjzESOGOx+MNOuXkxTfEvPrO1IOQ81tArCFYQgi631clB70RpQw==",
519 | "dev": true
520 | },
521 | "del": {
522 | "version": "4.1.1",
523 | "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz",
524 | "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==",
525 | "dev": true,
526 | "requires": {
527 | "@types/glob": "^7.1.1",
528 | "globby": "^6.1.0",
529 | "is-path-cwd": "^2.0.0",
530 | "is-path-in-cwd": "^2.0.0",
531 | "p-map": "^2.0.0",
532 | "pify": "^4.0.1",
533 | "rimraf": "^2.6.3"
534 | }
535 | },
536 | "dot-prop": {
537 | "version": "4.2.1",
538 | "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz",
539 | "integrity": "sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==",
540 | "dev": true,
541 | "requires": {
542 | "is-obj": "^1.0.0"
543 | }
544 | },
545 | "duplexer3": {
546 | "version": "0.1.4",
547 | "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
548 | "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
549 | "dev": true
550 | },
551 | "elegant-spinner": {
552 | "version": "1.0.1",
553 | "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz",
554 | "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=",
555 | "dev": true
556 | },
557 | "end-of-stream": {
558 | "version": "1.4.1",
559 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
560 | "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
561 | "dev": true,
562 | "requires": {
563 | "once": "^1.4.0"
564 | }
565 | },
566 | "error-ex": {
567 | "version": "1.3.2",
568 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
569 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
570 | "dev": true,
571 | "requires": {
572 | "is-arrayish": "^0.2.1"
573 | }
574 | },
575 | "escape-string-regexp": {
576 | "version": "1.0.5",
577 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
578 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
579 | "dev": true
580 | },
581 | "esprima": {
582 | "version": "4.0.1",
583 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
584 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
585 | "dev": true
586 | },
587 | "execa": {
588 | "version": "1.0.0",
589 | "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
590 | "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
591 | "dev": true,
592 | "requires": {
593 | "cross-spawn": "^6.0.0",
594 | "get-stream": "^4.0.0",
595 | "is-stream": "^1.1.0",
596 | "npm-run-path": "^2.0.0",
597 | "p-finally": "^1.0.0",
598 | "signal-exit": "^3.0.0",
599 | "strip-eof": "^1.0.0"
600 | }
601 | },
602 | "external-editor": {
603 | "version": "3.0.3",
604 | "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz",
605 | "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==",
606 | "dev": true,
607 | "requires": {
608 | "chardet": "^0.7.0",
609 | "iconv-lite": "^0.4.24",
610 | "tmp": "^0.0.33"
611 | }
612 | },
613 | "figures": {
614 | "version": "2.0.0",
615 | "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
616 | "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
617 | "dev": true,
618 | "requires": {
619 | "escape-string-regexp": "^1.0.5"
620 | }
621 | },
622 | "find-up": {
623 | "version": "3.0.0",
624 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
625 | "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
626 | "dev": true,
627 | "requires": {
628 | "locate-path": "^3.0.0"
629 | }
630 | },
631 | "fs.realpath": {
632 | "version": "1.0.0",
633 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
634 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
635 | "dev": true
636 | },
637 | "get-stdin": {
638 | "version": "7.0.0",
639 | "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz",
640 | "integrity": "sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==",
641 | "dev": true
642 | },
643 | "get-stream": {
644 | "version": "4.1.0",
645 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
646 | "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
647 | "dev": true,
648 | "requires": {
649 | "pump": "^3.0.0"
650 | }
651 | },
652 | "github-url-from-git": {
653 | "version": "1.5.0",
654 | "resolved": "https://registry.npmjs.org/github-url-from-git/-/github-url-from-git-1.5.0.tgz",
655 | "integrity": "sha1-+YX+3MCpqledyI16/waNVcxiUaA=",
656 | "dev": true
657 | },
658 | "glob": {
659 | "version": "7.1.4",
660 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
661 | "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
662 | "dev": true,
663 | "requires": {
664 | "fs.realpath": "^1.0.0",
665 | "inflight": "^1.0.4",
666 | "inherits": "2",
667 | "minimatch": "^3.0.4",
668 | "once": "^1.3.0",
669 | "path-is-absolute": "^1.0.0"
670 | }
671 | },
672 | "global-dirs": {
673 | "version": "0.1.1",
674 | "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz",
675 | "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=",
676 | "dev": true,
677 | "requires": {
678 | "ini": "^1.3.4"
679 | }
680 | },
681 | "globby": {
682 | "version": "6.1.0",
683 | "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
684 | "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
685 | "dev": true,
686 | "requires": {
687 | "array-union": "^1.0.1",
688 | "glob": "^7.0.3",
689 | "object-assign": "^4.0.1",
690 | "pify": "^2.0.0",
691 | "pinkie-promise": "^2.0.0"
692 | },
693 | "dependencies": {
694 | "pify": {
695 | "version": "2.3.0",
696 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
697 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
698 | "dev": true
699 | }
700 | }
701 | },
702 | "got": {
703 | "version": "9.6.0",
704 | "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
705 | "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
706 | "dev": true,
707 | "requires": {
708 | "@sindresorhus/is": "^0.14.0",
709 | "@szmarczak/http-timer": "^1.1.2",
710 | "cacheable-request": "^6.0.0",
711 | "decompress-response": "^3.3.0",
712 | "duplexer3": "^0.1.4",
713 | "get-stream": "^4.1.0",
714 | "lowercase-keys": "^1.0.1",
715 | "mimic-response": "^1.0.1",
716 | "p-cancelable": "^1.0.0",
717 | "to-readable-stream": "^1.0.0",
718 | "url-parse-lax": "^3.0.0"
719 | }
720 | },
721 | "graceful-fs": {
722 | "version": "4.1.15",
723 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
724 | "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==",
725 | "dev": true
726 | },
727 | "has-ansi": {
728 | "version": "2.0.0",
729 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
730 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
731 | "dev": true,
732 | "requires": {
733 | "ansi-regex": "^2.0.0"
734 | },
735 | "dependencies": {
736 | "ansi-regex": {
737 | "version": "2.1.1",
738 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
739 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
740 | "dev": true
741 | }
742 | }
743 | },
744 | "has-flag": {
745 | "version": "3.0.0",
746 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
747 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
748 | "dev": true
749 | },
750 | "has-yarn": {
751 | "version": "2.1.0",
752 | "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz",
753 | "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==",
754 | "dev": true
755 | },
756 | "hosted-git-info": {
757 | "version": "2.8.9",
758 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
759 | "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
760 | "dev": true
761 | },
762 | "http-cache-semantics": {
763 | "version": "4.0.3",
764 | "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz",
765 | "integrity": "sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew==",
766 | "dev": true
767 | },
768 | "husky": {
769 | "version": "2.3.0",
770 | "resolved": "https://registry.npmjs.org/husky/-/husky-2.3.0.tgz",
771 | "integrity": "sha512-A/ZQSEILoq+mQM3yC3RIBSaw1bYXdkKnyyKVSUiJl+iBjVZc5LQEXdGY1ZjrDxC4IzfRPiJ0IqzEQGCN5TQa/A==",
772 | "dev": true,
773 | "requires": {
774 | "cosmiconfig": "^5.2.0",
775 | "execa": "^1.0.0",
776 | "find-up": "^3.0.0",
777 | "get-stdin": "^7.0.0",
778 | "is-ci": "^2.0.0",
779 | "pkg-dir": "^4.1.0",
780 | "please-upgrade-node": "^3.1.1",
781 | "read-pkg": "^5.1.1",
782 | "run-node": "^1.0.0",
783 | "slash": "^3.0.0"
784 | }
785 | },
786 | "iconv-lite": {
787 | "version": "0.4.24",
788 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
789 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
790 | "dev": true,
791 | "requires": {
792 | "safer-buffer": ">= 2.1.2 < 3"
793 | }
794 | },
795 | "ignore": {
796 | "version": "3.3.10",
797 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz",
798 | "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==",
799 | "dev": true
800 | },
801 | "import-fresh": {
802 | "version": "2.0.0",
803 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
804 | "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=",
805 | "dev": true,
806 | "requires": {
807 | "caller-path": "^2.0.0",
808 | "resolve-from": "^3.0.0"
809 | }
810 | },
811 | "import-lazy": {
812 | "version": "2.1.0",
813 | "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
814 | "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=",
815 | "dev": true
816 | },
817 | "imurmurhash": {
818 | "version": "0.1.4",
819 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
820 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
821 | "dev": true
822 | },
823 | "indent-string": {
824 | "version": "3.2.0",
825 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz",
826 | "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=",
827 | "dev": true
828 | },
829 | "inflight": {
830 | "version": "1.0.6",
831 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
832 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
833 | "dev": true,
834 | "requires": {
835 | "once": "^1.3.0",
836 | "wrappy": "1"
837 | }
838 | },
839 | "inherits": {
840 | "version": "2.0.3",
841 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
842 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
843 | "dev": true
844 | },
845 | "ini": {
846 | "version": "1.3.7",
847 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz",
848 | "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==",
849 | "dev": true
850 | },
851 | "inquirer": {
852 | "version": "6.3.1",
853 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.3.1.tgz",
854 | "integrity": "sha512-MmL624rfkFt4TG9y/Jvmt8vdmOo836U7Y0Hxr2aFk3RelZEGX4Igk0KabWrcaaZaTv9uzglOqWh1Vly+FAWAXA==",
855 | "dev": true,
856 | "requires": {
857 | "ansi-escapes": "^3.2.0",
858 | "chalk": "^2.4.2",
859 | "cli-cursor": "^2.1.0",
860 | "cli-width": "^2.0.0",
861 | "external-editor": "^3.0.3",
862 | "figures": "^2.0.0",
863 | "lodash": "^4.17.11",
864 | "mute-stream": "0.0.7",
865 | "run-async": "^2.2.0",
866 | "rxjs": "^6.4.0",
867 | "string-width": "^2.1.0",
868 | "strip-ansi": "^5.1.0",
869 | "through": "^2.3.6"
870 | }
871 | },
872 | "is-arrayish": {
873 | "version": "0.2.1",
874 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
875 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
876 | "dev": true
877 | },
878 | "is-ci": {
879 | "version": "2.0.0",
880 | "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
881 | "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
882 | "dev": true,
883 | "requires": {
884 | "ci-info": "^2.0.0"
885 | }
886 | },
887 | "is-directory": {
888 | "version": "0.3.1",
889 | "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
890 | "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
891 | "dev": true
892 | },
893 | "is-fullwidth-code-point": {
894 | "version": "2.0.0",
895 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
896 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
897 | "dev": true
898 | },
899 | "is-installed-globally": {
900 | "version": "0.1.0",
901 | "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz",
902 | "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=",
903 | "dev": true,
904 | "requires": {
905 | "global-dirs": "^0.1.0",
906 | "is-path-inside": "^1.0.0"
907 | },
908 | "dependencies": {
909 | "is-path-inside": {
910 | "version": "1.0.1",
911 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
912 | "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
913 | "dev": true,
914 | "requires": {
915 | "path-is-inside": "^1.0.1"
916 | }
917 | }
918 | }
919 | },
920 | "is-npm": {
921 | "version": "1.0.0",
922 | "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz",
923 | "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=",
924 | "dev": true
925 | },
926 | "is-obj": {
927 | "version": "1.0.1",
928 | "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
929 | "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
930 | "dev": true
931 | },
932 | "is-observable": {
933 | "version": "1.1.0",
934 | "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz",
935 | "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==",
936 | "dev": true,
937 | "requires": {
938 | "symbol-observable": "^1.1.0"
939 | }
940 | },
941 | "is-path-cwd": {
942 | "version": "2.1.0",
943 | "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.1.0.tgz",
944 | "integrity": "sha512-Sc5j3/YnM8tDeyCsVeKlm/0p95075DyLmDEIkSgQ7mXkrOX+uTCtmQFm0CYzVyJwcCCmO3k8qfJt17SxQwB5Zw==",
945 | "dev": true
946 | },
947 | "is-path-in-cwd": {
948 | "version": "2.1.0",
949 | "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz",
950 | "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==",
951 | "dev": true,
952 | "requires": {
953 | "is-path-inside": "^2.1.0"
954 | }
955 | },
956 | "is-path-inside": {
957 | "version": "2.1.0",
958 | "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz",
959 | "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==",
960 | "dev": true,
961 | "requires": {
962 | "path-is-inside": "^1.0.2"
963 | }
964 | },
965 | "is-plain-obj": {
966 | "version": "1.1.0",
967 | "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
968 | "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
969 | "dev": true
970 | },
971 | "is-promise": {
972 | "version": "2.1.0",
973 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
974 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
975 | "dev": true
976 | },
977 | "is-redirect": {
978 | "version": "1.0.0",
979 | "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz",
980 | "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=",
981 | "dev": true
982 | },
983 | "is-retry-allowed": {
984 | "version": "1.1.0",
985 | "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz",
986 | "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=",
987 | "dev": true
988 | },
989 | "is-scoped": {
990 | "version": "2.1.0",
991 | "resolved": "https://registry.npmjs.org/is-scoped/-/is-scoped-2.1.0.tgz",
992 | "integrity": "sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ==",
993 | "dev": true,
994 | "requires": {
995 | "scoped-regex": "^2.0.0"
996 | }
997 | },
998 | "is-stream": {
999 | "version": "1.1.0",
1000 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
1001 | "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
1002 | "dev": true
1003 | },
1004 | "is-wsl": {
1005 | "version": "1.1.0",
1006 | "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
1007 | "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=",
1008 | "dev": true
1009 | },
1010 | "isexe": {
1011 | "version": "2.0.0",
1012 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1013 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
1014 | "dev": true
1015 | },
1016 | "issue-regex": {
1017 | "version": "2.0.0",
1018 | "resolved": "https://registry.npmjs.org/issue-regex/-/issue-regex-2.0.0.tgz",
1019 | "integrity": "sha512-flaQ/45dMqCYSMzBQI/h3bcto6T70uN7kjNnI8n3gQU6no5p+QcnMWBNXkraED0YvbUymxKaqdvgPa09RZQM5A==",
1020 | "dev": true
1021 | },
1022 | "js-yaml": {
1023 | "version": "3.13.1",
1024 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
1025 | "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
1026 | "dev": true,
1027 | "requires": {
1028 | "argparse": "^1.0.7",
1029 | "esprima": "^4.0.0"
1030 | }
1031 | },
1032 | "json-buffer": {
1033 | "version": "3.0.0",
1034 | "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
1035 | "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=",
1036 | "dev": true
1037 | },
1038 | "json-parse-better-errors": {
1039 | "version": "1.0.2",
1040 | "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
1041 | "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
1042 | "dev": true
1043 | },
1044 | "keyv": {
1045 | "version": "3.1.0",
1046 | "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
1047 | "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
1048 | "dev": true,
1049 | "requires": {
1050 | "json-buffer": "3.0.0"
1051 | }
1052 | },
1053 | "latest-version": {
1054 | "version": "3.1.0",
1055 | "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz",
1056 | "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=",
1057 | "dev": true,
1058 | "requires": {
1059 | "package-json": "^4.0.0"
1060 | }
1061 | },
1062 | "listr": {
1063 | "version": "0.14.3",
1064 | "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz",
1065 | "integrity": "sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==",
1066 | "dev": true,
1067 | "requires": {
1068 | "@samverschueren/stream-to-observable": "^0.3.0",
1069 | "is-observable": "^1.1.0",
1070 | "is-promise": "^2.1.0",
1071 | "is-stream": "^1.1.0",
1072 | "listr-silent-renderer": "^1.1.1",
1073 | "listr-update-renderer": "^0.5.0",
1074 | "listr-verbose-renderer": "^0.5.0",
1075 | "p-map": "^2.0.0",
1076 | "rxjs": "^6.3.3"
1077 | }
1078 | },
1079 | "listr-input": {
1080 | "version": "0.1.3",
1081 | "resolved": "https://registry.npmjs.org/listr-input/-/listr-input-0.1.3.tgz",
1082 | "integrity": "sha512-dvjSD1MrWGXxxPixpMQlSBmkyqhJrPxGo30un25k/vlvFOWZj70AauU+YkEh7CA8vmpkE6Wde37DJDmqYqF39g==",
1083 | "dev": true,
1084 | "requires": {
1085 | "inquirer": "^3.3.0",
1086 | "rxjs": "^5.5.2",
1087 | "through": "^2.3.8"
1088 | },
1089 | "dependencies": {
1090 | "chardet": {
1091 | "version": "0.4.2",
1092 | "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz",
1093 | "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=",
1094 | "dev": true
1095 | },
1096 | "external-editor": {
1097 | "version": "2.2.0",
1098 | "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz",
1099 | "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==",
1100 | "dev": true,
1101 | "requires": {
1102 | "chardet": "^0.4.0",
1103 | "iconv-lite": "^0.4.17",
1104 | "tmp": "^0.0.33"
1105 | }
1106 | },
1107 | "inquirer": {
1108 | "version": "3.3.0",
1109 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz",
1110 | "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==",
1111 | "dev": true,
1112 | "requires": {
1113 | "ansi-escapes": "^3.0.0",
1114 | "chalk": "^2.0.0",
1115 | "cli-cursor": "^2.1.0",
1116 | "cli-width": "^2.0.0",
1117 | "external-editor": "^2.0.4",
1118 | "figures": "^2.0.0",
1119 | "lodash": "^4.3.0",
1120 | "mute-stream": "0.0.7",
1121 | "run-async": "^2.2.0",
1122 | "rx-lite": "^4.0.8",
1123 | "rx-lite-aggregates": "^4.0.8",
1124 | "string-width": "^2.1.0",
1125 | "strip-ansi": "^4.0.0",
1126 | "through": "^2.3.6"
1127 | }
1128 | },
1129 | "rxjs": {
1130 | "version": "5.5.12",
1131 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz",
1132 | "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==",
1133 | "dev": true,
1134 | "requires": {
1135 | "symbol-observable": "1.0.1"
1136 | }
1137 | },
1138 | "strip-ansi": {
1139 | "version": "4.0.0",
1140 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
1141 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
1142 | "dev": true,
1143 | "requires": {
1144 | "ansi-regex": "^3.0.0"
1145 | }
1146 | },
1147 | "symbol-observable": {
1148 | "version": "1.0.1",
1149 | "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz",
1150 | "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=",
1151 | "dev": true
1152 | }
1153 | }
1154 | },
1155 | "listr-silent-renderer": {
1156 | "version": "1.1.1",
1157 | "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz",
1158 | "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=",
1159 | "dev": true
1160 | },
1161 | "listr-update-renderer": {
1162 | "version": "0.5.0",
1163 | "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz",
1164 | "integrity": "sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==",
1165 | "dev": true,
1166 | "requires": {
1167 | "chalk": "^1.1.3",
1168 | "cli-truncate": "^0.2.1",
1169 | "elegant-spinner": "^1.0.1",
1170 | "figures": "^1.7.0",
1171 | "indent-string": "^3.0.0",
1172 | "log-symbols": "^1.0.2",
1173 | "log-update": "^2.3.0",
1174 | "strip-ansi": "^3.0.1"
1175 | },
1176 | "dependencies": {
1177 | "ansi-regex": {
1178 | "version": "2.1.1",
1179 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
1180 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
1181 | "dev": true
1182 | },
1183 | "ansi-styles": {
1184 | "version": "2.2.1",
1185 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
1186 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
1187 | "dev": true
1188 | },
1189 | "chalk": {
1190 | "version": "1.1.3",
1191 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
1192 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
1193 | "dev": true,
1194 | "requires": {
1195 | "ansi-styles": "^2.2.1",
1196 | "escape-string-regexp": "^1.0.2",
1197 | "has-ansi": "^2.0.0",
1198 | "strip-ansi": "^3.0.0",
1199 | "supports-color": "^2.0.0"
1200 | }
1201 | },
1202 | "figures": {
1203 | "version": "1.7.0",
1204 | "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
1205 | "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
1206 | "dev": true,
1207 | "requires": {
1208 | "escape-string-regexp": "^1.0.5",
1209 | "object-assign": "^4.1.0"
1210 | }
1211 | },
1212 | "log-symbols": {
1213 | "version": "1.0.2",
1214 | "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz",
1215 | "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=",
1216 | "dev": true,
1217 | "requires": {
1218 | "chalk": "^1.0.0"
1219 | }
1220 | },
1221 | "strip-ansi": {
1222 | "version": "3.0.1",
1223 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
1224 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
1225 | "dev": true,
1226 | "requires": {
1227 | "ansi-regex": "^2.0.0"
1228 | }
1229 | },
1230 | "supports-color": {
1231 | "version": "2.0.0",
1232 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
1233 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
1234 | "dev": true
1235 | }
1236 | }
1237 | },
1238 | "listr-verbose-renderer": {
1239 | "version": "0.5.0",
1240 | "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz",
1241 | "integrity": "sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==",
1242 | "dev": true,
1243 | "requires": {
1244 | "chalk": "^2.4.1",
1245 | "cli-cursor": "^2.1.0",
1246 | "date-fns": "^1.27.2",
1247 | "figures": "^2.0.0"
1248 | }
1249 | },
1250 | "load-json-file": {
1251 | "version": "4.0.0",
1252 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
1253 | "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
1254 | "dev": true,
1255 | "requires": {
1256 | "graceful-fs": "^4.1.2",
1257 | "parse-json": "^4.0.0",
1258 | "pify": "^3.0.0",
1259 | "strip-bom": "^3.0.0"
1260 | },
1261 | "dependencies": {
1262 | "pify": {
1263 | "version": "3.0.0",
1264 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
1265 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
1266 | "dev": true
1267 | }
1268 | }
1269 | },
1270 | "locate-path": {
1271 | "version": "3.0.0",
1272 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
1273 | "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
1274 | "dev": true,
1275 | "requires": {
1276 | "p-locate": "^3.0.0",
1277 | "path-exists": "^3.0.0"
1278 | }
1279 | },
1280 | "lodash": {
1281 | "version": "4.17.21",
1282 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
1283 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
1284 | "dev": true
1285 | },
1286 | "lodash.zip": {
1287 | "version": "4.2.0",
1288 | "resolved": "https://registry.npmjs.org/lodash.zip/-/lodash.zip-4.2.0.tgz",
1289 | "integrity": "sha1-7GZi5IlkCO1KtsVCo5kLcswIACA=",
1290 | "dev": true
1291 | },
1292 | "log-symbols": {
1293 | "version": "3.0.0",
1294 | "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz",
1295 | "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==",
1296 | "dev": true,
1297 | "requires": {
1298 | "chalk": "^2.4.2"
1299 | }
1300 | },
1301 | "log-update": {
1302 | "version": "2.3.0",
1303 | "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz",
1304 | "integrity": "sha1-iDKP19HOeTiykoN0bwsbwSayRwg=",
1305 | "dev": true,
1306 | "requires": {
1307 | "ansi-escapes": "^3.0.0",
1308 | "cli-cursor": "^2.0.0",
1309 | "wrap-ansi": "^3.0.1"
1310 | }
1311 | },
1312 | "long": {
1313 | "version": "4.0.0",
1314 | "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
1315 | "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==",
1316 | "dev": true
1317 | },
1318 | "loud-rejection": {
1319 | "version": "1.6.0",
1320 | "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
1321 | "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
1322 | "dev": true,
1323 | "requires": {
1324 | "currently-unhandled": "^0.4.1",
1325 | "signal-exit": "^3.0.0"
1326 | }
1327 | },
1328 | "lowercase-keys": {
1329 | "version": "1.0.1",
1330 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
1331 | "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
1332 | "dev": true
1333 | },
1334 | "lru-cache": {
1335 | "version": "4.1.5",
1336 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
1337 | "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
1338 | "dev": true,
1339 | "requires": {
1340 | "pseudomap": "^1.0.2",
1341 | "yallist": "^2.1.2"
1342 | }
1343 | },
1344 | "make-dir": {
1345 | "version": "1.3.0",
1346 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
1347 | "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
1348 | "dev": true,
1349 | "requires": {
1350 | "pify": "^3.0.0"
1351 | },
1352 | "dependencies": {
1353 | "pify": {
1354 | "version": "3.0.0",
1355 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
1356 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
1357 | "dev": true
1358 | }
1359 | }
1360 | },
1361 | "map-age-cleaner": {
1362 | "version": "0.1.3",
1363 | "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
1364 | "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
1365 | "dev": true,
1366 | "requires": {
1367 | "p-defer": "^1.0.0"
1368 | }
1369 | },
1370 | "map-obj": {
1371 | "version": "2.0.0",
1372 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz",
1373 | "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=",
1374 | "dev": true
1375 | },
1376 | "mem": {
1377 | "version": "4.3.0",
1378 | "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
1379 | "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==",
1380 | "dev": true,
1381 | "requires": {
1382 | "map-age-cleaner": "^0.1.1",
1383 | "mimic-fn": "^2.0.0",
1384 | "p-is-promise": "^2.0.0"
1385 | },
1386 | "dependencies": {
1387 | "mimic-fn": {
1388 | "version": "2.1.0",
1389 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
1390 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
1391 | "dev": true
1392 | }
1393 | }
1394 | },
1395 | "meow": {
1396 | "version": "5.0.0",
1397 | "resolved": "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz",
1398 | "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==",
1399 | "dev": true,
1400 | "requires": {
1401 | "camelcase-keys": "^4.0.0",
1402 | "decamelize-keys": "^1.0.0",
1403 | "loud-rejection": "^1.0.0",
1404 | "minimist-options": "^3.0.1",
1405 | "normalize-package-data": "^2.3.4",
1406 | "read-pkg-up": "^3.0.0",
1407 | "redent": "^2.0.0",
1408 | "trim-newlines": "^2.0.0",
1409 | "yargs-parser": "^10.0.0"
1410 | },
1411 | "dependencies": {
1412 | "find-up": {
1413 | "version": "2.1.0",
1414 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
1415 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
1416 | "dev": true,
1417 | "requires": {
1418 | "locate-path": "^2.0.0"
1419 | }
1420 | },
1421 | "locate-path": {
1422 | "version": "2.0.0",
1423 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
1424 | "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
1425 | "dev": true,
1426 | "requires": {
1427 | "p-locate": "^2.0.0",
1428 | "path-exists": "^3.0.0"
1429 | }
1430 | },
1431 | "p-limit": {
1432 | "version": "1.3.0",
1433 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
1434 | "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
1435 | "dev": true,
1436 | "requires": {
1437 | "p-try": "^1.0.0"
1438 | }
1439 | },
1440 | "p-locate": {
1441 | "version": "2.0.0",
1442 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
1443 | "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
1444 | "dev": true,
1445 | "requires": {
1446 | "p-limit": "^1.1.0"
1447 | }
1448 | },
1449 | "p-try": {
1450 | "version": "1.0.0",
1451 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
1452 | "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
1453 | "dev": true
1454 | },
1455 | "read-pkg": {
1456 | "version": "3.0.0",
1457 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
1458 | "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
1459 | "dev": true,
1460 | "requires": {
1461 | "load-json-file": "^4.0.0",
1462 | "normalize-package-data": "^2.3.2",
1463 | "path-type": "^3.0.0"
1464 | }
1465 | },
1466 | "read-pkg-up": {
1467 | "version": "3.0.0",
1468 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz",
1469 | "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=",
1470 | "dev": true,
1471 | "requires": {
1472 | "find-up": "^2.0.0",
1473 | "read-pkg": "^3.0.0"
1474 | }
1475 | }
1476 | }
1477 | },
1478 | "mimic-fn": {
1479 | "version": "1.2.0",
1480 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
1481 | "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
1482 | "dev": true
1483 | },
1484 | "mimic-response": {
1485 | "version": "1.0.1",
1486 | "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
1487 | "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
1488 | "dev": true
1489 | },
1490 | "minimatch": {
1491 | "version": "3.0.4",
1492 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
1493 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
1494 | "dev": true,
1495 | "requires": {
1496 | "brace-expansion": "^1.1.7"
1497 | }
1498 | },
1499 | "minimist": {
1500 | "version": "1.2.5",
1501 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
1502 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
1503 | "dev": true
1504 | },
1505 | "minimist-options": {
1506 | "version": "3.0.2",
1507 | "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz",
1508 | "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==",
1509 | "dev": true,
1510 | "requires": {
1511 | "arrify": "^1.0.1",
1512 | "is-plain-obj": "^1.1.0"
1513 | }
1514 | },
1515 | "mri": {
1516 | "version": "1.1.4",
1517 | "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz",
1518 | "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==",
1519 | "dev": true
1520 | },
1521 | "multimatch": {
1522 | "version": "3.0.0",
1523 | "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-3.0.0.tgz",
1524 | "integrity": "sha512-22foS/gqQfANZ3o+W7ST2x25ueHDVNWl/b9OlGcLpy/iKxjCpvcNCM51YCenUi7Mt/jAjjqv8JwZRs8YP5sRjA==",
1525 | "dev": true,
1526 | "requires": {
1527 | "array-differ": "^2.0.3",
1528 | "array-union": "^1.0.2",
1529 | "arrify": "^1.0.1",
1530 | "minimatch": "^3.0.4"
1531 | }
1532 | },
1533 | "mute-stream": {
1534 | "version": "0.0.7",
1535 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
1536 | "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
1537 | "dev": true
1538 | },
1539 | "nice-try": {
1540 | "version": "1.0.5",
1541 | "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
1542 | "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
1543 | "dev": true
1544 | },
1545 | "normalize-package-data": {
1546 | "version": "2.5.0",
1547 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
1548 | "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
1549 | "dev": true,
1550 | "requires": {
1551 | "hosted-git-info": "^2.1.4",
1552 | "resolve": "^1.10.0",
1553 | "semver": "2 || 3 || 4 || 5",
1554 | "validate-npm-package-license": "^3.0.1"
1555 | }
1556 | },
1557 | "normalize-url": {
1558 | "version": "3.3.0",
1559 | "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz",
1560 | "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==",
1561 | "dev": true
1562 | },
1563 | "np": {
1564 | "version": "5.0.1",
1565 | "resolved": "https://registry.npmjs.org/np/-/np-5.0.1.tgz",
1566 | "integrity": "sha512-2TiY5X0hbQEevPV0WjJ4Os0hjt+Ja3P7cDtiAqBU3jSgyT33Uv6P0g8lIkwLzeTaA8KJe9ykpszjB8DOo27m5Q==",
1567 | "dev": true,
1568 | "requires": {
1569 | "@samverschueren/stream-to-observable": "^0.3.0",
1570 | "any-observable": "^0.3.0",
1571 | "async-exit-hook": "^2.0.1",
1572 | "chalk": "^2.3.0",
1573 | "cosmiconfig": "^5.1.0",
1574 | "del": "^4.1.0",
1575 | "execa": "^1.0.0",
1576 | "github-url-from-git": "^1.5.0",
1577 | "has-yarn": "^2.1.0",
1578 | "hosted-git-info": "^2.7.1",
1579 | "inquirer": "^6.2.1",
1580 | "is-installed-globally": "^0.1.0",
1581 | "is-scoped": "^2.1.0",
1582 | "issue-regex": "^2.0.0",
1583 | "listr": "^0.14.3",
1584 | "listr-input": "^0.1.3",
1585 | "log-symbols": "^3.0.0",
1586 | "meow": "^5.0.0",
1587 | "npm-name": "^5.0.1",
1588 | "onetime": "^5.1.0",
1589 | "open": "^6.1.0",
1590 | "ow": "^0.12.0",
1591 | "p-memoize": "^3.1.0",
1592 | "p-timeout": "^3.1.0",
1593 | "pkg-dir": "^4.1.0",
1594 | "read-pkg-up": "^5.0.0",
1595 | "rxjs": "^6.3.3",
1596 | "semver": "^6.0.0",
1597 | "split": "^1.0.0",
1598 | "symbol-observable": "^1.2.0",
1599 | "terminal-link": "^1.2.0",
1600 | "update-notifier": "^2.1.0"
1601 | },
1602 | "dependencies": {
1603 | "semver": {
1604 | "version": "6.0.0",
1605 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.0.0.tgz",
1606 | "integrity": "sha512-0UewU+9rFapKFnlbirLi3byoOuhrSsli/z/ihNnvM24vgF+8sNBiI1LZPBSH9wJKUwaUbw+s3hToDLCXkrghrQ==",
1607 | "dev": true
1608 | }
1609 | }
1610 | },
1611 | "npm-name": {
1612 | "version": "5.3.0",
1613 | "resolved": "https://registry.npmjs.org/npm-name/-/npm-name-5.3.0.tgz",
1614 | "integrity": "sha512-w/Vq1px8uSEFGb0QOYei+Fr0VfIHnh0D1LzaFQOUFfVEzurF+UoQSASPg+6ZSlp0tvSlMjiMThJws/weBAV+IQ==",
1615 | "dev": true,
1616 | "requires": {
1617 | "got": "^9.6.0",
1618 | "is-scoped": "^1.0.0",
1619 | "lodash.zip": "^4.2.0",
1620 | "registry-auth-token": "^3.4.0",
1621 | "registry-url": "^4.0.0",
1622 | "validate-npm-package-name": "^3.0.0"
1623 | },
1624 | "dependencies": {
1625 | "is-scoped": {
1626 | "version": "1.0.0",
1627 | "resolved": "https://registry.npmjs.org/is-scoped/-/is-scoped-1.0.0.tgz",
1628 | "integrity": "sha1-RJypgpnnEwOCViieyytUDcQ3yzA=",
1629 | "dev": true,
1630 | "requires": {
1631 | "scoped-regex": "^1.0.0"
1632 | }
1633 | },
1634 | "scoped-regex": {
1635 | "version": "1.0.0",
1636 | "resolved": "https://registry.npmjs.org/scoped-regex/-/scoped-regex-1.0.0.tgz",
1637 | "integrity": "sha1-o0a7Gs1CB65wvXwMfKnlZra63bg=",
1638 | "dev": true
1639 | }
1640 | }
1641 | },
1642 | "npm-run-path": {
1643 | "version": "2.0.2",
1644 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
1645 | "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
1646 | "dev": true,
1647 | "requires": {
1648 | "path-key": "^2.0.0"
1649 | }
1650 | },
1651 | "number-is-nan": {
1652 | "version": "1.0.1",
1653 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
1654 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
1655 | "dev": true
1656 | },
1657 | "object-assign": {
1658 | "version": "4.1.1",
1659 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1660 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
1661 | "dev": true
1662 | },
1663 | "once": {
1664 | "version": "1.4.0",
1665 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1666 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
1667 | "dev": true,
1668 | "requires": {
1669 | "wrappy": "1"
1670 | }
1671 | },
1672 | "onetime": {
1673 | "version": "5.1.0",
1674 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz",
1675 | "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==",
1676 | "dev": true,
1677 | "requires": {
1678 | "mimic-fn": "^2.1.0"
1679 | },
1680 | "dependencies": {
1681 | "mimic-fn": {
1682 | "version": "2.1.0",
1683 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
1684 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
1685 | "dev": true
1686 | }
1687 | }
1688 | },
1689 | "open": {
1690 | "version": "6.3.0",
1691 | "resolved": "https://registry.npmjs.org/open/-/open-6.3.0.tgz",
1692 | "integrity": "sha512-6AHdrJxPvAXIowO/aIaeHZ8CeMdDf7qCyRNq8NwJpinmCdXhz+NZR7ie1Too94lpciCDsG+qHGO9Mt0svA4OqA==",
1693 | "dev": true,
1694 | "requires": {
1695 | "is-wsl": "^1.1.0"
1696 | }
1697 | },
1698 | "opencollective-postinstall": {
1699 | "version": "2.0.3",
1700 | "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz",
1701 | "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==",
1702 | "dev": true
1703 | },
1704 | "os-tmpdir": {
1705 | "version": "1.0.2",
1706 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
1707 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
1708 | "dev": true
1709 | },
1710 | "ow": {
1711 | "version": "0.12.0",
1712 | "resolved": "https://registry.npmjs.org/ow/-/ow-0.12.0.tgz",
1713 | "integrity": "sha512-GWAoq5RiK3HpMbwvM/aszyYYm7UvZzNfx5QPDbCXd52lROiDVBn6x6M06DhsL/Y8BTl42djQAPWhu6adaWwZyQ==",
1714 | "dev": true
1715 | },
1716 | "p-cancelable": {
1717 | "version": "1.1.0",
1718 | "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
1719 | "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==",
1720 | "dev": true
1721 | },
1722 | "p-defer": {
1723 | "version": "1.0.0",
1724 | "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
1725 | "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=",
1726 | "dev": true
1727 | },
1728 | "p-finally": {
1729 | "version": "1.0.0",
1730 | "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
1731 | "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
1732 | "dev": true
1733 | },
1734 | "p-is-promise": {
1735 | "version": "2.1.0",
1736 | "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz",
1737 | "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==",
1738 | "dev": true
1739 | },
1740 | "p-limit": {
1741 | "version": "2.2.0",
1742 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz",
1743 | "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==",
1744 | "dev": true,
1745 | "requires": {
1746 | "p-try": "^2.0.0"
1747 | }
1748 | },
1749 | "p-locate": {
1750 | "version": "3.0.0",
1751 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
1752 | "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
1753 | "dev": true,
1754 | "requires": {
1755 | "p-limit": "^2.0.0"
1756 | }
1757 | },
1758 | "p-map": {
1759 | "version": "2.1.0",
1760 | "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
1761 | "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
1762 | "dev": true
1763 | },
1764 | "p-memoize": {
1765 | "version": "3.1.0",
1766 | "resolved": "https://registry.npmjs.org/p-memoize/-/p-memoize-3.1.0.tgz",
1767 | "integrity": "sha512-e5tIvrsr7ydUUnxb534iQWtXxWgk/86IsH+H+nV4FHouIggBt4coXboKBt26o4lTu7JbEnGSeXdEsYR8BhAHFA==",
1768 | "dev": true,
1769 | "requires": {
1770 | "mem": "^4.3.0",
1771 | "mimic-fn": "^2.1.0"
1772 | },
1773 | "dependencies": {
1774 | "mimic-fn": {
1775 | "version": "2.1.0",
1776 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
1777 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
1778 | "dev": true
1779 | }
1780 | }
1781 | },
1782 | "p-timeout": {
1783 | "version": "3.1.0",
1784 | "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.1.0.tgz",
1785 | "integrity": "sha512-C27DYI+tCroT8J8cTEyySGydl2B7FlxrGNF5/wmMbl1V+jeehUCzEE/BVgzRebdm2K3ZitKOKx8YbdFumDyYmw==",
1786 | "dev": true,
1787 | "requires": {
1788 | "p-finally": "^1.0.0"
1789 | }
1790 | },
1791 | "p-try": {
1792 | "version": "2.2.0",
1793 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
1794 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
1795 | "dev": true
1796 | },
1797 | "package-json": {
1798 | "version": "4.0.1",
1799 | "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz",
1800 | "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=",
1801 | "dev": true,
1802 | "requires": {
1803 | "got": "^6.7.1",
1804 | "registry-auth-token": "^3.0.1",
1805 | "registry-url": "^3.0.3",
1806 | "semver": "^5.1.0"
1807 | },
1808 | "dependencies": {
1809 | "get-stream": {
1810 | "version": "3.0.0",
1811 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
1812 | "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
1813 | "dev": true
1814 | },
1815 | "got": {
1816 | "version": "6.7.1",
1817 | "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz",
1818 | "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=",
1819 | "dev": true,
1820 | "requires": {
1821 | "create-error-class": "^3.0.0",
1822 | "duplexer3": "^0.1.4",
1823 | "get-stream": "^3.0.0",
1824 | "is-redirect": "^1.0.0",
1825 | "is-retry-allowed": "^1.0.0",
1826 | "is-stream": "^1.0.0",
1827 | "lowercase-keys": "^1.0.0",
1828 | "safe-buffer": "^5.0.1",
1829 | "timed-out": "^4.0.0",
1830 | "unzip-response": "^2.0.1",
1831 | "url-parse-lax": "^1.0.0"
1832 | }
1833 | },
1834 | "prepend-http": {
1835 | "version": "1.0.4",
1836 | "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
1837 | "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
1838 | "dev": true
1839 | },
1840 | "registry-url": {
1841 | "version": "3.1.0",
1842 | "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz",
1843 | "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=",
1844 | "dev": true,
1845 | "requires": {
1846 | "rc": "^1.0.1"
1847 | }
1848 | },
1849 | "url-parse-lax": {
1850 | "version": "1.0.0",
1851 | "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
1852 | "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
1853 | "dev": true,
1854 | "requires": {
1855 | "prepend-http": "^1.0.1"
1856 | }
1857 | }
1858 | }
1859 | },
1860 | "parse-json": {
1861 | "version": "4.0.0",
1862 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
1863 | "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
1864 | "dev": true,
1865 | "requires": {
1866 | "error-ex": "^1.3.1",
1867 | "json-parse-better-errors": "^1.0.1"
1868 | }
1869 | },
1870 | "path-exists": {
1871 | "version": "3.0.0",
1872 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
1873 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
1874 | "dev": true
1875 | },
1876 | "path-is-absolute": {
1877 | "version": "1.0.1",
1878 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1879 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
1880 | "dev": true
1881 | },
1882 | "path-is-inside": {
1883 | "version": "1.0.2",
1884 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
1885 | "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
1886 | "dev": true
1887 | },
1888 | "path-key": {
1889 | "version": "2.0.1",
1890 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
1891 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
1892 | "dev": true
1893 | },
1894 | "path-parse": {
1895 | "version": "1.0.7",
1896 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
1897 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
1898 | "dev": true
1899 | },
1900 | "path-type": {
1901 | "version": "3.0.0",
1902 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
1903 | "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
1904 | "dev": true,
1905 | "requires": {
1906 | "pify": "^3.0.0"
1907 | },
1908 | "dependencies": {
1909 | "pify": {
1910 | "version": "3.0.0",
1911 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
1912 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
1913 | "dev": true
1914 | }
1915 | }
1916 | },
1917 | "pify": {
1918 | "version": "4.0.1",
1919 | "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
1920 | "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
1921 | "dev": true
1922 | },
1923 | "pinkie": {
1924 | "version": "2.0.4",
1925 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
1926 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
1927 | "dev": true
1928 | },
1929 | "pinkie-promise": {
1930 | "version": "2.0.1",
1931 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
1932 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
1933 | "dev": true,
1934 | "requires": {
1935 | "pinkie": "^2.0.0"
1936 | }
1937 | },
1938 | "pkg-dir": {
1939 | "version": "4.1.0",
1940 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.1.0.tgz",
1941 | "integrity": "sha512-55k9QN4saZ8q518lE6EFgYiu95u3BWkSajCifhdQjvLvmr8IpnRbhI+UGpWJQfa0KzDguHeeWT1ccO1PmkOi3A==",
1942 | "dev": true,
1943 | "requires": {
1944 | "find-up": "^3.0.0"
1945 | }
1946 | },
1947 | "please-upgrade-node": {
1948 | "version": "3.1.1",
1949 | "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz",
1950 | "integrity": "sha512-KY1uHnQ2NlQHqIJQpnh/i54rKkuxCEBx+voJIS/Mvb+L2iYd2NMotwduhKTMjfC1uKoX3VXOxLjIYG66dfJTVQ==",
1951 | "dev": true,
1952 | "requires": {
1953 | "semver-compare": "^1.0.0"
1954 | }
1955 | },
1956 | "prepend-http": {
1957 | "version": "2.0.0",
1958 | "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
1959 | "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=",
1960 | "dev": true
1961 | },
1962 | "prettier": {
1963 | "version": "1.17.1",
1964 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.17.1.tgz",
1965 | "integrity": "sha512-TzGRNvuUSmPgwivDqkZ9tM/qTGW9hqDKWOE9YHiyQdixlKbv7kvEqsmDPrcHJTKwthU774TQwZXVtaQ/mMsvjg==",
1966 | "dev": true
1967 | },
1968 | "pretty-quick": {
1969 | "version": "1.10.0",
1970 | "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-1.10.0.tgz",
1971 | "integrity": "sha512-uNvm2N3UWmnZRZrClyQI45hIbV20f5BpSyZY51Spbvn4APp9+XLyX4bCjWRGT3fGyVyQ/2/iw7dbQq1UUaq7SQ==",
1972 | "dev": true,
1973 | "requires": {
1974 | "chalk": "^2.3.0",
1975 | "execa": "^0.8.0",
1976 | "find-up": "^2.1.0",
1977 | "ignore": "^3.3.7",
1978 | "mri": "^1.1.0",
1979 | "multimatch": "^3.0.0"
1980 | },
1981 | "dependencies": {
1982 | "cross-spawn": {
1983 | "version": "5.1.0",
1984 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
1985 | "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
1986 | "dev": true,
1987 | "requires": {
1988 | "lru-cache": "^4.0.1",
1989 | "shebang-command": "^1.2.0",
1990 | "which": "^1.2.9"
1991 | }
1992 | },
1993 | "execa": {
1994 | "version": "0.8.0",
1995 | "resolved": "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz",
1996 | "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=",
1997 | "dev": true,
1998 | "requires": {
1999 | "cross-spawn": "^5.0.1",
2000 | "get-stream": "^3.0.0",
2001 | "is-stream": "^1.1.0",
2002 | "npm-run-path": "^2.0.0",
2003 | "p-finally": "^1.0.0",
2004 | "signal-exit": "^3.0.0",
2005 | "strip-eof": "^1.0.0"
2006 | }
2007 | },
2008 | "find-up": {
2009 | "version": "2.1.0",
2010 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
2011 | "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
2012 | "dev": true,
2013 | "requires": {
2014 | "locate-path": "^2.0.0"
2015 | }
2016 | },
2017 | "get-stream": {
2018 | "version": "3.0.0",
2019 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
2020 | "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
2021 | "dev": true
2022 | },
2023 | "locate-path": {
2024 | "version": "2.0.0",
2025 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
2026 | "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
2027 | "dev": true,
2028 | "requires": {
2029 | "p-locate": "^2.0.0",
2030 | "path-exists": "^3.0.0"
2031 | }
2032 | },
2033 | "p-limit": {
2034 | "version": "1.3.0",
2035 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
2036 | "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
2037 | "dev": true,
2038 | "requires": {
2039 | "p-try": "^1.0.0"
2040 | }
2041 | },
2042 | "p-locate": {
2043 | "version": "2.0.0",
2044 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
2045 | "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
2046 | "dev": true,
2047 | "requires": {
2048 | "p-limit": "^1.1.0"
2049 | }
2050 | },
2051 | "p-try": {
2052 | "version": "1.0.0",
2053 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
2054 | "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
2055 | "dev": true
2056 | }
2057 | }
2058 | },
2059 | "pseudomap": {
2060 | "version": "1.0.2",
2061 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
2062 | "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
2063 | "dev": true
2064 | },
2065 | "pump": {
2066 | "version": "3.0.0",
2067 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
2068 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
2069 | "dev": true,
2070 | "requires": {
2071 | "end-of-stream": "^1.1.0",
2072 | "once": "^1.3.1"
2073 | }
2074 | },
2075 | "quick-lru": {
2076 | "version": "1.1.0",
2077 | "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz",
2078 | "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=",
2079 | "dev": true
2080 | },
2081 | "rc": {
2082 | "version": "1.2.8",
2083 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
2084 | "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
2085 | "dev": true,
2086 | "requires": {
2087 | "deep-extend": "^0.6.0",
2088 | "ini": "~1.3.0",
2089 | "minimist": "^1.2.0",
2090 | "strip-json-comments": "~2.0.1"
2091 | }
2092 | },
2093 | "read-pkg": {
2094 | "version": "5.1.1",
2095 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.1.1.tgz",
2096 | "integrity": "sha512-dFcTLQi6BZ+aFUaICg7er+/usEoqFdQxiEBsEMNGoipenihtxxtdrQuBXvyANCEI8VuUIVYFgeHGx9sLLvim4w==",
2097 | "dev": true,
2098 | "requires": {
2099 | "@types/normalize-package-data": "^2.4.0",
2100 | "normalize-package-data": "^2.5.0",
2101 | "parse-json": "^4.0.0",
2102 | "type-fest": "^0.4.1"
2103 | }
2104 | },
2105 | "read-pkg-up": {
2106 | "version": "5.0.0",
2107 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-5.0.0.tgz",
2108 | "integrity": "sha512-XBQjqOBtTzyol2CpsQOw8LHV0XbDZVG7xMMjmXAJomlVY03WOBRmYgDJETlvcg0H63AJvPRwT7GFi5rvOzUOKg==",
2109 | "dev": true,
2110 | "requires": {
2111 | "find-up": "^3.0.0",
2112 | "read-pkg": "^5.0.0"
2113 | }
2114 | },
2115 | "redent": {
2116 | "version": "2.0.0",
2117 | "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz",
2118 | "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=",
2119 | "dev": true,
2120 | "requires": {
2121 | "indent-string": "^3.0.0",
2122 | "strip-indent": "^2.0.0"
2123 | }
2124 | },
2125 | "registry-auth-token": {
2126 | "version": "3.4.0",
2127 | "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz",
2128 | "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==",
2129 | "dev": true,
2130 | "requires": {
2131 | "rc": "^1.1.6",
2132 | "safe-buffer": "^5.0.1"
2133 | }
2134 | },
2135 | "registry-url": {
2136 | "version": "4.0.0",
2137 | "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-4.0.0.tgz",
2138 | "integrity": "sha512-WAfGLywivb8s2+Cfblq1UV+kOyzURHzWSJmciDvrmstr4bv/0lnVSB9jfoOfkxx5xNJ1OGlSFmZh9WYBLFJOPg==",
2139 | "dev": true,
2140 | "requires": {
2141 | "rc": "^1.2.7"
2142 | }
2143 | },
2144 | "resolve": {
2145 | "version": "1.10.1",
2146 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.1.tgz",
2147 | "integrity": "sha512-KuIe4mf++td/eFb6wkaPbMDnP6kObCaEtIDuHOUED6MNUo4K670KZUHuuvYPZDxNF0WVLw49n06M2m2dXphEzA==",
2148 | "dev": true,
2149 | "requires": {
2150 | "path-parse": "^1.0.6"
2151 | }
2152 | },
2153 | "resolve-from": {
2154 | "version": "3.0.0",
2155 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
2156 | "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
2157 | "dev": true
2158 | },
2159 | "responselike": {
2160 | "version": "1.0.2",
2161 | "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
2162 | "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
2163 | "dev": true,
2164 | "requires": {
2165 | "lowercase-keys": "^1.0.0"
2166 | }
2167 | },
2168 | "restore-cursor": {
2169 | "version": "2.0.0",
2170 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
2171 | "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
2172 | "dev": true,
2173 | "requires": {
2174 | "onetime": "^2.0.0",
2175 | "signal-exit": "^3.0.2"
2176 | },
2177 | "dependencies": {
2178 | "onetime": {
2179 | "version": "2.0.1",
2180 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
2181 | "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
2182 | "dev": true,
2183 | "requires": {
2184 | "mimic-fn": "^1.0.0"
2185 | }
2186 | }
2187 | }
2188 | },
2189 | "rimraf": {
2190 | "version": "2.6.3",
2191 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
2192 | "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
2193 | "dev": true,
2194 | "requires": {
2195 | "glob": "^7.1.3"
2196 | }
2197 | },
2198 | "run-async": {
2199 | "version": "2.3.0",
2200 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
2201 | "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
2202 | "dev": true,
2203 | "requires": {
2204 | "is-promise": "^2.1.0"
2205 | }
2206 | },
2207 | "run-node": {
2208 | "version": "1.0.0",
2209 | "resolved": "https://registry.npmjs.org/run-node/-/run-node-1.0.0.tgz",
2210 | "integrity": "sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A==",
2211 | "dev": true
2212 | },
2213 | "rx-lite": {
2214 | "version": "4.0.8",
2215 | "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz",
2216 | "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=",
2217 | "dev": true
2218 | },
2219 | "rx-lite-aggregates": {
2220 | "version": "4.0.8",
2221 | "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz",
2222 | "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=",
2223 | "dev": true,
2224 | "requires": {
2225 | "rx-lite": "*"
2226 | }
2227 | },
2228 | "rxjs": {
2229 | "version": "6.5.2",
2230 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz",
2231 | "integrity": "sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==",
2232 | "dev": true,
2233 | "requires": {
2234 | "tslib": "^1.9.0"
2235 | }
2236 | },
2237 | "safe-buffer": {
2238 | "version": "5.1.2",
2239 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
2240 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
2241 | "dev": true
2242 | },
2243 | "safer-buffer": {
2244 | "version": "2.1.2",
2245 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
2246 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
2247 | "dev": true
2248 | },
2249 | "scoped-regex": {
2250 | "version": "2.1.0",
2251 | "resolved": "https://registry.npmjs.org/scoped-regex/-/scoped-regex-2.1.0.tgz",
2252 | "integrity": "sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ==",
2253 | "dev": true
2254 | },
2255 | "semver": {
2256 | "version": "5.7.0",
2257 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
2258 | "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
2259 | "dev": true
2260 | },
2261 | "semver-compare": {
2262 | "version": "1.0.0",
2263 | "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
2264 | "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=",
2265 | "dev": true
2266 | },
2267 | "semver-diff": {
2268 | "version": "2.1.0",
2269 | "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz",
2270 | "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=",
2271 | "dev": true,
2272 | "requires": {
2273 | "semver": "^5.0.3"
2274 | }
2275 | },
2276 | "shebang-command": {
2277 | "version": "1.2.0",
2278 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
2279 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
2280 | "dev": true,
2281 | "requires": {
2282 | "shebang-regex": "^1.0.0"
2283 | }
2284 | },
2285 | "shebang-regex": {
2286 | "version": "1.0.0",
2287 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
2288 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
2289 | "dev": true
2290 | },
2291 | "signal-exit": {
2292 | "version": "3.0.2",
2293 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
2294 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
2295 | "dev": true
2296 | },
2297 | "slash": {
2298 | "version": "3.0.0",
2299 | "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
2300 | "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
2301 | "dev": true
2302 | },
2303 | "slice-ansi": {
2304 | "version": "0.0.4",
2305 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz",
2306 | "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=",
2307 | "dev": true
2308 | },
2309 | "source-map": {
2310 | "version": "0.6.1",
2311 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
2312 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
2313 | "dev": true
2314 | },
2315 | "source-map-support": {
2316 | "version": "0.5.19",
2317 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
2318 | "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
2319 | "dev": true,
2320 | "requires": {
2321 | "buffer-from": "^1.0.0",
2322 | "source-map": "^0.6.0"
2323 | }
2324 | },
2325 | "spdx-correct": {
2326 | "version": "3.1.0",
2327 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
2328 | "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==",
2329 | "dev": true,
2330 | "requires": {
2331 | "spdx-expression-parse": "^3.0.0",
2332 | "spdx-license-ids": "^3.0.0"
2333 | }
2334 | },
2335 | "spdx-exceptions": {
2336 | "version": "2.2.0",
2337 | "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
2338 | "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==",
2339 | "dev": true
2340 | },
2341 | "spdx-expression-parse": {
2342 | "version": "3.0.0",
2343 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
2344 | "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
2345 | "dev": true,
2346 | "requires": {
2347 | "spdx-exceptions": "^2.1.0",
2348 | "spdx-license-ids": "^3.0.0"
2349 | }
2350 | },
2351 | "spdx-license-ids": {
2352 | "version": "3.0.4",
2353 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz",
2354 | "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA==",
2355 | "dev": true
2356 | },
2357 | "split": {
2358 | "version": "1.0.1",
2359 | "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
2360 | "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
2361 | "dev": true,
2362 | "requires": {
2363 | "through": "2"
2364 | }
2365 | },
2366 | "sprintf-js": {
2367 | "version": "1.0.3",
2368 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
2369 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
2370 | "dev": true
2371 | },
2372 | "string-width": {
2373 | "version": "2.1.1",
2374 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
2375 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
2376 | "dev": true,
2377 | "requires": {
2378 | "is-fullwidth-code-point": "^2.0.0",
2379 | "strip-ansi": "^4.0.0"
2380 | },
2381 | "dependencies": {
2382 | "strip-ansi": {
2383 | "version": "4.0.0",
2384 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
2385 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
2386 | "dev": true,
2387 | "requires": {
2388 | "ansi-regex": "^3.0.0"
2389 | }
2390 | }
2391 | }
2392 | },
2393 | "strip-ansi": {
2394 | "version": "5.2.0",
2395 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
2396 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
2397 | "dev": true,
2398 | "requires": {
2399 | "ansi-regex": "^4.1.0"
2400 | },
2401 | "dependencies": {
2402 | "ansi-regex": {
2403 | "version": "4.1.0",
2404 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
2405 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
2406 | "dev": true
2407 | }
2408 | }
2409 | },
2410 | "strip-bom": {
2411 | "version": "3.0.0",
2412 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
2413 | "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
2414 | "dev": true
2415 | },
2416 | "strip-eof": {
2417 | "version": "1.0.0",
2418 | "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
2419 | "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
2420 | "dev": true
2421 | },
2422 | "strip-indent": {
2423 | "version": "2.0.0",
2424 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz",
2425 | "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=",
2426 | "dev": true
2427 | },
2428 | "strip-json-comments": {
2429 | "version": "2.0.1",
2430 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
2431 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
2432 | "dev": true
2433 | },
2434 | "supports-color": {
2435 | "version": "5.5.0",
2436 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
2437 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
2438 | "dev": true,
2439 | "requires": {
2440 | "has-flag": "^3.0.0"
2441 | }
2442 | },
2443 | "supports-hyperlinks": {
2444 | "version": "1.0.1",
2445 | "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-1.0.1.tgz",
2446 | "integrity": "sha512-HHi5kVSefKaJkGYXbDuKbUGRVxqnWGn3J2e39CYcNJEfWciGq2zYtOhXLTlvrOZW1QU7VX67w7fMmWafHX9Pfw==",
2447 | "dev": true,
2448 | "requires": {
2449 | "has-flag": "^2.0.0",
2450 | "supports-color": "^5.0.0"
2451 | },
2452 | "dependencies": {
2453 | "has-flag": {
2454 | "version": "2.0.0",
2455 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
2456 | "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
2457 | "dev": true
2458 | }
2459 | }
2460 | },
2461 | "symbol-observable": {
2462 | "version": "1.2.0",
2463 | "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
2464 | "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==",
2465 | "dev": true
2466 | },
2467 | "term-size": {
2468 | "version": "1.2.0",
2469 | "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz",
2470 | "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=",
2471 | "dev": true,
2472 | "requires": {
2473 | "execa": "^0.7.0"
2474 | },
2475 | "dependencies": {
2476 | "cross-spawn": {
2477 | "version": "5.1.0",
2478 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
2479 | "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
2480 | "dev": true,
2481 | "requires": {
2482 | "lru-cache": "^4.0.1",
2483 | "shebang-command": "^1.2.0",
2484 | "which": "^1.2.9"
2485 | }
2486 | },
2487 | "execa": {
2488 | "version": "0.7.0",
2489 | "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
2490 | "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
2491 | "dev": true,
2492 | "requires": {
2493 | "cross-spawn": "^5.0.1",
2494 | "get-stream": "^3.0.0",
2495 | "is-stream": "^1.1.0",
2496 | "npm-run-path": "^2.0.0",
2497 | "p-finally": "^1.0.0",
2498 | "signal-exit": "^3.0.0",
2499 | "strip-eof": "^1.0.0"
2500 | }
2501 | },
2502 | "get-stream": {
2503 | "version": "3.0.0",
2504 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
2505 | "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
2506 | "dev": true
2507 | }
2508 | }
2509 | },
2510 | "terminal-link": {
2511 | "version": "1.3.0",
2512 | "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-1.3.0.tgz",
2513 | "integrity": "sha512-nFaWG/gs3brGi3opgWU2+dyFGbQ7tueSRYOBOD8URdDXCbAGqDEZzuskCc+okCClYcJFDPwn8e2mbv4FqAnWFA==",
2514 | "dev": true,
2515 | "requires": {
2516 | "ansi-escapes": "^3.2.0",
2517 | "supports-hyperlinks": "^1.0.1"
2518 | }
2519 | },
2520 | "through": {
2521 | "version": "2.3.8",
2522 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
2523 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
2524 | "dev": true
2525 | },
2526 | "timed-out": {
2527 | "version": "4.0.1",
2528 | "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
2529 | "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=",
2530 | "dev": true
2531 | },
2532 | "tmp": {
2533 | "version": "0.0.33",
2534 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
2535 | "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
2536 | "dev": true,
2537 | "requires": {
2538 | "os-tmpdir": "~1.0.2"
2539 | }
2540 | },
2541 | "to-readable-stream": {
2542 | "version": "1.0.0",
2543 | "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
2544 | "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==",
2545 | "dev": true
2546 | },
2547 | "trim-newlines": {
2548 | "version": "2.0.0",
2549 | "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz",
2550 | "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=",
2551 | "dev": true
2552 | },
2553 | "tslib": {
2554 | "version": "1.9.3",
2555 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
2556 | "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==",
2557 | "dev": true
2558 | },
2559 | "type-fest": {
2560 | "version": "0.4.1",
2561 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.4.1.tgz",
2562 | "integrity": "sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==",
2563 | "dev": true
2564 | },
2565 | "unique-string": {
2566 | "version": "1.0.0",
2567 | "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz",
2568 | "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=",
2569 | "dev": true,
2570 | "requires": {
2571 | "crypto-random-string": "^1.0.0"
2572 | }
2573 | },
2574 | "unzip-response": {
2575 | "version": "2.0.1",
2576 | "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz",
2577 | "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=",
2578 | "dev": true
2579 | },
2580 | "update-notifier": {
2581 | "version": "2.5.0",
2582 | "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz",
2583 | "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==",
2584 | "dev": true,
2585 | "requires": {
2586 | "boxen": "^1.2.1",
2587 | "chalk": "^2.0.1",
2588 | "configstore": "^3.0.0",
2589 | "import-lazy": "^2.1.0",
2590 | "is-ci": "^1.0.10",
2591 | "is-installed-globally": "^0.1.0",
2592 | "is-npm": "^1.0.0",
2593 | "latest-version": "^3.0.0",
2594 | "semver-diff": "^2.0.0",
2595 | "xdg-basedir": "^3.0.0"
2596 | },
2597 | "dependencies": {
2598 | "ci-info": {
2599 | "version": "1.6.0",
2600 | "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz",
2601 | "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==",
2602 | "dev": true
2603 | },
2604 | "is-ci": {
2605 | "version": "1.2.1",
2606 | "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz",
2607 | "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==",
2608 | "dev": true,
2609 | "requires": {
2610 | "ci-info": "^1.5.0"
2611 | }
2612 | }
2613 | }
2614 | },
2615 | "url-parse-lax": {
2616 | "version": "3.0.0",
2617 | "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
2618 | "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
2619 | "dev": true,
2620 | "requires": {
2621 | "prepend-http": "^2.0.0"
2622 | }
2623 | },
2624 | "validate-npm-package-license": {
2625 | "version": "3.0.4",
2626 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
2627 | "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
2628 | "dev": true,
2629 | "requires": {
2630 | "spdx-correct": "^3.0.0",
2631 | "spdx-expression-parse": "^3.0.0"
2632 | }
2633 | },
2634 | "validate-npm-package-name": {
2635 | "version": "3.0.0",
2636 | "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz",
2637 | "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=",
2638 | "dev": true,
2639 | "requires": {
2640 | "builtins": "^1.0.3"
2641 | }
2642 | },
2643 | "which": {
2644 | "version": "1.3.1",
2645 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
2646 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
2647 | "dev": true,
2648 | "requires": {
2649 | "isexe": "^2.0.0"
2650 | }
2651 | },
2652 | "widest-line": {
2653 | "version": "2.0.1",
2654 | "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz",
2655 | "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==",
2656 | "dev": true,
2657 | "requires": {
2658 | "string-width": "^2.1.1"
2659 | }
2660 | },
2661 | "wrap-ansi": {
2662 | "version": "3.0.1",
2663 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz",
2664 | "integrity": "sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=",
2665 | "dev": true,
2666 | "requires": {
2667 | "string-width": "^2.1.1",
2668 | "strip-ansi": "^4.0.0"
2669 | },
2670 | "dependencies": {
2671 | "strip-ansi": {
2672 | "version": "4.0.0",
2673 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
2674 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
2675 | "dev": true,
2676 | "requires": {
2677 | "ansi-regex": "^3.0.0"
2678 | }
2679 | }
2680 | }
2681 | },
2682 | "wrappy": {
2683 | "version": "1.0.2",
2684 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2685 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
2686 | "dev": true
2687 | },
2688 | "write-file-atomic": {
2689 | "version": "2.4.2",
2690 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.2.tgz",
2691 | "integrity": "sha512-s0b6vB3xIVRLWywa6X9TOMA7k9zio0TMOsl9ZnDkliA/cfJlpHXAscj0gbHVJiTdIuAYpIyqS5GW91fqm6gG5g==",
2692 | "dev": true,
2693 | "requires": {
2694 | "graceful-fs": "^4.1.11",
2695 | "imurmurhash": "^0.1.4",
2696 | "signal-exit": "^3.0.2"
2697 | }
2698 | },
2699 | "xdg-basedir": {
2700 | "version": "3.0.0",
2701 | "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz",
2702 | "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=",
2703 | "dev": true
2704 | },
2705 | "yallist": {
2706 | "version": "2.1.2",
2707 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
2708 | "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
2709 | "dev": true
2710 | },
2711 | "yargs-parser": {
2712 | "version": "10.1.0",
2713 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz",
2714 | "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==",
2715 | "dev": true,
2716 | "requires": {
2717 | "camelcase": "^4.1.0"
2718 | }
2719 | }
2720 | }
2721 | }
2722 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "wasm-matrix",
3 | "version": "0.0.2",
4 | "description": "A Matrix effect in your terminal using AssemblyScript 🚀 and WASI 🧩 . Deployed to WAPM 📦 .",
5 | "scripts": {
6 | "postinstall": "npm run build",
7 | "start": "wapm run wasm-matrix -l 24 -c 80",
8 | "build": "npm run asbuild:untouched && npm run asbuild:optimized",
9 | "asbuild:untouched": "asc assembly/index.ts -b build/untouched.wasm -t build/untouched.wat --sourceMap --validate --debug --use abort=wasiabort",
10 | "asbuild:optimized": "asc assembly/index.ts -b build/optimized.wasm -t build/optimized.wat --sourceMap --validate --optimize --use abort=wasiabort",
11 | "lint": "npx prettier --write assembly/*.ts",
12 | "deploy": "npx np --no-publish",
13 | "postdeploy": "echo \"Don't forget to bump the wapm.toml, and Publish to wapm using 'wapm publish'\""
14 | },
15 | "husky": {
16 | "hooks": {
17 | "pre-commit": "npx pretty-quick --staged"
18 | }
19 | },
20 | "repository": {
21 | "type": "git",
22 | "url": "git+https://github.com/torch2424/wasm-matrix.git"
23 | },
24 | "author": "Aaron turner",
25 | "license": "Apache-2.0",
26 | "bugs": {
27 | "url": "https://github.com/torch2424/wasm-matrix/issues"
28 | },
29 | "homepage": "https://github.com/torch2424/wasm-matrix#readme",
30 | "dependencies": {},
31 | "devDependencies": {
32 | "assemblyscript": "github:AssemblyScript/assemblyscript",
33 | "husky": "^2.3.0",
34 | "np": "^5.0.1",
35 | "prettier": "1.17.1",
36 | "pretty-quick": "^1.10.0"
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/wapm.lock:
--------------------------------------------------------------------------------
1 | # Lockfile v2
2 | # This file is automatically generated by Wapm.
3 | # It is not intended for manual editing. The schema of this file may change.
4 | [modules.wasm-matrix."0.0.1".wasm-matrix]
5 | name = "wasm-matrix"
6 | package_version = "0.0.1"
7 | package_name = "wasm-matrix"
8 | source = "local"
9 | resolved = "local"
10 | abi = "none"
11 | entry = "build/optimized.wasm"
12 | [commands.wasm-matrix]
13 | name = "wasm-matrix"
14 | package_name = "wasm-matrix"
15 | package_version = "0.0.1"
16 | module = "wasm-matrix"
17 | is_top_level_dependency = true
18 |
--------------------------------------------------------------------------------
/wapm.toml:
--------------------------------------------------------------------------------
1 | [package]
2 | name = "torch2424/wasm-matrix"
3 | version = "0.0.2"
4 | description = "A Matrix effect in your terminal using AssemblyScript 🚀 and WASI 🧩 . Deployed to WAPM 📦 ."
5 | readme = "README.md"
6 | repository = "https://github.com/torch2424/wasm-matrix"
7 |
8 | [[module]]
9 | name = "wasm-matrix"
10 | source = "build/optimized.wasm"
11 | abi = "wasi"
12 | interfaces = {wasi= "0.0.0-unstable"}
13 |
14 | [[command]]
15 | name = "wasm-matrix"
16 | module = "wasm-matrix"
17 |
--------------------------------------------------------------------------------