├── Step 4
├── vscode-react
│ ├── src
│ │ ├── view
│ │ │ ├── app
│ │ │ │ ├── index.css
│ │ │ │ ├── index.tsx
│ │ │ │ └── tsconfig.json
│ │ │ └── ViewLoader.ts
│ │ ├── test
│ │ │ ├── extension.test.ts
│ │ │ └── index.ts
│ │ └── extension.ts
│ ├── .gitignore
│ ├── .vscodeignore
│ ├── .vscode
│ │ ├── extensions.json
│ │ ├── tasks.json
│ │ ├── settings.json
│ │ └── launch.json
│ ├── CHANGELOG.md
│ ├── tslint.json
│ ├── tsconfig.json
│ ├── webpack.config.js
│ ├── package.json
│ ├── README.md
│ └── vsc-extension-quickstart.md
└── config.json
├── Step 1
├── vscode-react
│ ├── .gitignore
│ ├── .vscodeignore
│ ├── .vscode
│ │ ├── extensions.json
│ │ ├── tasks.json
│ │ ├── settings.json
│ │ └── launch.json
│ ├── CHANGELOG.md
│ ├── tsconfig.json
│ ├── tslint.json
│ ├── src
│ │ ├── test
│ │ │ ├── extension.test.ts
│ │ │ └── index.ts
│ │ └── extension.ts
│ ├── package.json
│ ├── README.md
│ ├── vsc-extension-quickstart.md
│ └── package-lock.json
├── hello_world.gif
└── config.json
├── Step 2
├── vscode-react
│ ├── .gitignore
│ ├── .vscodeignore
│ ├── .vscode
│ │ ├── extensions.json
│ │ ├── tasks.json
│ │ ├── settings.json
│ │ └── launch.json
│ ├── CHANGELOG.md
│ ├── tsconfig.json
│ ├── tslint.json
│ ├── src
│ │ ├── test
│ │ │ ├── extension.test.ts
│ │ │ └── index.ts
│ │ └── extension.ts
│ ├── package.json
│ ├── README.md
│ ├── vsc-extension-quickstart.md
│ └── package-lock.json
└── config.json
├── Step 3
├── vscode-react
│ ├── .gitignore
│ ├── .vscodeignore
│ ├── .vscode
│ │ ├── extensions.json
│ │ ├── tasks.json
│ │ ├── settings.json
│ │ └── launch.json
│ ├── CHANGELOG.md
│ ├── tsconfig.json
│ ├── tslint.json
│ ├── src
│ │ ├── test
│ │ │ ├── extension.test.ts
│ │ │ └── index.ts
│ │ ├── view
│ │ │ └── ViewLoader.ts
│ │ └── extension.ts
│ ├── package.json
│ ├── README.md
│ ├── vsc-extension-quickstart.md
│ └── package-lock.json
├── webview-demo.gif
└── config.json
├── Step 5
├── vscode-react
│ ├── .gitignore
│ ├── src
│ │ ├── view
│ │ │ ├── app
│ │ │ │ ├── index.css
│ │ │ │ ├── model.ts
│ │ │ │ ├── index.tsx
│ │ │ │ ├── tsconfig.json
│ │ │ │ └── config.tsx
│ │ │ └── ViewLoader.ts
│ │ ├── test
│ │ │ ├── extension.test.ts
│ │ │ └── index.ts
│ │ └── extension.ts
│ ├── .vscodeignore
│ ├── .vscode
│ │ ├── extensions.json
│ │ ├── tasks.json
│ │ ├── settings.json
│ │ └── launch.json
│ ├── CHANGELOG.md
│ ├── tslint.json
│ ├── tsconfig.json
│ ├── webpack.config.js
│ ├── package.json
│ ├── README.md
│ └── vsc-extension-quickstart.md
└── config.json
├── Step 6
├── vscode-react
│ ├── .gitignore
│ ├── .vscodeignore
│ ├── src
│ │ ├── view
│ │ │ ├── app
│ │ │ │ ├── index.css
│ │ │ │ ├── model.ts
│ │ │ │ ├── index.tsx
│ │ │ │ ├── tsconfig.json
│ │ │ │ └── config.tsx
│ │ │ └── ViewLoader.ts
│ │ ├── test
│ │ │ ├── extension.test.ts
│ │ │ └── index.ts
│ │ └── extension.ts
│ ├── .vscode
│ │ ├── extensions.json
│ │ ├── tasks.json
│ │ ├── settings.json
│ │ └── launch.json
│ ├── CHANGELOG.md
│ ├── tslint.json
│ ├── tsconfig.json
│ ├── webpack.config.js
│ ├── package.json
│ ├── README.md
│ └── vsc-extension-quickstart.md
└── config.json
└── LICENSE
/Step 4/vscode-react/src/view/app/index.css:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/Step 1/vscode-react/.gitignore:
--------------------------------------------------------------------------------
1 | out
2 | node_modules
3 | .vscode-test/
4 | *.vsix
5 |
--------------------------------------------------------------------------------
/Step 2/vscode-react/.gitignore:
--------------------------------------------------------------------------------
1 | out
2 | node_modules
3 | .vscode-test/
4 | *.vsix
5 |
--------------------------------------------------------------------------------
/Step 3/vscode-react/.gitignore:
--------------------------------------------------------------------------------
1 | out
2 | node_modules
3 | .vscode-test/
4 | *.vsix
5 |
--------------------------------------------------------------------------------
/Step 1/hello_world.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ciaanh/reactception/HEAD/Step 1/hello_world.gif
--------------------------------------------------------------------------------
/Step 3/webview-demo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Ciaanh/reactception/HEAD/Step 3/webview-demo.gif
--------------------------------------------------------------------------------
/Step 4/vscode-react/.gitignore:
--------------------------------------------------------------------------------
1 | out
2 | node_modules
3 | .vscode-test/
4 | *.vsix
5 |
6 | configViewer/configViewer.js
--------------------------------------------------------------------------------
/Step 5/vscode-react/.gitignore:
--------------------------------------------------------------------------------
1 | out
2 | node_modules
3 | .vscode-test/
4 | *.vsix
5 |
6 | configViewer/configViewer.js
--------------------------------------------------------------------------------
/Step 6/vscode-react/.gitignore:
--------------------------------------------------------------------------------
1 | out
2 | node_modules
3 | .vscode-test/
4 | *.vsix
5 |
6 | configViewer/configViewer.js
--------------------------------------------------------------------------------
/Step 5/vscode-react/src/view/app/index.css:
--------------------------------------------------------------------------------
1 | li {
2 | margin-bottom: 15px;
3 | }
4 |
5 | input {
6 | margin-left: 10px;
7 | }
8 |
9 | .save {
10 | margin-top: 10px;
11 | }
12 |
--------------------------------------------------------------------------------
/Step 1/vscode-react/.vscodeignore:
--------------------------------------------------------------------------------
1 | .vscode/**
2 | .vscode-test/**
3 | out/test/**
4 | src/**
5 | .gitignore
6 | vsc-extension-quickstart.md
7 | **/tsconfig.json
8 | **/tslint.json
9 | **/*.map
10 | **/*.ts
--------------------------------------------------------------------------------
/Step 2/vscode-react/.vscodeignore:
--------------------------------------------------------------------------------
1 | .vscode/**
2 | .vscode-test/**
3 | out/test/**
4 | src/**
5 | .gitignore
6 | vsc-extension-quickstart.md
7 | **/tsconfig.json
8 | **/tslint.json
9 | **/*.map
10 | **/*.ts
--------------------------------------------------------------------------------
/Step 3/vscode-react/.vscodeignore:
--------------------------------------------------------------------------------
1 | .vscode/**
2 | .vscode-test/**
3 | out/test/**
4 | src/**
5 | .gitignore
6 | vsc-extension-quickstart.md
7 | **/tsconfig.json
8 | **/tslint.json
9 | **/*.map
10 | **/*.ts
--------------------------------------------------------------------------------
/Step 4/vscode-react/.vscodeignore:
--------------------------------------------------------------------------------
1 | .vscode/**
2 | .vscode-test/**
3 | out/test/**
4 | src/**
5 | .gitignore
6 | vsc-extension-quickstart.md
7 | **/tsconfig.json
8 | **/tslint.json
9 | **/*.map
10 | **/*.ts
--------------------------------------------------------------------------------
/Step 5/vscode-react/.vscodeignore:
--------------------------------------------------------------------------------
1 | .vscode/**
2 | .vscode-test/**
3 | out/test/**
4 | src/**
5 | .gitignore
6 | vsc-extension-quickstart.md
7 | **/tsconfig.json
8 | **/tslint.json
9 | **/*.map
10 | **/*.ts
--------------------------------------------------------------------------------
/Step 6/vscode-react/.vscodeignore:
--------------------------------------------------------------------------------
1 | .vscode/**
2 | .vscode-test/**
3 | out/test/**
4 | src/**
5 | .gitignore
6 | vsc-extension-quickstart.md
7 | **/tsconfig.json
8 | **/tslint.json
9 | **/*.map
10 | **/*.ts
--------------------------------------------------------------------------------
/Step 6/vscode-react/src/view/app/index.css:
--------------------------------------------------------------------------------
1 | li {
2 | margin-bottom: 15px;
3 | }
4 |
5 | input {
6 | margin-left: 10px;
7 | }
8 |
9 | .save {
10 | margin-top: 10px;
11 | }
12 |
--------------------------------------------------------------------------------
/Step 4/vscode-react/src/view/app/index.tsx:
--------------------------------------------------------------------------------
1 | import * as React from 'react';
2 | import * as ReactDOM from 'react-dom';
3 |
4 | import './index.css';
5 |
6 | ReactDOM.render(
7 |
Hello ,
8 | document.getElementById('root')
9 | );
--------------------------------------------------------------------------------
/Step 1/vscode-react/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | // See http://go.microsoft.com/fwlink/?LinkId=827846
3 | // for the documentation about the extensions.json format
4 | "recommendations": [
5 | "ms-vscode.vscode-typescript-tslint-plugin"
6 | ]
7 | }
--------------------------------------------------------------------------------
/Step 2/vscode-react/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | // See http://go.microsoft.com/fwlink/?LinkId=827846
3 | // for the documentation about the extensions.json format
4 | "recommendations": [
5 | "ms-vscode.vscode-typescript-tslint-plugin"
6 | ]
7 | }
--------------------------------------------------------------------------------
/Step 3/vscode-react/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | // See http://go.microsoft.com/fwlink/?LinkId=827846
3 | // for the documentation about the extensions.json format
4 | "recommendations": [
5 | "ms-vscode.vscode-typescript-tslint-plugin"
6 | ]
7 | }
--------------------------------------------------------------------------------
/Step 4/vscode-react/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | // See http://go.microsoft.com/fwlink/?LinkId=827846
3 | // for the documentation about the extensions.json format
4 | "recommendations": [
5 | "ms-vscode.vscode-typescript-tslint-plugin"
6 | ]
7 | }
--------------------------------------------------------------------------------
/Step 5/vscode-react/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | // See http://go.microsoft.com/fwlink/?LinkId=827846
3 | // for the documentation about the extensions.json format
4 | "recommendations": [
5 | "ms-vscode.vscode-typescript-tslint-plugin"
6 | ]
7 | }
--------------------------------------------------------------------------------
/Step 6/vscode-react/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | // See http://go.microsoft.com/fwlink/?LinkId=827846
3 | // for the documentation about the extensions.json format
4 | "recommendations": [
5 | "ms-vscode.vscode-typescript-tslint-plugin"
6 | ]
7 | }
--------------------------------------------------------------------------------
/Step 5/vscode-react/src/view/app/model.ts:
--------------------------------------------------------------------------------
1 | export interface IConfig {
2 | name: string;
3 | description: string;
4 | users: IUser[];
5 | }
6 | export interface IUser {
7 | name: string;
8 | active: boolean;
9 | roles: string[];
10 | }
--------------------------------------------------------------------------------
/Step 1/vscode-react/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Change Log
2 |
3 | All notable changes to the "vscode-react" extension will be documented in this file.
4 |
5 | Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.
6 |
7 | ## [Unreleased]
8 |
9 | - Initial release
--------------------------------------------------------------------------------
/Step 2/vscode-react/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Change Log
2 |
3 | All notable changes to the "vscode-react" extension will be documented in this file.
4 |
5 | Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.
6 |
7 | ## [Unreleased]
8 |
9 | - Initial release
--------------------------------------------------------------------------------
/Step 3/vscode-react/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Change Log
2 |
3 | All notable changes to the "vscode-react" extension will be documented in this file.
4 |
5 | Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.
6 |
7 | ## [Unreleased]
8 |
9 | - Initial release
--------------------------------------------------------------------------------
/Step 4/vscode-react/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Change Log
2 |
3 | All notable changes to the "vscode-react" extension will be documented in this file.
4 |
5 | Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.
6 |
7 | ## [Unreleased]
8 |
9 | - Initial release
--------------------------------------------------------------------------------
/Step 5/vscode-react/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Change Log
2 |
3 | All notable changes to the "vscode-react" extension will be documented in this file.
4 |
5 | Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.
6 |
7 | ## [Unreleased]
8 |
9 | - Initial release
--------------------------------------------------------------------------------
/Step 6/vscode-react/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Change Log
2 |
3 | All notable changes to the "vscode-react" extension will be documented in this file.
4 |
5 | Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.
6 |
7 | ## [Unreleased]
8 |
9 | - Initial release
--------------------------------------------------------------------------------
/Step 1/vscode-react/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "module": "commonjs",
4 | "target": "es6",
5 | "outDir": "out",
6 | "lib": [
7 | "es6"
8 | ],
9 | "sourceMap": true,
10 | "rootDir": "src",
11 | "strict": true
12 | },
13 | "exclude": [
14 | "node_modules",
15 | ".vscode-test"
16 | ]
17 | }
18 |
--------------------------------------------------------------------------------
/Step 2/vscode-react/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "module": "commonjs",
4 | "target": "es6",
5 | "outDir": "out",
6 | "lib": [
7 | "es6"
8 | ],
9 | "sourceMap": true,
10 | "rootDir": "src",
11 | "strict": true
12 | },
13 | "exclude": [
14 | "node_modules",
15 | ".vscode-test"
16 | ]
17 | }
18 |
--------------------------------------------------------------------------------
/Step 3/vscode-react/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "module": "commonjs",
4 | "target": "es6",
5 | "outDir": "out",
6 | "lib": [
7 | "es6"
8 | ],
9 | "sourceMap": true,
10 | "rootDir": "src",
11 | "strict": true
12 | },
13 | "exclude": [
14 | "node_modules",
15 | ".vscode-test"
16 | ]
17 | }
18 |
--------------------------------------------------------------------------------
/Step 1/vscode-react/tslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "rules": {
3 | "no-string-throw": true,
4 | "no-unused-expression": true,
5 | "no-duplicate-variable": true,
6 | "curly": true,
7 | "class-name": true,
8 | "semicolon": [
9 | true,
10 | "always"
11 | ],
12 | "triple-equals": true
13 | },
14 | "defaultSeverity": "warning"
15 | }
16 |
--------------------------------------------------------------------------------
/Step 2/vscode-react/tslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "rules": {
3 | "no-string-throw": true,
4 | "no-unused-expression": true,
5 | "no-duplicate-variable": true,
6 | "curly": true,
7 | "class-name": true,
8 | "semicolon": [
9 | true,
10 | "always"
11 | ],
12 | "triple-equals": true
13 | },
14 | "defaultSeverity": "warning"
15 | }
16 |
--------------------------------------------------------------------------------
/Step 3/vscode-react/tslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "rules": {
3 | "no-string-throw": true,
4 | "no-unused-expression": true,
5 | "no-duplicate-variable": true,
6 | "curly": true,
7 | "class-name": true,
8 | "semicolon": [
9 | true,
10 | "always"
11 | ],
12 | "triple-equals": true
13 | },
14 | "defaultSeverity": "warning"
15 | }
16 |
--------------------------------------------------------------------------------
/Step 4/vscode-react/tslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "rules": {
3 | "no-string-throw": true,
4 | "no-unused-expression": true,
5 | "no-duplicate-variable": true,
6 | "curly": true,
7 | "class-name": true,
8 | "semicolon": [
9 | true,
10 | "always"
11 | ],
12 | "triple-equals": true
13 | },
14 | "defaultSeverity": "warning"
15 | }
16 |
--------------------------------------------------------------------------------
/Step 5/vscode-react/tslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "rules": {
3 | "no-string-throw": true,
4 | "no-unused-expression": true,
5 | "no-duplicate-variable": true,
6 | "curly": true,
7 | "class-name": true,
8 | "semicolon": [
9 | true,
10 | "always"
11 | ],
12 | "triple-equals": true
13 | },
14 | "defaultSeverity": "warning"
15 | }
16 |
--------------------------------------------------------------------------------
/Step 6/vscode-react/tslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "rules": {
3 | "no-string-throw": true,
4 | "no-unused-expression": true,
5 | "no-duplicate-variable": true,
6 | "curly": true,
7 | "class-name": true,
8 | "semicolon": [
9 | true,
10 | "always"
11 | ],
12 | "triple-equals": true
13 | },
14 | "defaultSeverity": "warning"
15 | }
16 |
--------------------------------------------------------------------------------
/Step 4/vscode-react/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "module": "commonjs",
4 | "target": "es6",
5 | "outDir": "out",
6 | "lib": [
7 | "es6"
8 | ],
9 | "sourceMap": true,
10 | "rootDir": "src",
11 | "strict": true
12 | },
13 | "exclude": [
14 | "node_modules",
15 | ".vscode-test",
16 | "**/view/app/**"
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/Step 1/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "This is a file containing a dummy config in order to test a webview react in VS Code.",
3 | "name": "my config",
4 | "users": [
5 | { "active": true, "name": "alice", "roles": ["user", "admin"] },
6 | { "active": true, "name": "bob", "roles": ["user"] },
7 | { "active": false, "name": "charlie", "roles": ["user"] }
8 | ]
9 | }
10 |
--------------------------------------------------------------------------------
/Step 2/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "This is a file containing a dummy config in order to test a webview react in VS Code.",
3 | "name": "my config",
4 | "users": [
5 | { "active": true, "name": "alice", "roles": ["user", "admin"] },
6 | { "active": true, "name": "bob", "roles": ["user"] },
7 | { "active": false, "name": "charlie", "roles": ["user"] }
8 | ]
9 | }
10 |
--------------------------------------------------------------------------------
/Step 3/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "This is a file containing a dummy config in order to test a webview react in VS Code.",
3 | "name": "my config",
4 | "users": [
5 | { "active": true, "name": "alice", "roles": ["user", "admin"] },
6 | { "active": true, "name": "bob", "roles": ["user"] },
7 | { "active": false, "name": "charlie", "roles": ["user"] }
8 | ]
9 | }
10 |
--------------------------------------------------------------------------------
/Step 4/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "This is a file containing a dummy config in order to test a webview react in VS Code.",
3 | "name": "my config",
4 | "users": [
5 | { "active": true, "name": "alice", "roles": ["user", "admin"] },
6 | { "active": true, "name": "bob", "roles": ["user"] },
7 | { "active": false, "name": "charlie", "roles": ["user"] }
8 | ]
9 | }
10 |
--------------------------------------------------------------------------------
/Step 5/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "This is a file containing a dummy config in order to test a webview react in VS Code.",
3 | "name": "my config",
4 | "users": [
5 | { "active": true, "name": "alice", "roles": ["user", "admin"] },
6 | { "active": true, "name": "bob", "roles": ["user"] },
7 | { "active": false, "name": "charlie", "roles": ["user"] }
8 | ]
9 | }
10 |
--------------------------------------------------------------------------------
/Step 6/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "description": "This is a file containing a dummy config in order to test a webview react in VS Code.",
3 | "name": "my config",
4 | "users": [
5 | { "active": true, "name": "alice", "roles": ["user", "admin"] },
6 | { "active": true, "name": "bob", "roles": ["user"] },
7 | { "active": false, "name": "charlie", "roles": ["user"] }
8 | ]
9 | }
10 |
--------------------------------------------------------------------------------
/Step 6/vscode-react/src/view/app/model.ts:
--------------------------------------------------------------------------------
1 | export interface IConfig {
2 | name: string;
3 | description: string;
4 | users: IUser[];
5 | }
6 | export interface IUser {
7 | name: string;
8 | active: boolean;
9 | roles: string[];
10 | }
11 |
12 | export interface ICommand {
13 | action: CommandAction;
14 | content: IConfig;
15 | }
16 |
17 | export enum CommandAction {
18 | Save
19 | }
20 |
--------------------------------------------------------------------------------
/Step 5/vscode-react/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "module": "commonjs",
4 | "target": "es6",
5 | "outDir": "out",
6 | "lib": [
7 | "es6"
8 | ],
9 | "sourceMap": true,
10 | "rootDir": "src",
11 | "strict": true
12 | },
13 | "exclude": [
14 | "node_modules",
15 | ".vscode-test",
16 | "**/view/app/index.css",
17 | "**/view/app/index.tsx",
18 | "**/view/app/tsconfig.json",
19 | "**/view/app/config.tsx"
20 | ]
21 | }
22 |
--------------------------------------------------------------------------------
/Step 1/vscode-react/.vscode/tasks.json:
--------------------------------------------------------------------------------
1 | // See https://go.microsoft.com/fwlink/?LinkId=733558
2 | // for the documentation about the tasks.json format
3 | {
4 | "version": "2.0.0",
5 | "tasks": [
6 | {
7 | "type": "npm",
8 | "script": "watch",
9 | "problemMatcher": "$tsc-watch",
10 | "isBackground": true,
11 | "presentation": {
12 | "reveal": "never"
13 | },
14 | "group": {
15 | "kind": "build",
16 | "isDefault": true
17 | }
18 | }
19 | ]
20 | }
21 |
--------------------------------------------------------------------------------
/Step 2/vscode-react/.vscode/tasks.json:
--------------------------------------------------------------------------------
1 | // See https://go.microsoft.com/fwlink/?LinkId=733558
2 | // for the documentation about the tasks.json format
3 | {
4 | "version": "2.0.0",
5 | "tasks": [
6 | {
7 | "type": "npm",
8 | "script": "watch",
9 | "problemMatcher": "$tsc-watch",
10 | "isBackground": true,
11 | "presentation": {
12 | "reveal": "never"
13 | },
14 | "group": {
15 | "kind": "build",
16 | "isDefault": true
17 | }
18 | }
19 | ]
20 | }
21 |
--------------------------------------------------------------------------------
/Step 3/vscode-react/.vscode/tasks.json:
--------------------------------------------------------------------------------
1 | // See https://go.microsoft.com/fwlink/?LinkId=733558
2 | // for the documentation about the tasks.json format
3 | {
4 | "version": "2.0.0",
5 | "tasks": [
6 | {
7 | "type": "npm",
8 | "script": "watch",
9 | "problemMatcher": "$tsc-watch",
10 | "isBackground": true,
11 | "presentation": {
12 | "reveal": "never"
13 | },
14 | "group": {
15 | "kind": "build",
16 | "isDefault": true
17 | }
18 | }
19 | ]
20 | }
21 |
--------------------------------------------------------------------------------
/Step 4/vscode-react/.vscode/tasks.json:
--------------------------------------------------------------------------------
1 | // See https://go.microsoft.com/fwlink/?LinkId=733558
2 | // for the documentation about the tasks.json format
3 | {
4 | "version": "2.0.0",
5 | "tasks": [
6 | {
7 | "type": "npm",
8 | "script": "watch",
9 | "problemMatcher": "$tsc-watch",
10 | "isBackground": true,
11 | "presentation": {
12 | "reveal": "never"
13 | },
14 | "group": {
15 | "kind": "build",
16 | "isDefault": true
17 | }
18 | }
19 | ]
20 | }
21 |
--------------------------------------------------------------------------------
/Step 5/vscode-react/.vscode/tasks.json:
--------------------------------------------------------------------------------
1 | // See https://go.microsoft.com/fwlink/?LinkId=733558
2 | // for the documentation about the tasks.json format
3 | {
4 | "version": "2.0.0",
5 | "tasks": [
6 | {
7 | "type": "npm",
8 | "script": "watch",
9 | "problemMatcher": "$tsc-watch",
10 | "isBackground": true,
11 | "presentation": {
12 | "reveal": "never"
13 | },
14 | "group": {
15 | "kind": "build",
16 | "isDefault": true
17 | }
18 | }
19 | ]
20 | }
21 |
--------------------------------------------------------------------------------
/Step 6/vscode-react/.vscode/tasks.json:
--------------------------------------------------------------------------------
1 | // See https://go.microsoft.com/fwlink/?LinkId=733558
2 | // for the documentation about the tasks.json format
3 | {
4 | "version": "2.0.0",
5 | "tasks": [
6 | {
7 | "type": "npm",
8 | "script": "watch",
9 | "problemMatcher": "$tsc-watch",
10 | "isBackground": true,
11 | "presentation": {
12 | "reveal": "never"
13 | },
14 | "group": {
15 | "kind": "build",
16 | "isDefault": true
17 | }
18 | }
19 | ]
20 | }
21 |
--------------------------------------------------------------------------------
/Step 1/vscode-react/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | // Place your settings in this file to overwrite default and user settings.
2 | {
3 | "files.exclude": {
4 | "out": false // set this to true to hide the "out" folder with the compiled JS files
5 | },
6 | "search.exclude": {
7 | "out": true // set this to false to include "out" folder in search results
8 | },
9 | // Turn off tsc task auto detection since we have the necessary tasks as npm scripts
10 | "typescript.tsc.autoDetect": "off"
11 | }
--------------------------------------------------------------------------------
/Step 2/vscode-react/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | // Place your settings in this file to overwrite default and user settings.
2 | {
3 | "files.exclude": {
4 | "out": false // set this to true to hide the "out" folder with the compiled JS files
5 | },
6 | "search.exclude": {
7 | "out": true // set this to false to include "out" folder in search results
8 | },
9 | // Turn off tsc task auto detection since we have the necessary tasks as npm scripts
10 | "typescript.tsc.autoDetect": "off"
11 | }
--------------------------------------------------------------------------------
/Step 3/vscode-react/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | // Place your settings in this file to overwrite default and user settings.
2 | {
3 | "files.exclude": {
4 | "out": false // set this to true to hide the "out" folder with the compiled JS files
5 | },
6 | "search.exclude": {
7 | "out": true // set this to false to include "out" folder in search results
8 | },
9 | // Turn off tsc task auto detection since we have the necessary tasks as npm scripts
10 | "typescript.tsc.autoDetect": "off"
11 | }
--------------------------------------------------------------------------------
/Step 4/vscode-react/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | // Place your settings in this file to overwrite default and user settings.
2 | {
3 | "files.exclude": {
4 | "out": false // set this to true to hide the "out" folder with the compiled JS files
5 | },
6 | "search.exclude": {
7 | "out": true // set this to false to include "out" folder in search results
8 | },
9 | // Turn off tsc task auto detection since we have the necessary tasks as npm scripts
10 | "typescript.tsc.autoDetect": "off"
11 | }
--------------------------------------------------------------------------------
/Step 5/vscode-react/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | // Place your settings in this file to overwrite default and user settings.
2 | {
3 | "files.exclude": {
4 | "out": false // set this to true to hide the "out" folder with the compiled JS files
5 | },
6 | "search.exclude": {
7 | "out": true // set this to false to include "out" folder in search results
8 | },
9 | // Turn off tsc task auto detection since we have the necessary tasks as npm scripts
10 | "typescript.tsc.autoDetect": "off"
11 | }
--------------------------------------------------------------------------------
/Step 6/vscode-react/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | // Place your settings in this file to overwrite default and user settings.
2 | {
3 | "files.exclude": {
4 | "out": false // set this to true to hide the "out" folder with the compiled JS files
5 | },
6 | "search.exclude": {
7 | "out": true // set this to false to include "out" folder in search results
8 | },
9 | // Turn off tsc task auto detection since we have the necessary tasks as npm scripts
10 | "typescript.tsc.autoDetect": "off"
11 | }
--------------------------------------------------------------------------------
/Step 5/vscode-react/src/view/app/index.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react";
2 | import * as ReactDOM from "react-dom";
3 |
4 | import "./index.css";
5 | import { IConfig } from "./model";
6 | import Config from "./config";
7 |
8 | declare global {
9 | interface Window {
10 | acquireVsCodeApi(): any;
11 | initialData: IConfig;
12 | }
13 | }
14 |
15 | const vscode = window.acquireVsCodeApi();
16 |
17 | ReactDOM.render(
18 | ,
19 | document.getElementById("root")
20 | );
21 |
--------------------------------------------------------------------------------
/Step 6/vscode-react/src/view/app/index.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react";
2 | import * as ReactDOM from "react-dom";
3 |
4 | import "./index.css";
5 | import { IConfig } from "./model";
6 | import Config from "./config";
7 |
8 | declare global {
9 | interface Window {
10 | acquireVsCodeApi(): any;
11 | initialData: IConfig;
12 | }
13 | }
14 |
15 | const vscode = window.acquireVsCodeApi();
16 |
17 | ReactDOM.render(
18 | ,
19 | document.getElementById("root")
20 | );
21 |
--------------------------------------------------------------------------------
/Step 4/vscode-react/src/view/app/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "module": "esnext",
4 | "moduleResolution": "node",
5 | "target": "es6",
6 | "outDir": "configViewer",
7 | "lib": [
8 | "es6",
9 | "dom"
10 | ],
11 | "jsx": "react",
12 | "sourceMap": true,
13 | "rootDir": "..",
14 | "noUnusedLocals": true,
15 | "noImplicitReturns": true,
16 | "noFallthroughCasesInSwitch": true,
17 | "experimentalDecorators": true
18 | },
19 | "exclude": [
20 | "node_modules"
21 | ]
22 | }
--------------------------------------------------------------------------------
/Step 5/vscode-react/src/view/app/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "module": "esnext",
4 | "moduleResolution": "node",
5 | "target": "es6",
6 | "outDir": "configViewer",
7 | "lib": [
8 | "es6",
9 | "dom"
10 | ],
11 | "jsx": "react",
12 | "sourceMap": true,
13 | "rootDir": "..",
14 | "noUnusedLocals": true,
15 | "noImplicitReturns": true,
16 | "noFallthroughCasesInSwitch": true,
17 | "experimentalDecorators": true
18 | },
19 | "exclude": [
20 | "node_modules"
21 | ]
22 | }
--------------------------------------------------------------------------------
/Step 6/vscode-react/src/view/app/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "module": "esnext",
4 | "moduleResolution": "node",
5 | "target": "es6",
6 | "outDir": "configViewer",
7 | "lib": [
8 | "es6",
9 | "dom"
10 | ],
11 | "jsx": "react",
12 | "sourceMap": true,
13 | "rootDir": "..",
14 | "noUnusedLocals": true,
15 | "noImplicitReturns": true,
16 | "noFallthroughCasesInSwitch": true,
17 | "experimentalDecorators": true
18 | },
19 | "exclude": [
20 | "node_modules"
21 | ]
22 | }
--------------------------------------------------------------------------------
/Step 6/vscode-react/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "module": "commonjs",
4 | "target": "es6",
5 | "outDir": "out",
6 | "lib": [
7 | "es6"
8 | ],
9 | "sourceMap": true,
10 | "rootDir": "src",
11 | "strict": true /* enable all strict type-checking options */
12 | /* Additional Checks */
13 | // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */
14 | // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */
15 | // "noUnusedParameters": true, /* Report errors on unused parameters. */
16 | },
17 | "exclude": [
18 | "node_modules",
19 | ".vscode-test",
20 | "**/view/app/index.css",
21 | "**/view/app/index.tsx",
22 | "**/view/app/tsconfig.json",
23 | "**/view/app/config.tsx"
24 | ]
25 | }
26 |
--------------------------------------------------------------------------------
/Step 1/vscode-react/src/test/extension.test.ts:
--------------------------------------------------------------------------------
1 | //
2 | // Note: This example test is leveraging the Mocha test framework.
3 | // Please refer to their documentation on https://mochajs.org/ for help.
4 | //
5 |
6 | // The module 'assert' provides assertion methods from node
7 | import * as assert from 'assert';
8 |
9 | // You can import and use all API from the 'vscode' module
10 | // as well as import your extension to test it
11 | // import * as vscode from 'vscode';
12 | // import * as myExtension from '../extension';
13 |
14 | // Defines a Mocha test suite to group tests of similar kind together
15 | suite("Extension Tests", function () {
16 |
17 | // Defines a Mocha unit test
18 | test("Something 1", function() {
19 | assert.equal(-1, [1, 2, 3].indexOf(5));
20 | assert.equal(-1, [1, 2, 3].indexOf(0));
21 | });
22 | });
--------------------------------------------------------------------------------
/Step 2/vscode-react/src/test/extension.test.ts:
--------------------------------------------------------------------------------
1 | //
2 | // Note: This example test is leveraging the Mocha test framework.
3 | // Please refer to their documentation on https://mochajs.org/ for help.
4 | //
5 |
6 | // The module 'assert' provides assertion methods from node
7 | import * as assert from 'assert';
8 |
9 | // You can import and use all API from the 'vscode' module
10 | // as well as import your extension to test it
11 | // import * as vscode from 'vscode';
12 | // import * as myExtension from '../extension';
13 |
14 | // Defines a Mocha test suite to group tests of similar kind together
15 | suite("Extension Tests", function () {
16 |
17 | // Defines a Mocha unit test
18 | test("Something 1", function() {
19 | assert.equal(-1, [1, 2, 3].indexOf(5));
20 | assert.equal(-1, [1, 2, 3].indexOf(0));
21 | });
22 | });
--------------------------------------------------------------------------------
/Step 3/vscode-react/src/test/extension.test.ts:
--------------------------------------------------------------------------------
1 | //
2 | // Note: This example test is leveraging the Mocha test framework.
3 | // Please refer to their documentation on https://mochajs.org/ for help.
4 | //
5 |
6 | // The module 'assert' provides assertion methods from node
7 | import * as assert from 'assert';
8 |
9 | // You can import and use all API from the 'vscode' module
10 | // as well as import your extension to test it
11 | // import * as vscode from 'vscode';
12 | // import * as myExtension from '../extension';
13 |
14 | // Defines a Mocha test suite to group tests of similar kind together
15 | suite("Extension Tests", function () {
16 |
17 | // Defines a Mocha unit test
18 | test("Something 1", function() {
19 | assert.equal(-1, [1, 2, 3].indexOf(5));
20 | assert.equal(-1, [1, 2, 3].indexOf(0));
21 | });
22 | });
--------------------------------------------------------------------------------
/Step 4/vscode-react/src/test/extension.test.ts:
--------------------------------------------------------------------------------
1 | //
2 | // Note: This example test is leveraging the Mocha test framework.
3 | // Please refer to their documentation on https://mochajs.org/ for help.
4 | //
5 |
6 | // The module 'assert' provides assertion methods from node
7 | import * as assert from 'assert';
8 |
9 | // You can import and use all API from the 'vscode' module
10 | // as well as import your extension to test it
11 | // import * as vscode from 'vscode';
12 | // import * as myExtension from '../extension';
13 |
14 | // Defines a Mocha test suite to group tests of similar kind together
15 | suite("Extension Tests", function () {
16 |
17 | // Defines a Mocha unit test
18 | test("Something 1", function() {
19 | assert.equal(-1, [1, 2, 3].indexOf(5));
20 | assert.equal(-1, [1, 2, 3].indexOf(0));
21 | });
22 | });
--------------------------------------------------------------------------------
/Step 5/vscode-react/src/test/extension.test.ts:
--------------------------------------------------------------------------------
1 | //
2 | // Note: This example test is leveraging the Mocha test framework.
3 | // Please refer to their documentation on https://mochajs.org/ for help.
4 | //
5 |
6 | // The module 'assert' provides assertion methods from node
7 | import * as assert from 'assert';
8 |
9 | // You can import and use all API from the 'vscode' module
10 | // as well as import your extension to test it
11 | // import * as vscode from 'vscode';
12 | // import * as myExtension from '../extension';
13 |
14 | // Defines a Mocha test suite to group tests of similar kind together
15 | suite("Extension Tests", function () {
16 |
17 | // Defines a Mocha unit test
18 | test("Something 1", function() {
19 | assert.equal(-1, [1, 2, 3].indexOf(5));
20 | assert.equal(-1, [1, 2, 3].indexOf(0));
21 | });
22 | });
--------------------------------------------------------------------------------
/Step 6/vscode-react/src/test/extension.test.ts:
--------------------------------------------------------------------------------
1 | //
2 | // Note: This example test is leveraging the Mocha test framework.
3 | // Please refer to their documentation on https://mochajs.org/ for help.
4 | //
5 |
6 | // The module 'assert' provides assertion methods from node
7 | import * as assert from 'assert';
8 |
9 | // You can import and use all API from the 'vscode' module
10 | // as well as import your extension to test it
11 | // import * as vscode from 'vscode';
12 | // import * as myExtension from '../extension';
13 |
14 | // Defines a Mocha test suite to group tests of similar kind together
15 | suite("Extension Tests", function () {
16 |
17 | // Defines a Mocha unit test
18 | test("Something 1", function() {
19 | assert.equal(-1, [1, 2, 3].indexOf(5));
20 | assert.equal(-1, [1, 2, 3].indexOf(0));
21 | });
22 | });
--------------------------------------------------------------------------------
/Step 4/vscode-react/webpack.config.js:
--------------------------------------------------------------------------------
1 | const path = require("path");
2 |
3 | module.exports = {
4 | entry: {
5 | configViewer: "./src/view/app/index.tsx"
6 | },
7 | output: {
8 | path: path.resolve(__dirname, "configViewer"),
9 | filename: "[name].js"
10 | },
11 | devtool: "eval-source-map",
12 | resolve: {
13 | extensions: [".js", ".ts", ".tsx", ".json"]
14 | },
15 | module: {
16 | rules: [
17 | {
18 | test: /\.(ts|tsx)$/,
19 | loader: "ts-loader",
20 | options: {}
21 | },
22 | {
23 | test: /\.css$/,
24 | use: [
25 | {
26 | loader: "style-loader"
27 | },
28 | {
29 | loader: "css-loader"
30 | }
31 | ]
32 | }
33 | ]
34 | },
35 | performance: {
36 | hints: false
37 | }
38 | };
39 |
--------------------------------------------------------------------------------
/Step 5/vscode-react/webpack.config.js:
--------------------------------------------------------------------------------
1 | const path = require("path");
2 |
3 | module.exports = {
4 | entry: {
5 | configViewer: "./src/view/app/index.tsx"
6 | },
7 | output: {
8 | path: path.resolve(__dirname, "configViewer"),
9 | filename: "[name].js"
10 | },
11 | devtool: "eval-source-map",
12 | resolve: {
13 | extensions: [".js", ".ts", ".tsx", ".json"]
14 | },
15 | module: {
16 | rules: [
17 | {
18 | test: /\.(ts|tsx)$/,
19 | loader: "ts-loader",
20 | options: {}
21 | },
22 | {
23 | test: /\.css$/,
24 | use: [
25 | {
26 | loader: "style-loader"
27 | },
28 | {
29 | loader: "css-loader"
30 | }
31 | ]
32 | }
33 | ]
34 | },
35 | performance: {
36 | hints: false
37 | }
38 | };
39 |
--------------------------------------------------------------------------------
/Step 6/vscode-react/webpack.config.js:
--------------------------------------------------------------------------------
1 | const path = require("path");
2 |
3 | module.exports = {
4 | entry: {
5 | configViewer: "./src/view/app/index.tsx"
6 | },
7 | output: {
8 | path: path.resolve(__dirname, "configViewer"),
9 | filename: "[name].js"
10 | },
11 | devtool: "eval-source-map",
12 | resolve: {
13 | extensions: [".js", ".ts", ".tsx", ".json"]
14 | },
15 | module: {
16 | rules: [
17 | {
18 | test: /\.(ts|tsx)$/,
19 | loader: "ts-loader",
20 | options: {}
21 | },
22 | {
23 | test: /\.css$/,
24 | use: [
25 | {
26 | loader: "style-loader"
27 | },
28 | {
29 | loader: "css-loader"
30 | }
31 | ]
32 | }
33 | ]
34 | },
35 | performance: {
36 | hints: false
37 | }
38 | };
39 |
--------------------------------------------------------------------------------
/Step 1/vscode-react/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vscode-react",
3 | "displayName": "vscode-react",
4 | "description": "Inception",
5 | "version": "0.0.1",
6 | "engines": {
7 | "vscode": "^1.29.0"
8 | },
9 | "categories": [
10 | "Other"
11 | ],
12 | "activationEvents": [
13 | "onCommand:extension.helloWorld"
14 | ],
15 | "main": "./out/extension.js",
16 | "contributes": {
17 | "commands": [
18 | {
19 | "command": "extension.helloWorld",
20 | "title": "Hello World"
21 | }
22 | ]
23 | },
24 | "scripts": {
25 | "vscode:prepublish": "npm run compile",
26 | "compile": "tsc -p ./",
27 | "watch": "tsc -watch -p ./",
28 | "postinstall": "node ./node_modules/vscode/bin/install",
29 | "test": "npm run compile && node ./node_modules/vscode/bin/test"
30 | },
31 | "devDependencies": {
32 | "typescript": "^3.3.1",
33 | "vscode": "^1.1.28",
34 | "tslint": "^5.12.1",
35 | "@types/node": "^10.12.21",
36 | "@types/mocha": "^2.2.42"
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/Step 3/vscode-react/src/view/ViewLoader.ts:
--------------------------------------------------------------------------------
1 | import * as vscode from "vscode";
2 |
3 | export default class ViewLoader {
4 | private readonly _panel: vscode.WebviewPanel | undefined;
5 |
6 | constructor(fileUri: vscode.Uri) {
7 | this._panel = vscode.window.createWebviewPanel(
8 | "configView",
9 | "Config View",
10 | vscode.ViewColumn.One,
11 | {}
12 | );
13 |
14 | this._panel.webview.html = this.getWebviewContent(fileUri.fsPath);
15 | }
16 |
17 | private getWebviewContent(filepath: string): string {
18 | return `
19 |
20 |
21 |
22 |
23 | Config View
24 |
25 |
26 |
27 | ${filepath}
28 |
29 | `;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/Step 4/vscode-react/src/view/ViewLoader.ts:
--------------------------------------------------------------------------------
1 | import * as vscode from "vscode";
2 |
3 | export default class ViewLoader {
4 | private readonly _panel: vscode.WebviewPanel | undefined;
5 |
6 | constructor(fileUri: vscode.Uri) {
7 | this._panel = vscode.window.createWebviewPanel(
8 | "configView",
9 | "Config View",
10 | vscode.ViewColumn.One,
11 | {}
12 | );
13 |
14 | this._panel.webview.html = this.getWebviewContent(fileUri.fsPath);
15 | }
16 |
17 | private getWebviewContent(filepath: string): string {
18 | return `
19 |
20 |
21 |
22 |
23 | Config View
24 |
25 |
26 |
27 | ${filepath}
28 |
29 | `;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 Nicolas Fabre
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Step 1/vscode-react/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | // A launch configuration that compiles the extension and then opens it inside a new window
2 | // Use IntelliSense to learn about possible attributes.
3 | // Hover to view descriptions of existing attributes.
4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5 | {
6 | "version": "0.2.0",
7 | "configurations": [{
8 | "name": "Run Extension",
9 | "type": "extensionHost",
10 | "request": "launch",
11 | "runtimeExecutable": "${execPath}",
12 | "args": [
13 | "--extensionDevelopmentPath=${workspaceFolder}"
14 | ],
15 | "outFiles": [
16 | "${workspaceFolder}/out/**/*.js"
17 | ],
18 | "preLaunchTask": "npm: watch"
19 | },
20 | {
21 | "name": "Extension Tests",
22 | "type": "extensionHost",
23 | "request": "launch",
24 | "runtimeExecutable": "${execPath}",
25 | "args": [
26 | "--extensionDevelopmentPath=${workspaceFolder}",
27 | "--extensionTestsPath=${workspaceFolder}/out/test"
28 | ],
29 | "outFiles": [
30 | "${workspaceFolder}/out/test/**/*.js"
31 | ],
32 | "preLaunchTask": "npm: watch"
33 | }
34 | ]
35 | }
36 |
--------------------------------------------------------------------------------
/Step 2/vscode-react/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | // A launch configuration that compiles the extension and then opens it inside a new window
2 | // Use IntelliSense to learn about possible attributes.
3 | // Hover to view descriptions of existing attributes.
4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5 | {
6 | "version": "0.2.0",
7 | "configurations": [{
8 | "name": "Run Extension",
9 | "type": "extensionHost",
10 | "request": "launch",
11 | "runtimeExecutable": "${execPath}",
12 | "args": [
13 | "--extensionDevelopmentPath=${workspaceFolder}"
14 | ],
15 | "outFiles": [
16 | "${workspaceFolder}/out/**/*.js"
17 | ],
18 | "preLaunchTask": "npm: watch"
19 | },
20 | {
21 | "name": "Extension Tests",
22 | "type": "extensionHost",
23 | "request": "launch",
24 | "runtimeExecutable": "${execPath}",
25 | "args": [
26 | "--extensionDevelopmentPath=${workspaceFolder}",
27 | "--extensionTestsPath=${workspaceFolder}/out/test"
28 | ],
29 | "outFiles": [
30 | "${workspaceFolder}/out/test/**/*.js"
31 | ],
32 | "preLaunchTask": "npm: watch"
33 | }
34 | ]
35 | }
36 |
--------------------------------------------------------------------------------
/Step 3/vscode-react/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | // A launch configuration that compiles the extension and then opens it inside a new window
2 | // Use IntelliSense to learn about possible attributes.
3 | // Hover to view descriptions of existing attributes.
4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5 | {
6 | "version": "0.2.0",
7 | "configurations": [{
8 | "name": "Run Extension",
9 | "type": "extensionHost",
10 | "request": "launch",
11 | "runtimeExecutable": "${execPath}",
12 | "args": [
13 | "--extensionDevelopmentPath=${workspaceFolder}"
14 | ],
15 | "outFiles": [
16 | "${workspaceFolder}/out/**/*.js"
17 | ],
18 | "preLaunchTask": "npm: watch"
19 | },
20 | {
21 | "name": "Extension Tests",
22 | "type": "extensionHost",
23 | "request": "launch",
24 | "runtimeExecutable": "${execPath}",
25 | "args": [
26 | "--extensionDevelopmentPath=${workspaceFolder}",
27 | "--extensionTestsPath=${workspaceFolder}/out/test"
28 | ],
29 | "outFiles": [
30 | "${workspaceFolder}/out/test/**/*.js"
31 | ],
32 | "preLaunchTask": "npm: watch"
33 | }
34 | ]
35 | }
36 |
--------------------------------------------------------------------------------
/Step 4/vscode-react/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | // A launch configuration that compiles the extension and then opens it inside a new window
2 | // Use IntelliSense to learn about possible attributes.
3 | // Hover to view descriptions of existing attributes.
4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5 | {
6 | "version": "0.2.0",
7 | "configurations": [{
8 | "name": "Run Extension",
9 | "type": "extensionHost",
10 | "request": "launch",
11 | "runtimeExecutable": "${execPath}",
12 | "args": [
13 | "--extensionDevelopmentPath=${workspaceFolder}"
14 | ],
15 | "outFiles": [
16 | "${workspaceFolder}/out/**/*.js"
17 | ],
18 | "preLaunchTask": "npm: watch"
19 | },
20 | {
21 | "name": "Extension Tests",
22 | "type": "extensionHost",
23 | "request": "launch",
24 | "runtimeExecutable": "${execPath}",
25 | "args": [
26 | "--extensionDevelopmentPath=${workspaceFolder}",
27 | "--extensionTestsPath=${workspaceFolder}/out/test"
28 | ],
29 | "outFiles": [
30 | "${workspaceFolder}/out/test/**/*.js"
31 | ],
32 | "preLaunchTask": "npm: watch"
33 | }
34 | ]
35 | }
36 |
--------------------------------------------------------------------------------
/Step 5/vscode-react/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | // A launch configuration that compiles the extension and then opens it inside a new window
2 | // Use IntelliSense to learn about possible attributes.
3 | // Hover to view descriptions of existing attributes.
4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5 | {
6 | "version": "0.2.0",
7 | "configurations": [{
8 | "name": "Run Extension",
9 | "type": "extensionHost",
10 | "request": "launch",
11 | "runtimeExecutable": "${execPath}",
12 | "args": [
13 | "--extensionDevelopmentPath=${workspaceFolder}"
14 | ],
15 | "outFiles": [
16 | "${workspaceFolder}/out/**/*.js"
17 | ],
18 | "preLaunchTask": "npm: watch"
19 | },
20 | {
21 | "name": "Extension Tests",
22 | "type": "extensionHost",
23 | "request": "launch",
24 | "runtimeExecutable": "${execPath}",
25 | "args": [
26 | "--extensionDevelopmentPath=${workspaceFolder}",
27 | "--extensionTestsPath=${workspaceFolder}/out/test"
28 | ],
29 | "outFiles": [
30 | "${workspaceFolder}/out/test/**/*.js"
31 | ],
32 | "preLaunchTask": "npm: watch"
33 | }
34 | ]
35 | }
36 |
--------------------------------------------------------------------------------
/Step 6/vscode-react/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | // A launch configuration that compiles the extension and then opens it inside a new window
2 | // Use IntelliSense to learn about possible attributes.
3 | // Hover to view descriptions of existing attributes.
4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5 | {
6 | "version": "0.2.0",
7 | "configurations": [{
8 | "name": "Run Extension",
9 | "type": "extensionHost",
10 | "request": "launch",
11 | "runtimeExecutable": "${execPath}",
12 | "args": [
13 | "--extensionDevelopmentPath=${workspaceFolder}"
14 | ],
15 | "outFiles": [
16 | "${workspaceFolder}/out/**/*.js"
17 | ],
18 | "preLaunchTask": "npm: watch"
19 | },
20 | {
21 | "name": "Extension Tests",
22 | "type": "extensionHost",
23 | "request": "launch",
24 | "runtimeExecutable": "${execPath}",
25 | "args": [
26 | "--extensionDevelopmentPath=${workspaceFolder}",
27 | "--extensionTestsPath=${workspaceFolder}/out/test"
28 | ],
29 | "outFiles": [
30 | "${workspaceFolder}/out/test/**/*.js"
31 | ],
32 | "preLaunchTask": "npm: watch"
33 | }
34 | ]
35 | }
36 |
--------------------------------------------------------------------------------
/Step 1/vscode-react/src/test/index.ts:
--------------------------------------------------------------------------------
1 | //
2 | // PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING
3 | //
4 | // This file is providing the test runner to use when running extension tests.
5 | // By default the test runner in use is Mocha based.
6 | //
7 | // You can provide your own test runner if you want to override it by exporting
8 | // a function run(testsRoot: string, clb: (error: Error, failures?: number) => void): void
9 | // that the extension host can call to run the tests. The test runner is expected to use console.log
10 | // to report the results back to the caller. When the tests are finished, return
11 | // a possible error to the callback or null if none.
12 |
13 | import * as testRunner from 'vscode/lib/testrunner';
14 |
15 | // You can directly control Mocha options by configuring the test runner below
16 | // See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options
17 | // for more info
18 | testRunner.configure({
19 | ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.)
20 | useColors: true // colored output from test results
21 | });
22 |
23 | module.exports = testRunner;
--------------------------------------------------------------------------------
/Step 2/vscode-react/src/test/index.ts:
--------------------------------------------------------------------------------
1 | //
2 | // PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING
3 | //
4 | // This file is providing the test runner to use when running extension tests.
5 | // By default the test runner in use is Mocha based.
6 | //
7 | // You can provide your own test runner if you want to override it by exporting
8 | // a function run(testsRoot: string, clb: (error: Error, failures?: number) => void): void
9 | // that the extension host can call to run the tests. The test runner is expected to use console.log
10 | // to report the results back to the caller. When the tests are finished, return
11 | // a possible error to the callback or null if none.
12 |
13 | import * as testRunner from 'vscode/lib/testrunner';
14 |
15 | // You can directly control Mocha options by configuring the test runner below
16 | // See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options
17 | // for more info
18 | testRunner.configure({
19 | ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.)
20 | useColors: true // colored output from test results
21 | });
22 |
23 | module.exports = testRunner;
--------------------------------------------------------------------------------
/Step 3/vscode-react/src/test/index.ts:
--------------------------------------------------------------------------------
1 | //
2 | // PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING
3 | //
4 | // This file is providing the test runner to use when running extension tests.
5 | // By default the test runner in use is Mocha based.
6 | //
7 | // You can provide your own test runner if you want to override it by exporting
8 | // a function run(testsRoot: string, clb: (error: Error, failures?: number) => void): void
9 | // that the extension host can call to run the tests. The test runner is expected to use console.log
10 | // to report the results back to the caller. When the tests are finished, return
11 | // a possible error to the callback or null if none.
12 |
13 | import * as testRunner from 'vscode/lib/testrunner';
14 |
15 | // You can directly control Mocha options by configuring the test runner below
16 | // See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options
17 | // for more info
18 | testRunner.configure({
19 | ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.)
20 | useColors: true // colored output from test results
21 | });
22 |
23 | module.exports = testRunner;
--------------------------------------------------------------------------------
/Step 4/vscode-react/src/test/index.ts:
--------------------------------------------------------------------------------
1 | //
2 | // PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING
3 | //
4 | // This file is providing the test runner to use when running extension tests.
5 | // By default the test runner in use is Mocha based.
6 | //
7 | // You can provide your own test runner if you want to override it by exporting
8 | // a function run(testsRoot: string, clb: (error: Error, failures?: number) => void): void
9 | // that the extension host can call to run the tests. The test runner is expected to use console.log
10 | // to report the results back to the caller. When the tests are finished, return
11 | // a possible error to the callback or null if none.
12 |
13 | import * as testRunner from 'vscode/lib/testrunner';
14 |
15 | // You can directly control Mocha options by configuring the test runner below
16 | // See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options
17 | // for more info
18 | testRunner.configure({
19 | ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.)
20 | useColors: true // colored output from test results
21 | });
22 |
23 | module.exports = testRunner;
--------------------------------------------------------------------------------
/Step 5/vscode-react/src/test/index.ts:
--------------------------------------------------------------------------------
1 | //
2 | // PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING
3 | //
4 | // This file is providing the test runner to use when running extension tests.
5 | // By default the test runner in use is Mocha based.
6 | //
7 | // You can provide your own test runner if you want to override it by exporting
8 | // a function run(testsRoot: string, clb: (error: Error, failures?: number) => void): void
9 | // that the extension host can call to run the tests. The test runner is expected to use console.log
10 | // to report the results back to the caller. When the tests are finished, return
11 | // a possible error to the callback or null if none.
12 |
13 | import * as testRunner from 'vscode/lib/testrunner';
14 |
15 | // You can directly control Mocha options by configuring the test runner below
16 | // See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options
17 | // for more info
18 | testRunner.configure({
19 | ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.)
20 | useColors: true // colored output from test results
21 | });
22 |
23 | module.exports = testRunner;
--------------------------------------------------------------------------------
/Step 6/vscode-react/src/test/index.ts:
--------------------------------------------------------------------------------
1 | //
2 | // PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING
3 | //
4 | // This file is providing the test runner to use when running extension tests.
5 | // By default the test runner in use is Mocha based.
6 | //
7 | // You can provide your own test runner if you want to override it by exporting
8 | // a function run(testsRoot: string, clb: (error: Error, failures?: number) => void): void
9 | // that the extension host can call to run the tests. The test runner is expected to use console.log
10 | // to report the results back to the caller. When the tests are finished, return
11 | // a possible error to the callback or null if none.
12 |
13 | import * as testRunner from 'vscode/lib/testrunner';
14 |
15 | // You can directly control Mocha options by configuring the test runner below
16 | // See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options
17 | // for more info
18 | testRunner.configure({
19 | ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.)
20 | useColors: true // colored output from test results
21 | });
22 |
23 | module.exports = testRunner;
--------------------------------------------------------------------------------
/Step 2/vscode-react/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vscode-react",
3 | "displayName": "vscode-react",
4 | "description": "Inception",
5 | "version": "0.0.1",
6 | "engines": {
7 | "vscode": "^1.29.0"
8 | },
9 | "categories": [
10 | "Other"
11 | ],
12 | "activationEvents": [
13 | "onCommand:extension.viewconfig"
14 | ],
15 | "main": "./out/extension.js",
16 | "contributes": {
17 | "languages": [
18 | {
19 | "id": "dummyconfig",
20 | "aliases": [
21 | "DummyConfig",
22 | "dc"
23 | ],
24 | "extensions": [
25 | ".json"
26 | ]
27 | }
28 | ],
29 | "commands": [
30 | {
31 | "command": "extension.viewconfig",
32 | "title": "Display config JSON.",
33 | "category": "Webview React"
34 | }
35 | ]
36 | },
37 | "scripts": {
38 | "vscode:prepublish": "npm run compile",
39 | "compile": "tsc -p ./",
40 | "watch": "tsc -watch -p ./",
41 | "postinstall": "node ./node_modules/vscode/bin/install",
42 | "test": "npm run compile && node ./node_modules/vscode/bin/test"
43 | },
44 | "devDependencies": {
45 | "typescript": "^3.3.1",
46 | "vscode": "^1.1.28",
47 | "tslint": "^5.12.1",
48 | "@types/node": "^10.12.21",
49 | "@types/mocha": "^2.2.42"
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/Step 3/vscode-react/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vscode-react",
3 | "displayName": "vscode-react",
4 | "description": "Inception",
5 | "version": "0.0.1",
6 | "engines": {
7 | "vscode": "^1.29.0"
8 | },
9 | "categories": [
10 | "Other"
11 | ],
12 | "activationEvents": [
13 | "onCommand:extension.viewconfig"
14 | ],
15 | "main": "./out/extension.js",
16 | "contributes": {
17 | "languages": [
18 | {
19 | "id": "dummyconfig",
20 | "aliases": [
21 | "DummyConfig",
22 | "dc"
23 | ],
24 | "extensions": [
25 | ".json"
26 | ]
27 | }
28 | ],
29 | "commands": [
30 | {
31 | "command": "extension.viewconfig",
32 | "title": "Display config JSON.",
33 | "category": "Webview React"
34 | }
35 | ]
36 | },
37 | "scripts": {
38 | "vscode:prepublish": "npm run compile",
39 | "compile": "tsc -p ./",
40 | "watch": "tsc -watch -p ./",
41 | "postinstall": "node ./node_modules/vscode/bin/install",
42 | "test": "npm run compile && node ./node_modules/vscode/bin/test"
43 | },
44 | "devDependencies": {
45 | "typescript": "^3.3.1",
46 | "vscode": "^1.1.28",
47 | "tslint": "^5.12.1",
48 | "@types/node": "^10.12.21",
49 | "@types/mocha": "^2.2.42"
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/Step 1/vscode-react/src/extension.ts:
--------------------------------------------------------------------------------
1 | // The module 'vscode' contains the VS Code extensibility API
2 | // Import the module and reference it with the alias vscode in your code below
3 | import * as vscode from 'vscode';
4 |
5 | // this method is called when your extension is activated
6 | // your extension is activated the very first time the command is executed
7 | export function activate(context: vscode.ExtensionContext) {
8 |
9 | // Use the console to output diagnostic information (console.log) and errors (console.error)
10 | // This line of code will only be executed once when your extension is activated
11 | console.log('Congratulations, your extension "vscode-react" is now active!');
12 |
13 | // The command has been defined in the package.json file
14 | // Now provide the implementation of the command with registerCommand
15 | // The commandId parameter must match the command field in package.json
16 | let disposable = vscode.commands.registerCommand('extension.helloWorld', () => {
17 | // The code you place here will be executed every time your command is executed
18 |
19 | // Display a message box to the user
20 | vscode.window.showInformationMessage('Hello World!');
21 | });
22 |
23 | context.subscriptions.push(disposable);
24 | }
25 |
26 | // this method is called when your extension is deactivated
27 | export function deactivate() {}
28 |
--------------------------------------------------------------------------------
/Step 2/vscode-react/src/extension.ts:
--------------------------------------------------------------------------------
1 | // The module 'vscode' contains the VS Code extensibility API
2 | // Import the module and reference it with the alias vscode in your code below
3 | import * as vscode from "vscode";
4 |
5 | // this method is called when your extension is activated
6 | // your extension is activated the very first time the command is executed
7 | export function activate(context: vscode.ExtensionContext) {
8 | // Use the console to output diagnostic information (console.log) and errors (console.error)
9 | // This line of code will only be executed once when your extension is activated
10 | console.log('Congratulations, your extension "vscode-react" is now active!');
11 |
12 | // The command has been defined in the package.json file
13 | // Now provide the implementation of the command with registerCommand
14 | // The commandId parameter must match the command field in package.json
15 | let disposable = vscode.commands.registerCommand(
16 | "extension.viewconfig",
17 | () => {
18 | let openDialogOptions: vscode.OpenDialogOptions = {
19 | canSelectFiles: true,
20 | canSelectFolders: false,
21 | canSelectMany: false,
22 | filters: {
23 | Json: ["json"]
24 | }
25 | };
26 |
27 | vscode.window
28 | .showOpenDialog(openDialogOptions)
29 | .then(async (uri: vscode.Uri[] | undefined) => {
30 | if (uri && uri.length > 0) {
31 | vscode.window.showInformationMessage(uri[0].fsPath);
32 | } else {
33 | vscode.window.showErrorMessage("No valid file selected!");
34 | return;
35 | }
36 | });
37 | }
38 | );
39 |
40 | context.subscriptions.push(disposable);
41 | }
42 |
43 | // this method is called when your extension is deactivated
44 | export function deactivate() {}
45 |
--------------------------------------------------------------------------------
/Step 5/vscode-react/src/view/app/config.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react";
2 | import { IConfig, IUser } from "./model";
3 |
4 | interface IConfigProps {
5 | vscode: any;
6 | initialData: IConfig;
7 | }
8 |
9 | interface IConfigState {
10 | config: IConfig;
11 | }
12 |
13 | export default class Config extends React.Component<
14 | IConfigProps,
15 | IConfigState
16 | > {
17 | constructor(props: any) {
18 | super(props);
19 |
20 | let initialData = this.props.initialData;
21 |
22 | let oldState = this.props.vscode.getState();
23 | if (oldState) {
24 | this.state = oldState;
25 | } else {
26 | this.state = { config: initialData };
27 | }
28 | }
29 |
30 | renderUsers(users: IUser[]) {
31 | return (
32 |
33 | User List :
34 |
53 |
54 | );
55 | }
56 |
57 | render() {
58 | return (
59 |
60 | Config name : {this.state.config.name} {" "}
61 | {this.state.config.description}
62 | {this.renderUsers(this.state.config.users)}
63 |
64 |
65 | );
66 | }
67 | }
68 |
--------------------------------------------------------------------------------
/Step 3/vscode-react/src/extension.ts:
--------------------------------------------------------------------------------
1 | // The module 'vscode' contains the VS Code extensibility API
2 | // Import the module and reference it with the alias vscode in your code below
3 | import * as vscode from "vscode";
4 | import ViewLoader from "./view/ViewLoader";
5 |
6 | // this method is called when your extension is activated
7 | // your extension is activated the very first time the command is executed
8 | export function activate(context: vscode.ExtensionContext) {
9 | // Use the console to output diagnostic information (console.log) and errors (console.error)
10 | // This line of code will only be executed once when your extension is activated
11 | console.log('Congratulations, your extension "vscode-react" is now active!');
12 |
13 | // The command has been defined in the package.json file
14 | // Now provide the implementation of the command with registerCommand
15 | // The commandId parameter must match the command field in package.json
16 | let disposable = vscode.commands.registerCommand(
17 | "extension.viewconfig",
18 | () => {
19 | let openDialogOptions: vscode.OpenDialogOptions = {
20 | canSelectFiles: true,
21 | canSelectFolders: false,
22 | canSelectMany: false,
23 | filters: {
24 | Json: ["json"]
25 | }
26 | };
27 |
28 | vscode.window
29 | .showOpenDialog(openDialogOptions)
30 | .then(async (uri: vscode.Uri[] | undefined) => {
31 | if (uri && uri.length > 0) {
32 | const view = new ViewLoader(uri[0]);
33 | } else {
34 | vscode.window.showErrorMessage("No valid file selected!");
35 | return;
36 | }
37 | });
38 | }
39 | );
40 |
41 | context.subscriptions.push(disposable);
42 | }
43 |
44 | // this method is called when your extension is deactivated
45 | export function deactivate() {}
46 |
--------------------------------------------------------------------------------
/Step 4/vscode-react/src/extension.ts:
--------------------------------------------------------------------------------
1 | // The module 'vscode' contains the VS Code extensibility API
2 | // Import the module and reference it with the alias vscode in your code below
3 | import * as vscode from "vscode";
4 | import ViewLoader from "./view/ViewLoader";
5 |
6 | // this method is called when your extension is activated
7 | // your extension is activated the very first time the command is executed
8 | export function activate(context: vscode.ExtensionContext) {
9 | // Use the console to output diagnostic information (console.log) and errors (console.error)
10 | // This line of code will only be executed once when your extension is activated
11 | console.log('Congratulations, your extension "vscode-react" is now active!');
12 |
13 | // The command has been defined in the package.json file
14 | // Now provide the implementation of the command with registerCommand
15 | // The commandId parameter must match the command field in package.json
16 | let disposable = vscode.commands.registerCommand(
17 | "extension.viewconfig",
18 | () => {
19 | let openDialogOptions: vscode.OpenDialogOptions = {
20 | canSelectFiles: true,
21 | canSelectFolders: false,
22 | canSelectMany: false,
23 | filters: {
24 | Json: ["json"]
25 | }
26 | };
27 |
28 | vscode.window
29 | .showOpenDialog(openDialogOptions)
30 | .then(async (uri: vscode.Uri[] | undefined) => {
31 | if (uri && uri.length > 0) {
32 | const view = new ViewLoader(uri[0]);
33 | } else {
34 | vscode.window.showErrorMessage("No valid file selected!");
35 | return;
36 | }
37 | });
38 | }
39 | );
40 |
41 | context.subscriptions.push(disposable);
42 | }
43 |
44 | // this method is called when your extension is deactivated
45 | export function deactivate() {}
46 |
--------------------------------------------------------------------------------
/Step 5/vscode-react/src/extension.ts:
--------------------------------------------------------------------------------
1 | // The module 'vscode' contains the VS Code extensibility API
2 | // Import the module and reference it with the alias vscode in your code below
3 | import * as vscode from "vscode";
4 | import ViewLoader from "./view/ViewLoader";
5 |
6 | // this method is called when your extension is activated
7 | // your extension is activated the very first time the command is executed
8 | export function activate(context: vscode.ExtensionContext) {
9 | // Use the console to output diagnostic information (console.log) and errors (console.error)
10 | // This line of code will only be executed once when your extension is activated
11 | console.log('Congratulations, your extension "vscode-react" is now active!');
12 |
13 | // The command has been defined in the package.json file
14 | // Now provide the implementation of the command with registerCommand
15 | // The commandId parameter must match the command field in package.json
16 | let disposable = vscode.commands.registerCommand(
17 | "extension.viewconfig",
18 | () => {
19 | let openDialogOptions: vscode.OpenDialogOptions = {
20 | canSelectFiles: true,
21 | canSelectFolders: false,
22 | canSelectMany: false,
23 | filters: {
24 | Json: ["json"]
25 | }
26 | };
27 |
28 | vscode.window
29 | .showOpenDialog(openDialogOptions)
30 | .then(async (uri: vscode.Uri[] | undefined) => {
31 | if (uri && uri.length > 0) {
32 | const view = new ViewLoader(uri[0], context.extensionPath);
33 | } else {
34 | vscode.window.showErrorMessage("No valid file selected!");
35 | return;
36 | }
37 | });
38 | }
39 | );
40 |
41 | context.subscriptions.push(disposable);
42 | }
43 |
44 | // this method is called when your extension is deactivated
45 | export function deactivate() {}
46 |
--------------------------------------------------------------------------------
/Step 6/vscode-react/src/extension.ts:
--------------------------------------------------------------------------------
1 | // The module 'vscode' contains the VS Code extensibility API
2 | // Import the module and reference it with the alias vscode in your code below
3 | import * as vscode from "vscode";
4 | import ViewLoader from "./view/ViewLoader";
5 |
6 | // this method is called when your extension is activated
7 | // your extension is activated the very first time the command is executed
8 | export function activate(context: vscode.ExtensionContext) {
9 | // Use the console to output diagnostic information (console.log) and errors (console.error)
10 | // This line of code will only be executed once when your extension is activated
11 | console.log('Congratulations, your extension "vscode-react" is now active!');
12 |
13 | // The command has been defined in the package.json file
14 | // Now provide the implementation of the command with registerCommand
15 | // The commandId parameter must match the command field in package.json
16 | let disposable = vscode.commands.registerCommand(
17 | "extension.viewconfig",
18 | () => {
19 | let openDialogOptions: vscode.OpenDialogOptions = {
20 | canSelectFiles: true,
21 | canSelectFolders: false,
22 | canSelectMany: false,
23 | filters: {
24 | Json: ["json"]
25 | }
26 | };
27 |
28 | vscode.window
29 | .showOpenDialog(openDialogOptions)
30 | .then(async (uri: vscode.Uri[] | undefined) => {
31 | if (uri && uri.length > 0) {
32 | const view = new ViewLoader(uri[0], context.extensionPath);
33 | } else {
34 | vscode.window.showErrorMessage("No valid file selected!");
35 | return;
36 | }
37 | });
38 | }
39 | );
40 |
41 | context.subscriptions.push(disposable);
42 | }
43 |
44 | // this method is called when your extension is deactivated
45 | export function deactivate() {}
46 |
--------------------------------------------------------------------------------
/Step 4/vscode-react/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vscode-react",
3 | "displayName": "vscode-react",
4 | "description": "Inception",
5 | "version": "0.0.1",
6 | "engines": {
7 | "vscode": "^1.29.0"
8 | },
9 | "categories": [
10 | "Other"
11 | ],
12 | "activationEvents": [
13 | "onCommand:extension.viewconfig"
14 | ],
15 | "main": "./out/extension.js",
16 | "contributes": {
17 | "languages": [
18 | {
19 | "id": "dummyconfig",
20 | "aliases": [
21 | "DummyConfig",
22 | "dc"
23 | ],
24 | "extensions": [
25 | ".json"
26 | ]
27 | }
28 | ],
29 | "commands": [
30 | {
31 | "command": "extension.viewconfig",
32 | "title": "Display config JSON.",
33 | "category": "Webview React"
34 | }
35 | ]
36 | },
37 | "scripts": {
38 | "vscode:prepublish": "npm run compile",
39 | "compile": "npm-run-all compile:*",
40 | "watch": "npm-run-all -p watch:*",
41 | "compile:extension": "tsc -p ./",
42 | "compile:views": "webpack --mode development",
43 | "watch:extension": "tsc -watch -p ./",
44 | "watch:views": "webpack --watch --mode development",
45 | "postinstall": "node ./node_modules/vscode/bin/install",
46 | "test": "npm run compile && node ./node_modules/vscode/bin/test"
47 | },
48 | "devDependencies": {
49 | "@types/mocha": "^2.2.42",
50 | "@types/node": "^10.12.21",
51 | "@types/react": "^16.8.23",
52 | "@types/react-dom": "^16.8.4",
53 | "css-loader": "^3.0.0",
54 | "npm-run-all": "^4.1.5",
55 | "style-loader": "^0.23.1",
56 | "ts-loader": "^6.0.4",
57 | "tslint": "^5.12.1",
58 | "typescript": "^3.3.1",
59 | "vscode": "^1.1.28",
60 | "webpack": "^4.35.2",
61 | "webpack-cli": "^3.3.5"
62 | },
63 | "dependencies": {
64 | "react": "^16.8.6",
65 | "react-dom": "^16.8.6"
66 | }
67 | }
68 |
--------------------------------------------------------------------------------
/Step 5/vscode-react/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vscode-react",
3 | "displayName": "vscode-react",
4 | "description": "Inception",
5 | "version": "0.0.1",
6 | "engines": {
7 | "vscode": "^1.29.0"
8 | },
9 | "categories": [
10 | "Other"
11 | ],
12 | "activationEvents": [
13 | "onCommand:extension.viewconfig"
14 | ],
15 | "main": "./out/extension.js",
16 | "contributes": {
17 | "languages": [
18 | {
19 | "id": "dummyconfig",
20 | "aliases": [
21 | "DummyConfig",
22 | "dc"
23 | ],
24 | "extensions": [
25 | ".json"
26 | ]
27 | }
28 | ],
29 | "commands": [
30 | {
31 | "command": "extension.viewconfig",
32 | "title": "Display config JSON.",
33 | "category": "Webview React"
34 | }
35 | ]
36 | },
37 | "scripts": {
38 | "vscode:prepublish": "npm run compile",
39 | "compile": "npm-run-all compile:*",
40 | "watch": "npm-run-all -p watch:*",
41 | "compile:extension": "tsc -p ./",
42 | "compile:views": "webpack --mode development",
43 | "watch:extension": "tsc -watch -p ./",
44 | "watch:views": "webpack --watch --mode development",
45 | "postinstall": "node ./node_modules/vscode/bin/install",
46 | "test": "npm run compile && node ./node_modules/vscode/bin/test"
47 | },
48 | "devDependencies": {
49 | "@types/mocha": "^2.2.42",
50 | "@types/node": "^10.12.21",
51 | "@types/react": "^16.8.23",
52 | "@types/react-dom": "^16.8.4",
53 | "css-loader": "^3.0.0",
54 | "npm-run-all": "^4.1.5",
55 | "style-loader": "^0.23.1",
56 | "ts-loader": "^6.0.4",
57 | "tslint": "^5.12.1",
58 | "typescript": "^3.3.1",
59 | "vscode": "^1.1.28",
60 | "webpack": "^4.35.2",
61 | "webpack-cli": "^3.3.5"
62 | },
63 | "dependencies": {
64 | "react": "^16.8.6",
65 | "react-dom": "^16.8.6"
66 | }
67 | }
68 |
--------------------------------------------------------------------------------
/Step 6/vscode-react/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vscode-react",
3 | "displayName": "vscode-react",
4 | "description": "Inception",
5 | "version": "0.0.1",
6 | "engines": {
7 | "vscode": "^1.29.0"
8 | },
9 | "categories": [
10 | "Other"
11 | ],
12 | "activationEvents": [
13 | "onCommand:extension.viewconfig"
14 | ],
15 | "main": "./out/extension.js",
16 | "contributes": {
17 | "languages": [
18 | {
19 | "id": "dummyconfig",
20 | "aliases": [
21 | "DummyConfig",
22 | "dc"
23 | ],
24 | "extensions": [
25 | ".json"
26 | ]
27 | }
28 | ],
29 | "commands": [
30 | {
31 | "command": "extension.viewconfig",
32 | "title": "Display config JSON.",
33 | "category": "Webview React"
34 | }
35 | ]
36 | },
37 | "scripts": {
38 | "vscode:prepublish": "npm run compile",
39 | "compile": "npm-run-all compile:*",
40 | "watch": "npm-run-all -p watch:*",
41 | "compile:extension": "tsc -p ./",
42 | "compile:views": "webpack --mode development",
43 | "watch:extension": "tsc -watch -p ./",
44 | "watch:views": "webpack --watch --mode development",
45 | "postinstall": "node ./node_modules/vscode/bin/install",
46 | "test": "npm run compile && node ./node_modules/vscode/bin/test"
47 | },
48 | "devDependencies": {
49 | "@types/mocha": "^2.2.42",
50 | "@types/node": "^10.12.21",
51 | "@types/react": "^16.8.23",
52 | "@types/react-dom": "^16.8.4",
53 | "css-loader": "^3.0.0",
54 | "npm-run-all": "^4.1.5",
55 | "style-loader": "^0.23.1",
56 | "ts-loader": "^6.0.4",
57 | "tslint": "^5.12.1",
58 | "typescript": "^3.3.1",
59 | "vscode": "^1.1.28",
60 | "webpack": "^4.35.2",
61 | "webpack-cli": "^3.3.5"
62 | },
63 | "dependencies": {
64 | "react": "^16.8.6",
65 | "react-dom": "^16.8.6"
66 | }
67 | }
68 |
--------------------------------------------------------------------------------
/Step 1/vscode-react/README.md:
--------------------------------------------------------------------------------
1 | # vscode-react README
2 |
3 | This is the README for your extension "vscode-react". After writing up a brief description, we recommend including the following sections.
4 |
5 | ## Features
6 |
7 | Describe specific features of your extension including screenshots of your extension in action. Image paths are relative to this README file.
8 |
9 | For example if there is an image subfolder under your extension project workspace:
10 |
11 | \!\[feature X\]\(images/feature-x.png\)
12 |
13 | > Tip: Many popular extensions utilize animations. This is an excellent way to show off your extension! We recommend short, focused animations that are easy to follow.
14 |
15 | ## Requirements
16 |
17 | If you have any requirements or dependencies, add a section describing those and how to install and configure them.
18 |
19 | ## Extension Settings
20 |
21 | Include if your extension adds any VS Code settings through the `contributes.configuration` extension point.
22 |
23 | For example:
24 |
25 | This extension contributes the following settings:
26 |
27 | * `myExtension.enable`: enable/disable this extension
28 | * `myExtension.thing`: set to `blah` to do something
29 |
30 | ## Known Issues
31 |
32 | Calling out known issues can help limit users opening duplicate issues against your extension.
33 |
34 | ## Release Notes
35 |
36 | Users appreciate release notes as you update your extension.
37 |
38 | ### 1.0.0
39 |
40 | Initial release of ...
41 |
42 | ### 1.0.1
43 |
44 | Fixed issue #.
45 |
46 | ### 1.1.0
47 |
48 | Added features X, Y, and Z.
49 |
50 | -----------------------------------------------------------------------------------------------------------
51 |
52 | ## Working with Markdown
53 |
54 | **Note:** You can author your README using Visual Studio Code. Here are some useful editor keyboard shortcuts:
55 |
56 | * Split the editor (`Cmd+\` on macOS or `Ctrl+\` on Windows and Linux)
57 | * Toggle preview (`Shift+CMD+V` on macOS or `Shift+Ctrl+V` on Windows and Linux)
58 | * Press `Ctrl+Space` (Windows, Linux) or `Cmd+Space` (macOS) to see a list of Markdown snippets
59 |
60 | ### For more information
61 |
62 | * [Visual Studio Code's Markdown Support](http://code.visualstudio.com/docs/languages/markdown)
63 | * [Markdown Syntax Reference](https://help.github.com/articles/markdown-basics/)
64 |
65 | **Enjoy!**
66 |
--------------------------------------------------------------------------------
/Step 2/vscode-react/README.md:
--------------------------------------------------------------------------------
1 | # vscode-react README
2 |
3 | This is the README for your extension "vscode-react". After writing up a brief description, we recommend including the following sections.
4 |
5 | ## Features
6 |
7 | Describe specific features of your extension including screenshots of your extension in action. Image paths are relative to this README file.
8 |
9 | For example if there is an image subfolder under your extension project workspace:
10 |
11 | \!\[feature X\]\(images/feature-x.png\)
12 |
13 | > Tip: Many popular extensions utilize animations. This is an excellent way to show off your extension! We recommend short, focused animations that are easy to follow.
14 |
15 | ## Requirements
16 |
17 | If you have any requirements or dependencies, add a section describing those and how to install and configure them.
18 |
19 | ## Extension Settings
20 |
21 | Include if your extension adds any VS Code settings through the `contributes.configuration` extension point.
22 |
23 | For example:
24 |
25 | This extension contributes the following settings:
26 |
27 | * `myExtension.enable`: enable/disable this extension
28 | * `myExtension.thing`: set to `blah` to do something
29 |
30 | ## Known Issues
31 |
32 | Calling out known issues can help limit users opening duplicate issues against your extension.
33 |
34 | ## Release Notes
35 |
36 | Users appreciate release notes as you update your extension.
37 |
38 | ### 1.0.0
39 |
40 | Initial release of ...
41 |
42 | ### 1.0.1
43 |
44 | Fixed issue #.
45 |
46 | ### 1.1.0
47 |
48 | Added features X, Y, and Z.
49 |
50 | -----------------------------------------------------------------------------------------------------------
51 |
52 | ## Working with Markdown
53 |
54 | **Note:** You can author your README using Visual Studio Code. Here are some useful editor keyboard shortcuts:
55 |
56 | * Split the editor (`Cmd+\` on macOS or `Ctrl+\` on Windows and Linux)
57 | * Toggle preview (`Shift+CMD+V` on macOS or `Shift+Ctrl+V` on Windows and Linux)
58 | * Press `Ctrl+Space` (Windows, Linux) or `Cmd+Space` (macOS) to see a list of Markdown snippets
59 |
60 | ### For more information
61 |
62 | * [Visual Studio Code's Markdown Support](http://code.visualstudio.com/docs/languages/markdown)
63 | * [Markdown Syntax Reference](https://help.github.com/articles/markdown-basics/)
64 |
65 | **Enjoy!**
66 |
--------------------------------------------------------------------------------
/Step 3/vscode-react/README.md:
--------------------------------------------------------------------------------
1 | # vscode-react README
2 |
3 | This is the README for your extension "vscode-react". After writing up a brief description, we recommend including the following sections.
4 |
5 | ## Features
6 |
7 | Describe specific features of your extension including screenshots of your extension in action. Image paths are relative to this README file.
8 |
9 | For example if there is an image subfolder under your extension project workspace:
10 |
11 | \!\[feature X\]\(images/feature-x.png\)
12 |
13 | > Tip: Many popular extensions utilize animations. This is an excellent way to show off your extension! We recommend short, focused animations that are easy to follow.
14 |
15 | ## Requirements
16 |
17 | If you have any requirements or dependencies, add a section describing those and how to install and configure them.
18 |
19 | ## Extension Settings
20 |
21 | Include if your extension adds any VS Code settings through the `contributes.configuration` extension point.
22 |
23 | For example:
24 |
25 | This extension contributes the following settings:
26 |
27 | * `myExtension.enable`: enable/disable this extension
28 | * `myExtension.thing`: set to `blah` to do something
29 |
30 | ## Known Issues
31 |
32 | Calling out known issues can help limit users opening duplicate issues against your extension.
33 |
34 | ## Release Notes
35 |
36 | Users appreciate release notes as you update your extension.
37 |
38 | ### 1.0.0
39 |
40 | Initial release of ...
41 |
42 | ### 1.0.1
43 |
44 | Fixed issue #.
45 |
46 | ### 1.1.0
47 |
48 | Added features X, Y, and Z.
49 |
50 | -----------------------------------------------------------------------------------------------------------
51 |
52 | ## Working with Markdown
53 |
54 | **Note:** You can author your README using Visual Studio Code. Here are some useful editor keyboard shortcuts:
55 |
56 | * Split the editor (`Cmd+\` on macOS or `Ctrl+\` on Windows and Linux)
57 | * Toggle preview (`Shift+CMD+V` on macOS or `Shift+Ctrl+V` on Windows and Linux)
58 | * Press `Ctrl+Space` (Windows, Linux) or `Cmd+Space` (macOS) to see a list of Markdown snippets
59 |
60 | ### For more information
61 |
62 | * [Visual Studio Code's Markdown Support](http://code.visualstudio.com/docs/languages/markdown)
63 | * [Markdown Syntax Reference](https://help.github.com/articles/markdown-basics/)
64 |
65 | **Enjoy!**
66 |
--------------------------------------------------------------------------------
/Step 4/vscode-react/README.md:
--------------------------------------------------------------------------------
1 | # vscode-react README
2 |
3 | This is the README for your extension "vscode-react". After writing up a brief description, we recommend including the following sections.
4 |
5 | ## Features
6 |
7 | Describe specific features of your extension including screenshots of your extension in action. Image paths are relative to this README file.
8 |
9 | For example if there is an image subfolder under your extension project workspace:
10 |
11 | \!\[feature X\]\(images/feature-x.png\)
12 |
13 | > Tip: Many popular extensions utilize animations. This is an excellent way to show off your extension! We recommend short, focused animations that are easy to follow.
14 |
15 | ## Requirements
16 |
17 | If you have any requirements or dependencies, add a section describing those and how to install and configure them.
18 |
19 | ## Extension Settings
20 |
21 | Include if your extension adds any VS Code settings through the `contributes.configuration` extension point.
22 |
23 | For example:
24 |
25 | This extension contributes the following settings:
26 |
27 | * `myExtension.enable`: enable/disable this extension
28 | * `myExtension.thing`: set to `blah` to do something
29 |
30 | ## Known Issues
31 |
32 | Calling out known issues can help limit users opening duplicate issues against your extension.
33 |
34 | ## Release Notes
35 |
36 | Users appreciate release notes as you update your extension.
37 |
38 | ### 1.0.0
39 |
40 | Initial release of ...
41 |
42 | ### 1.0.1
43 |
44 | Fixed issue #.
45 |
46 | ### 1.1.0
47 |
48 | Added features X, Y, and Z.
49 |
50 | -----------------------------------------------------------------------------------------------------------
51 |
52 | ## Working with Markdown
53 |
54 | **Note:** You can author your README using Visual Studio Code. Here are some useful editor keyboard shortcuts:
55 |
56 | * Split the editor (`Cmd+\` on macOS or `Ctrl+\` on Windows and Linux)
57 | * Toggle preview (`Shift+CMD+V` on macOS or `Shift+Ctrl+V` on Windows and Linux)
58 | * Press `Ctrl+Space` (Windows, Linux) or `Cmd+Space` (macOS) to see a list of Markdown snippets
59 |
60 | ### For more information
61 |
62 | * [Visual Studio Code's Markdown Support](http://code.visualstudio.com/docs/languages/markdown)
63 | * [Markdown Syntax Reference](https://help.github.com/articles/markdown-basics/)
64 |
65 | **Enjoy!**
66 |
--------------------------------------------------------------------------------
/Step 5/vscode-react/README.md:
--------------------------------------------------------------------------------
1 | # vscode-react README
2 |
3 | This is the README for your extension "vscode-react". After writing up a brief description, we recommend including the following sections.
4 |
5 | ## Features
6 |
7 | Describe specific features of your extension including screenshots of your extension in action. Image paths are relative to this README file.
8 |
9 | For example if there is an image subfolder under your extension project workspace:
10 |
11 | \!\[feature X\]\(images/feature-x.png\)
12 |
13 | > Tip: Many popular extensions utilize animations. This is an excellent way to show off your extension! We recommend short, focused animations that are easy to follow.
14 |
15 | ## Requirements
16 |
17 | If you have any requirements or dependencies, add a section describing those and how to install and configure them.
18 |
19 | ## Extension Settings
20 |
21 | Include if your extension adds any VS Code settings through the `contributes.configuration` extension point.
22 |
23 | For example:
24 |
25 | This extension contributes the following settings:
26 |
27 | * `myExtension.enable`: enable/disable this extension
28 | * `myExtension.thing`: set to `blah` to do something
29 |
30 | ## Known Issues
31 |
32 | Calling out known issues can help limit users opening duplicate issues against your extension.
33 |
34 | ## Release Notes
35 |
36 | Users appreciate release notes as you update your extension.
37 |
38 | ### 1.0.0
39 |
40 | Initial release of ...
41 |
42 | ### 1.0.1
43 |
44 | Fixed issue #.
45 |
46 | ### 1.1.0
47 |
48 | Added features X, Y, and Z.
49 |
50 | -----------------------------------------------------------------------------------------------------------
51 |
52 | ## Working with Markdown
53 |
54 | **Note:** You can author your README using Visual Studio Code. Here are some useful editor keyboard shortcuts:
55 |
56 | * Split the editor (`Cmd+\` on macOS or `Ctrl+\` on Windows and Linux)
57 | * Toggle preview (`Shift+CMD+V` on macOS or `Shift+Ctrl+V` on Windows and Linux)
58 | * Press `Ctrl+Space` (Windows, Linux) or `Cmd+Space` (macOS) to see a list of Markdown snippets
59 |
60 | ### For more information
61 |
62 | * [Visual Studio Code's Markdown Support](http://code.visualstudio.com/docs/languages/markdown)
63 | * [Markdown Syntax Reference](https://help.github.com/articles/markdown-basics/)
64 |
65 | **Enjoy!**
66 |
--------------------------------------------------------------------------------
/Step 6/vscode-react/README.md:
--------------------------------------------------------------------------------
1 | # vscode-react README
2 |
3 | This is the README for your extension "vscode-react". After writing up a brief description, we recommend including the following sections.
4 |
5 | ## Features
6 |
7 | Describe specific features of your extension including screenshots of your extension in action. Image paths are relative to this README file.
8 |
9 | For example if there is an image subfolder under your extension project workspace:
10 |
11 | \!\[feature X\]\(images/feature-x.png\)
12 |
13 | > Tip: Many popular extensions utilize animations. This is an excellent way to show off your extension! We recommend short, focused animations that are easy to follow.
14 |
15 | ## Requirements
16 |
17 | If you have any requirements or dependencies, add a section describing those and how to install and configure them.
18 |
19 | ## Extension Settings
20 |
21 | Include if your extension adds any VS Code settings through the `contributes.configuration` extension point.
22 |
23 | For example:
24 |
25 | This extension contributes the following settings:
26 |
27 | * `myExtension.enable`: enable/disable this extension
28 | * `myExtension.thing`: set to `blah` to do something
29 |
30 | ## Known Issues
31 |
32 | Calling out known issues can help limit users opening duplicate issues against your extension.
33 |
34 | ## Release Notes
35 |
36 | Users appreciate release notes as you update your extension.
37 |
38 | ### 1.0.0
39 |
40 | Initial release of ...
41 |
42 | ### 1.0.1
43 |
44 | Fixed issue #.
45 |
46 | ### 1.1.0
47 |
48 | Added features X, Y, and Z.
49 |
50 | -----------------------------------------------------------------------------------------------------------
51 |
52 | ## Working with Markdown
53 |
54 | **Note:** You can author your README using Visual Studio Code. Here are some useful editor keyboard shortcuts:
55 |
56 | * Split the editor (`Cmd+\` on macOS or `Ctrl+\` on Windows and Linux)
57 | * Toggle preview (`Shift+CMD+V` on macOS or `Shift+Ctrl+V` on Windows and Linux)
58 | * Press `Ctrl+Space` (Windows, Linux) or `Cmd+Space` (macOS) to see a list of Markdown snippets
59 |
60 | ### For more information
61 |
62 | * [Visual Studio Code's Markdown Support](http://code.visualstudio.com/docs/languages/markdown)
63 | * [Markdown Syntax Reference](https://help.github.com/articles/markdown-basics/)
64 |
65 | **Enjoy!**
66 |
--------------------------------------------------------------------------------
/Step 5/vscode-react/src/view/ViewLoader.ts:
--------------------------------------------------------------------------------
1 | import * as vscode from "vscode";
2 | import * as fs from "fs";
3 | import * as path from "path";
4 |
5 | import { IConfig } from "./app/model";
6 |
7 | export default class ViewLoader {
8 | private readonly _panel: vscode.WebviewPanel | undefined;
9 | private readonly _extensionPath: string;
10 |
11 | constructor(fileUri: vscode.Uri, extensionPath: string) {
12 | this._extensionPath = extensionPath;
13 |
14 | let config = this.getFileContent(fileUri);
15 | if (config) {
16 | this._panel = vscode.window.createWebviewPanel(
17 | "configView",
18 | "Config View",
19 | vscode.ViewColumn.One,
20 | {
21 | enableScripts: true,
22 |
23 | localResourceRoots: [
24 | vscode.Uri.file(path.join(extensionPath, "configViewer"))
25 | ]
26 | }
27 | );
28 |
29 | this._panel.webview.html = this.getWebviewContent(config);
30 | }
31 | }
32 |
33 | private getWebviewContent(config: IConfig): string {
34 | // Local path to main script run in the webview
35 | const reactAppPathOnDisk = vscode.Uri.file(
36 | path.join(this._extensionPath, "configViewer", "configViewer.js")
37 | );
38 | const reactAppUri = reactAppPathOnDisk.with({ scheme: "vscode-resource" });
39 |
40 | const configJson = JSON.stringify(config);
41 |
42 | return `
43 |
44 |
45 |
46 |
47 | Config View
48 |
49 |
54 |
55 |
59 |
60 |
61 |
62 |
63 |
64 |
65 | `;
66 | }
67 |
68 | private getFileContent(fileUri: vscode.Uri): IConfig | undefined {
69 | if (fs.existsSync(fileUri.fsPath)) {
70 | let content = fs.readFileSync(fileUri.fsPath, "utf8");
71 | let config: IConfig = JSON.parse(content);
72 |
73 | return config;
74 | }
75 | return undefined;
76 | }
77 | }
78 |
--------------------------------------------------------------------------------
/Step 1/vscode-react/vsc-extension-quickstart.md:
--------------------------------------------------------------------------------
1 | # Welcome to your VS Code Extension
2 |
3 | ## What's in the folder
4 |
5 | * This folder contains all of the files necessary for your extension.
6 | * `package.json` - this is the manifest file in which you declare your extension and command.
7 | * The sample plugin registers a command and defines its title and command name. With this information VS Code can show the command in the command palette. It doesn’t yet need to load the plugin.
8 | * `src/extension.ts` - this is the main file where you will provide the implementation of your command.
9 | * The file exports one function, `activate`, which is called the very first time your extension is activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`.
10 | * We pass the function containing the implementation of the command as the second parameter to `registerCommand`.
11 |
12 | ## Get up and running straight away
13 |
14 | * Press `F5` to open a new window with your extension loaded.
15 | * Run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World`.
16 | * Set breakpoints in your code inside `src/extension.ts` to debug your extension.
17 | * Find output from your extension in the debug console.
18 |
19 | ## Make changes
20 |
21 | * You can relaunch the extension from the debug toolbar after changing code in `src/extension.ts`.
22 | * You can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes.
23 |
24 | ## Explore the API
25 |
26 | * You can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts`.
27 |
28 | ## Run tests
29 |
30 | * Open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Extension Tests`.
31 | * Press `F5` to run the tests in a new window with your extension loaded.
32 | * See the output of the test result in the debug console.
33 | * Make changes to `test/extension.test.ts` or create new test files inside the `test` folder.
34 | * By convention, the test runner will only consider files matching the name pattern `**.test.ts`.
35 | * You can create folders inside the `test` folder to structure your tests any way you want.
36 |
37 | ## Go further
38 |
39 | * Reduce the extension size and improve the startup time by [bundling your extension](https://code.visualstudio.com/api/working-with-extensions/testing-extension).
40 | * [Publish your extension](https://code.visualstudio.com/api/working-with-extensions/publishing-extension) on the VSCode extension marketplace.
41 | * Automate builds by setting up [Continuous Integration](https://code.visualstudio.com/api/working-with-extensions/continuous-integration).
42 |
--------------------------------------------------------------------------------
/Step 2/vscode-react/vsc-extension-quickstart.md:
--------------------------------------------------------------------------------
1 | # Welcome to your VS Code Extension
2 |
3 | ## What's in the folder
4 |
5 | * This folder contains all of the files necessary for your extension.
6 | * `package.json` - this is the manifest file in which you declare your extension and command.
7 | * The sample plugin registers a command and defines its title and command name. With this information VS Code can show the command in the command palette. It doesn’t yet need to load the plugin.
8 | * `src/extension.ts` - this is the main file where you will provide the implementation of your command.
9 | * The file exports one function, `activate`, which is called the very first time your extension is activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`.
10 | * We pass the function containing the implementation of the command as the second parameter to `registerCommand`.
11 |
12 | ## Get up and running straight away
13 |
14 | * Press `F5` to open a new window with your extension loaded.
15 | * Run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World`.
16 | * Set breakpoints in your code inside `src/extension.ts` to debug your extension.
17 | * Find output from your extension in the debug console.
18 |
19 | ## Make changes
20 |
21 | * You can relaunch the extension from the debug toolbar after changing code in `src/extension.ts`.
22 | * You can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes.
23 |
24 | ## Explore the API
25 |
26 | * You can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts`.
27 |
28 | ## Run tests
29 |
30 | * Open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Extension Tests`.
31 | * Press `F5` to run the tests in a new window with your extension loaded.
32 | * See the output of the test result in the debug console.
33 | * Make changes to `test/extension.test.ts` or create new test files inside the `test` folder.
34 | * By convention, the test runner will only consider files matching the name pattern `**.test.ts`.
35 | * You can create folders inside the `test` folder to structure your tests any way you want.
36 |
37 | ## Go further
38 |
39 | * Reduce the extension size and improve the startup time by [bundling your extension](https://code.visualstudio.com/api/working-with-extensions/testing-extension).
40 | * [Publish your extension](https://code.visualstudio.com/api/working-with-extensions/publishing-extension) on the VSCode extension marketplace.
41 | * Automate builds by setting up [Continuous Integration](https://code.visualstudio.com/api/working-with-extensions/continuous-integration).
42 |
--------------------------------------------------------------------------------
/Step 3/vscode-react/vsc-extension-quickstart.md:
--------------------------------------------------------------------------------
1 | # Welcome to your VS Code Extension
2 |
3 | ## What's in the folder
4 |
5 | * This folder contains all of the files necessary for your extension.
6 | * `package.json` - this is the manifest file in which you declare your extension and command.
7 | * The sample plugin registers a command and defines its title and command name. With this information VS Code can show the command in the command palette. It doesn’t yet need to load the plugin.
8 | * `src/extension.ts` - this is the main file where you will provide the implementation of your command.
9 | * The file exports one function, `activate`, which is called the very first time your extension is activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`.
10 | * We pass the function containing the implementation of the command as the second parameter to `registerCommand`.
11 |
12 | ## Get up and running straight away
13 |
14 | * Press `F5` to open a new window with your extension loaded.
15 | * Run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World`.
16 | * Set breakpoints in your code inside `src/extension.ts` to debug your extension.
17 | * Find output from your extension in the debug console.
18 |
19 | ## Make changes
20 |
21 | * You can relaunch the extension from the debug toolbar after changing code in `src/extension.ts`.
22 | * You can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes.
23 |
24 | ## Explore the API
25 |
26 | * You can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts`.
27 |
28 | ## Run tests
29 |
30 | * Open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Extension Tests`.
31 | * Press `F5` to run the tests in a new window with your extension loaded.
32 | * See the output of the test result in the debug console.
33 | * Make changes to `test/extension.test.ts` or create new test files inside the `test` folder.
34 | * By convention, the test runner will only consider files matching the name pattern `**.test.ts`.
35 | * You can create folders inside the `test` folder to structure your tests any way you want.
36 |
37 | ## Go further
38 |
39 | * Reduce the extension size and improve the startup time by [bundling your extension](https://code.visualstudio.com/api/working-with-extensions/testing-extension).
40 | * [Publish your extension](https://code.visualstudio.com/api/working-with-extensions/publishing-extension) on the VSCode extension marketplace.
41 | * Automate builds by setting up [Continuous Integration](https://code.visualstudio.com/api/working-with-extensions/continuous-integration).
42 |
--------------------------------------------------------------------------------
/Step 4/vscode-react/vsc-extension-quickstart.md:
--------------------------------------------------------------------------------
1 | # Welcome to your VS Code Extension
2 |
3 | ## What's in the folder
4 |
5 | * This folder contains all of the files necessary for your extension.
6 | * `package.json` - this is the manifest file in which you declare your extension and command.
7 | * The sample plugin registers a command and defines its title and command name. With this information VS Code can show the command in the command palette. It doesn’t yet need to load the plugin.
8 | * `src/extension.ts` - this is the main file where you will provide the implementation of your command.
9 | * The file exports one function, `activate`, which is called the very first time your extension is activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`.
10 | * We pass the function containing the implementation of the command as the second parameter to `registerCommand`.
11 |
12 | ## Get up and running straight away
13 |
14 | * Press `F5` to open a new window with your extension loaded.
15 | * Run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World`.
16 | * Set breakpoints in your code inside `src/extension.ts` to debug your extension.
17 | * Find output from your extension in the debug console.
18 |
19 | ## Make changes
20 |
21 | * You can relaunch the extension from the debug toolbar after changing code in `src/extension.ts`.
22 | * You can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes.
23 |
24 | ## Explore the API
25 |
26 | * You can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts`.
27 |
28 | ## Run tests
29 |
30 | * Open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Extension Tests`.
31 | * Press `F5` to run the tests in a new window with your extension loaded.
32 | * See the output of the test result in the debug console.
33 | * Make changes to `test/extension.test.ts` or create new test files inside the `test` folder.
34 | * By convention, the test runner will only consider files matching the name pattern `**.test.ts`.
35 | * You can create folders inside the `test` folder to structure your tests any way you want.
36 |
37 | ## Go further
38 |
39 | * Reduce the extension size and improve the startup time by [bundling your extension](https://code.visualstudio.com/api/working-with-extensions/testing-extension).
40 | * [Publish your extension](https://code.visualstudio.com/api/working-with-extensions/publishing-extension) on the VSCode extension marketplace.
41 | * Automate builds by setting up [Continuous Integration](https://code.visualstudio.com/api/working-with-extensions/continuous-integration).
42 |
--------------------------------------------------------------------------------
/Step 5/vscode-react/vsc-extension-quickstart.md:
--------------------------------------------------------------------------------
1 | # Welcome to your VS Code Extension
2 |
3 | ## What's in the folder
4 |
5 | * This folder contains all of the files necessary for your extension.
6 | * `package.json` - this is the manifest file in which you declare your extension and command.
7 | * The sample plugin registers a command and defines its title and command name. With this information VS Code can show the command in the command palette. It doesn’t yet need to load the plugin.
8 | * `src/extension.ts` - this is the main file where you will provide the implementation of your command.
9 | * The file exports one function, `activate`, which is called the very first time your extension is activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`.
10 | * We pass the function containing the implementation of the command as the second parameter to `registerCommand`.
11 |
12 | ## Get up and running straight away
13 |
14 | * Press `F5` to open a new window with your extension loaded.
15 | * Run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World`.
16 | * Set breakpoints in your code inside `src/extension.ts` to debug your extension.
17 | * Find output from your extension in the debug console.
18 |
19 | ## Make changes
20 |
21 | * You can relaunch the extension from the debug toolbar after changing code in `src/extension.ts`.
22 | * You can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes.
23 |
24 | ## Explore the API
25 |
26 | * You can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts`.
27 |
28 | ## Run tests
29 |
30 | * Open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Extension Tests`.
31 | * Press `F5` to run the tests in a new window with your extension loaded.
32 | * See the output of the test result in the debug console.
33 | * Make changes to `test/extension.test.ts` or create new test files inside the `test` folder.
34 | * By convention, the test runner will only consider files matching the name pattern `**.test.ts`.
35 | * You can create folders inside the `test` folder to structure your tests any way you want.
36 |
37 | ## Go further
38 |
39 | * Reduce the extension size and improve the startup time by [bundling your extension](https://code.visualstudio.com/api/working-with-extensions/testing-extension).
40 | * [Publish your extension](https://code.visualstudio.com/api/working-with-extensions/publishing-extension) on the VSCode extension marketplace.
41 | * Automate builds by setting up [Continuous Integration](https://code.visualstudio.com/api/working-with-extensions/continuous-integration).
42 |
--------------------------------------------------------------------------------
/Step 6/vscode-react/vsc-extension-quickstart.md:
--------------------------------------------------------------------------------
1 | # Welcome to your VS Code Extension
2 |
3 | ## What's in the folder
4 |
5 | * This folder contains all of the files necessary for your extension.
6 | * `package.json` - this is the manifest file in which you declare your extension and command.
7 | * The sample plugin registers a command and defines its title and command name. With this information VS Code can show the command in the command palette. It doesn’t yet need to load the plugin.
8 | * `src/extension.ts` - this is the main file where you will provide the implementation of your command.
9 | * The file exports one function, `activate`, which is called the very first time your extension is activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`.
10 | * We pass the function containing the implementation of the command as the second parameter to `registerCommand`.
11 |
12 | ## Get up and running straight away
13 |
14 | * Press `F5` to open a new window with your extension loaded.
15 | * Run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World`.
16 | * Set breakpoints in your code inside `src/extension.ts` to debug your extension.
17 | * Find output from your extension in the debug console.
18 |
19 | ## Make changes
20 |
21 | * You can relaunch the extension from the debug toolbar after changing code in `src/extension.ts`.
22 | * You can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes.
23 |
24 | ## Explore the API
25 |
26 | * You can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts`.
27 |
28 | ## Run tests
29 |
30 | * Open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Extension Tests`.
31 | * Press `F5` to run the tests in a new window with your extension loaded.
32 | * See the output of the test result in the debug console.
33 | * Make changes to `test/extension.test.ts` or create new test files inside the `test` folder.
34 | * By convention, the test runner will only consider files matching the name pattern `**.test.ts`.
35 | * You can create folders inside the `test` folder to structure your tests any way you want.
36 |
37 | ## Go further
38 |
39 | * Reduce the extension size and improve the startup time by [bundling your extension](https://code.visualstudio.com/api/working-with-extensions/testing-extension).
40 | * [Publish your extension](https://code.visualstudio.com/api/working-with-extensions/publishing-extension) on the VSCode extension marketplace.
41 | * Automate builds by setting up [Continuous Integration](https://code.visualstudio.com/api/working-with-extensions/continuous-integration).
42 |
--------------------------------------------------------------------------------
/Step 6/vscode-react/src/view/ViewLoader.ts:
--------------------------------------------------------------------------------
1 | import * as vscode from "vscode";
2 | import * as fs from "fs";
3 | import * as path from "path";
4 |
5 | import { IConfig, ICommand, CommandAction } from "./app/model";
6 |
7 | export default class ViewLoader {
8 | private readonly _panel: vscode.WebviewPanel | undefined;
9 | private readonly _extensionPath: string;
10 | private _disposables: vscode.Disposable[] = [];
11 |
12 | constructor(fileUri: vscode.Uri, extensionPath: string) {
13 | this._extensionPath = extensionPath;
14 |
15 | let config = this.getFileContent(fileUri);
16 | if (config) {
17 | this._panel = vscode.window.createWebviewPanel(
18 | "configView",
19 | "Config View",
20 | vscode.ViewColumn.One,
21 | {
22 | enableScripts: true,
23 |
24 | localResourceRoots: [
25 | vscode.Uri.file(path.join(extensionPath, "configViewer"))
26 | ]
27 | }
28 | );
29 |
30 | this._panel.webview.html = this.getWebviewContent(config);
31 |
32 | this._panel.webview.onDidReceiveMessage(
33 | (command: ICommand) => {
34 | switch (command.action) {
35 | case CommandAction.Save:
36 | this.saveFileContent(fileUri, command.content);
37 | return;
38 | }
39 | },
40 | undefined,
41 | this._disposables
42 | );
43 | }
44 | }
45 |
46 | private getWebviewContent(config: IConfig): string {
47 | // Local path to main script run in the webview
48 | const reactAppPathOnDisk = vscode.Uri.file(
49 | path.join(this._extensionPath, "configViewer", "configViewer.js")
50 | );
51 | const reactAppUri = reactAppPathOnDisk.with({ scheme: "vscode-resource" });
52 |
53 | const configJson = JSON.stringify(config);
54 |
55 | return `
56 |
57 |
58 |
59 |
60 | Config View
61 |
62 |
67 |
68 |
72 |
73 |
74 |
75 |
76 |
77 |
78 | `;
79 | }
80 |
81 | private getFileContent(fileUri: vscode.Uri): IConfig | undefined {
82 | if (fs.existsSync(fileUri.fsPath)) {
83 | let content = fs.readFileSync(fileUri.fsPath, "utf8");
84 | let config: IConfig = JSON.parse(content);
85 |
86 | return config;
87 | }
88 | return undefined;
89 | }
90 |
91 | private saveFileContent(fileUri: vscode.Uri, config: IConfig) {
92 | if (fs.existsSync(fileUri.fsPath)) {
93 | let content: string = JSON.stringify(config);
94 | fs.writeFileSync(fileUri.fsPath, content);
95 |
96 | vscode.window.showInformationMessage(
97 | `👍 Configuration saved to ${fileUri.fsPath}`
98 | );
99 | }
100 | }
101 | }
102 |
--------------------------------------------------------------------------------
/Step 6/vscode-react/src/view/app/config.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react";
2 | import { IConfig, IUser, ICommand, CommandAction } from "./model";
3 |
4 | interface IConfigProps {
5 | vscode: any;
6 | initialData: IConfig;
7 | }
8 |
9 | interface IConfigState {
10 | config: IConfig;
11 | }
12 |
13 | export default class Config extends React.Component<
14 | IConfigProps,
15 | IConfigState
16 | > {
17 | constructor(props: any) {
18 | super(props);
19 |
20 | let initialData = this.props.initialData;
21 |
22 | let oldState = this.props.vscode.getState();
23 | if (oldState) {
24 | this.state = oldState;
25 | } else {
26 | this.state = { config: initialData };
27 | }
28 | }
29 |
30 | private defineState(newSate: IConfigState) {
31 | this.setState(newSate);
32 | this.props.vscode.setState(newSate);
33 | }
34 |
35 | onChangeUserActiveState(userIndex: number) {
36 | let newState = { ...this.state };
37 | newState.config.users[userIndex].active = !newState.config.users[userIndex]
38 | .active;
39 |
40 | this.defineState(newState);
41 | }
42 |
43 | onAddRole(event: React.KeyboardEvent, userIndex: number) {
44 | if (event.keyCode === 13 && event.currentTarget.value !== "") {
45 | let newState = { ...this.state };
46 | newState.config.users[userIndex].roles.push(event.currentTarget.value);
47 | this.defineState(newState);
48 | event.currentTarget.value = "";
49 | }
50 | }
51 |
52 | onAddUser(event: React.KeyboardEvent) {
53 | if (event.keyCode === 13 && event.currentTarget.value !== "") {
54 | let newState = { ...this.state };
55 | let newUser: IUser = {
56 | name: event.currentTarget.value,
57 | active: true,
58 | roles: []
59 | };
60 | newState.config.users.push(newUser);
61 | this.defineState(newState);
62 | event.currentTarget.value = "";
63 | }
64 | }
65 |
66 | renderUsers(users: IUser[]) {
67 | return (
68 |
69 | User List :
70 |
100 | this.onAddUser(event)}
104 | />
105 |
106 | );
107 | }
108 |
109 | render() {
110 | return (
111 |
112 | Config name : {this.state.config.name} {" "}
113 | {this.state.config.description}
114 | {this.renderUsers(this.state.config.users)}
115 |
116 | this.saveConfig()}
121 | />
122 |
123 | );
124 | }
125 |
126 | saveConfig() {
127 | let command: ICommand = {
128 | action: CommandAction.Save,
129 | content: this.state.config
130 | };
131 | this.props.vscode.postMessage(command);
132 | }
133 | }
134 |
--------------------------------------------------------------------------------
/Step 1/vscode-react/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vscode-react",
3 | "version": "0.0.1",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "@babel/code-frame": {
8 | "version": "7.5.5",
9 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz",
10 | "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==",
11 | "dev": true,
12 | "requires": {
13 | "@babel/highlight": "^7.0.0"
14 | }
15 | },
16 | "@babel/highlight": {
17 | "version": "7.5.0",
18 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz",
19 | "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==",
20 | "dev": true,
21 | "requires": {
22 | "chalk": "^2.0.0",
23 | "esutils": "^2.0.2",
24 | "js-tokens": "^4.0.0"
25 | }
26 | },
27 | "@types/mocha": {
28 | "version": "2.2.48",
29 | "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-2.2.48.tgz",
30 | "integrity": "sha512-nlK/iyETgafGli8Zh9zJVCTicvU3iajSkRwOh3Hhiva598CMqNJ4NcVCGMTGKpGpTYj/9R8RLzS9NAykSSCqGw==",
31 | "dev": true
32 | },
33 | "@types/node": {
34 | "version": "10.14.13",
35 | "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.13.tgz",
36 | "integrity": "sha512-yN/FNNW1UYsRR1wwAoyOwqvDuLDtVXnaJTZ898XIw/Q5cCaeVAlVwvsmXLX5PuiScBYwZsZU4JYSHB3TvfdwvQ==",
37 | "dev": true
38 | },
39 | "agent-base": {
40 | "version": "4.3.0",
41 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz",
42 | "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==",
43 | "dev": true,
44 | "requires": {
45 | "es6-promisify": "^5.0.0"
46 | }
47 | },
48 | "ajv": {
49 | "version": "6.10.2",
50 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
51 | "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
52 | "dev": true,
53 | "requires": {
54 | "fast-deep-equal": "^2.0.1",
55 | "fast-json-stable-stringify": "^2.0.0",
56 | "json-schema-traverse": "^0.4.1",
57 | "uri-js": "^4.2.2"
58 | }
59 | },
60 | "ansi-styles": {
61 | "version": "3.2.1",
62 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
63 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
64 | "dev": true,
65 | "requires": {
66 | "color-convert": "^1.9.0"
67 | }
68 | },
69 | "argparse": {
70 | "version": "1.0.10",
71 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
72 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
73 | "dev": true,
74 | "requires": {
75 | "sprintf-js": "~1.0.2"
76 | }
77 | },
78 | "asn1": {
79 | "version": "0.2.4",
80 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
81 | "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
82 | "dev": true,
83 | "requires": {
84 | "safer-buffer": "~2.1.0"
85 | }
86 | },
87 | "assert-plus": {
88 | "version": "1.0.0",
89 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
90 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
91 | "dev": true
92 | },
93 | "asynckit": {
94 | "version": "0.4.0",
95 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
96 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
97 | "dev": true
98 | },
99 | "aws-sign2": {
100 | "version": "0.7.0",
101 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
102 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
103 | "dev": true
104 | },
105 | "aws4": {
106 | "version": "1.8.0",
107 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
108 | "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
109 | "dev": true
110 | },
111 | "balanced-match": {
112 | "version": "1.0.0",
113 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
114 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
115 | "dev": true
116 | },
117 | "bcrypt-pbkdf": {
118 | "version": "1.0.2",
119 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
120 | "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
121 | "dev": true,
122 | "requires": {
123 | "tweetnacl": "^0.14.3"
124 | }
125 | },
126 | "brace-expansion": {
127 | "version": "1.1.11",
128 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
129 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
130 | "dev": true,
131 | "requires": {
132 | "balanced-match": "^1.0.0",
133 | "concat-map": "0.0.1"
134 | }
135 | },
136 | "browser-stdout": {
137 | "version": "1.3.1",
138 | "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
139 | "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
140 | "dev": true
141 | },
142 | "buffer-from": {
143 | "version": "1.1.1",
144 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
145 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
146 | "dev": true
147 | },
148 | "builtin-modules": {
149 | "version": "1.1.1",
150 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
151 | "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
152 | "dev": true
153 | },
154 | "caseless": {
155 | "version": "0.12.0",
156 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
157 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
158 | "dev": true
159 | },
160 | "chalk": {
161 | "version": "2.4.2",
162 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
163 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
164 | "dev": true,
165 | "requires": {
166 | "ansi-styles": "^3.2.1",
167 | "escape-string-regexp": "^1.0.5",
168 | "supports-color": "^5.3.0"
169 | }
170 | },
171 | "color-convert": {
172 | "version": "1.9.3",
173 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
174 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
175 | "dev": true,
176 | "requires": {
177 | "color-name": "1.1.3"
178 | }
179 | },
180 | "color-name": {
181 | "version": "1.1.3",
182 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
183 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
184 | "dev": true
185 | },
186 | "combined-stream": {
187 | "version": "1.0.8",
188 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
189 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
190 | "dev": true,
191 | "requires": {
192 | "delayed-stream": "~1.0.0"
193 | }
194 | },
195 | "commander": {
196 | "version": "2.20.0",
197 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
198 | "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==",
199 | "dev": true
200 | },
201 | "concat-map": {
202 | "version": "0.0.1",
203 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
204 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
205 | "dev": true
206 | },
207 | "core-util-is": {
208 | "version": "1.0.2",
209 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
210 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
211 | "dev": true
212 | },
213 | "dashdash": {
214 | "version": "1.14.1",
215 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
216 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
217 | "dev": true,
218 | "requires": {
219 | "assert-plus": "^1.0.0"
220 | }
221 | },
222 | "debug": {
223 | "version": "3.1.0",
224 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
225 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
226 | "dev": true,
227 | "requires": {
228 | "ms": "2.0.0"
229 | }
230 | },
231 | "delayed-stream": {
232 | "version": "1.0.0",
233 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
234 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
235 | "dev": true
236 | },
237 | "diff": {
238 | "version": "3.5.0",
239 | "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
240 | "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
241 | "dev": true
242 | },
243 | "ecc-jsbn": {
244 | "version": "0.1.2",
245 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
246 | "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
247 | "dev": true,
248 | "requires": {
249 | "jsbn": "~0.1.0",
250 | "safer-buffer": "^2.1.0"
251 | }
252 | },
253 | "es6-promise": {
254 | "version": "4.2.8",
255 | "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
256 | "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==",
257 | "dev": true
258 | },
259 | "es6-promisify": {
260 | "version": "5.0.0",
261 | "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
262 | "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
263 | "dev": true,
264 | "requires": {
265 | "es6-promise": "^4.0.3"
266 | }
267 | },
268 | "escape-string-regexp": {
269 | "version": "1.0.5",
270 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
271 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
272 | "dev": true
273 | },
274 | "esprima": {
275 | "version": "4.0.1",
276 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
277 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
278 | "dev": true
279 | },
280 | "esutils": {
281 | "version": "2.0.2",
282 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
283 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
284 | "dev": true
285 | },
286 | "extend": {
287 | "version": "3.0.2",
288 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
289 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
290 | "dev": true
291 | },
292 | "extsprintf": {
293 | "version": "1.3.0",
294 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
295 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
296 | "dev": true
297 | },
298 | "fast-deep-equal": {
299 | "version": "2.0.1",
300 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
301 | "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
302 | "dev": true
303 | },
304 | "fast-json-stable-stringify": {
305 | "version": "2.0.0",
306 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
307 | "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
308 | "dev": true
309 | },
310 | "forever-agent": {
311 | "version": "0.6.1",
312 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
313 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
314 | "dev": true
315 | },
316 | "form-data": {
317 | "version": "2.3.3",
318 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
319 | "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
320 | "dev": true,
321 | "requires": {
322 | "asynckit": "^0.4.0",
323 | "combined-stream": "^1.0.6",
324 | "mime-types": "^2.1.12"
325 | }
326 | },
327 | "fs.realpath": {
328 | "version": "1.0.0",
329 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
330 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
331 | "dev": true
332 | },
333 | "getpass": {
334 | "version": "0.1.7",
335 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
336 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
337 | "dev": true,
338 | "requires": {
339 | "assert-plus": "^1.0.0"
340 | }
341 | },
342 | "glob": {
343 | "version": "7.1.4",
344 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
345 | "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
346 | "dev": true,
347 | "requires": {
348 | "fs.realpath": "^1.0.0",
349 | "inflight": "^1.0.4",
350 | "inherits": "2",
351 | "minimatch": "^3.0.4",
352 | "once": "^1.3.0",
353 | "path-is-absolute": "^1.0.0"
354 | }
355 | },
356 | "growl": {
357 | "version": "1.10.5",
358 | "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
359 | "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
360 | "dev": true
361 | },
362 | "har-schema": {
363 | "version": "2.0.0",
364 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
365 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
366 | "dev": true
367 | },
368 | "har-validator": {
369 | "version": "5.1.3",
370 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
371 | "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
372 | "dev": true,
373 | "requires": {
374 | "ajv": "^6.5.5",
375 | "har-schema": "^2.0.0"
376 | }
377 | },
378 | "has-flag": {
379 | "version": "3.0.0",
380 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
381 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
382 | "dev": true
383 | },
384 | "he": {
385 | "version": "1.1.1",
386 | "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
387 | "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=",
388 | "dev": true
389 | },
390 | "http-proxy-agent": {
391 | "version": "2.1.0",
392 | "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz",
393 | "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==",
394 | "dev": true,
395 | "requires": {
396 | "agent-base": "4",
397 | "debug": "3.1.0"
398 | }
399 | },
400 | "http-signature": {
401 | "version": "1.2.0",
402 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
403 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
404 | "dev": true,
405 | "requires": {
406 | "assert-plus": "^1.0.0",
407 | "jsprim": "^1.2.2",
408 | "sshpk": "^1.7.0"
409 | }
410 | },
411 | "https-proxy-agent": {
412 | "version": "2.2.2",
413 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.2.tgz",
414 | "integrity": "sha512-c8Ndjc9Bkpfx/vCJueCPy0jlP4ccCCSNDp8xwCZzPjKJUm+B+u9WX2x98Qx4n1PiMNTWo3D7KK5ifNV/yJyRzg==",
415 | "dev": true,
416 | "requires": {
417 | "agent-base": "^4.3.0",
418 | "debug": "^3.1.0"
419 | }
420 | },
421 | "inflight": {
422 | "version": "1.0.6",
423 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
424 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
425 | "dev": true,
426 | "requires": {
427 | "once": "^1.3.0",
428 | "wrappy": "1"
429 | }
430 | },
431 | "inherits": {
432 | "version": "2.0.4",
433 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
434 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
435 | "dev": true
436 | },
437 | "is-typedarray": {
438 | "version": "1.0.0",
439 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
440 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
441 | "dev": true
442 | },
443 | "isstream": {
444 | "version": "0.1.2",
445 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
446 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
447 | "dev": true
448 | },
449 | "js-tokens": {
450 | "version": "4.0.0",
451 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
452 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
453 | "dev": true
454 | },
455 | "js-yaml": {
456 | "version": "3.13.1",
457 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
458 | "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
459 | "dev": true,
460 | "requires": {
461 | "argparse": "^1.0.7",
462 | "esprima": "^4.0.0"
463 | }
464 | },
465 | "jsbn": {
466 | "version": "0.1.1",
467 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
468 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
469 | "dev": true
470 | },
471 | "json-schema": {
472 | "version": "0.2.3",
473 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
474 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
475 | "dev": true
476 | },
477 | "json-schema-traverse": {
478 | "version": "0.4.1",
479 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
480 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
481 | "dev": true
482 | },
483 | "json-stringify-safe": {
484 | "version": "5.0.1",
485 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
486 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
487 | "dev": true
488 | },
489 | "jsprim": {
490 | "version": "1.4.1",
491 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
492 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
493 | "dev": true,
494 | "requires": {
495 | "assert-plus": "1.0.0",
496 | "extsprintf": "1.3.0",
497 | "json-schema": "0.2.3",
498 | "verror": "1.10.0"
499 | }
500 | },
501 | "mime-db": {
502 | "version": "1.40.0",
503 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
504 | "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==",
505 | "dev": true
506 | },
507 | "mime-types": {
508 | "version": "2.1.24",
509 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
510 | "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
511 | "dev": true,
512 | "requires": {
513 | "mime-db": "1.40.0"
514 | }
515 | },
516 | "minimatch": {
517 | "version": "3.0.4",
518 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
519 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
520 | "dev": true,
521 | "requires": {
522 | "brace-expansion": "^1.1.7"
523 | }
524 | },
525 | "minimist": {
526 | "version": "0.0.8",
527 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
528 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
529 | "dev": true
530 | },
531 | "mkdirp": {
532 | "version": "0.5.1",
533 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
534 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
535 | "dev": true,
536 | "requires": {
537 | "minimist": "0.0.8"
538 | }
539 | },
540 | "mocha": {
541 | "version": "5.2.0",
542 | "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz",
543 | "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==",
544 | "dev": true,
545 | "requires": {
546 | "browser-stdout": "1.3.1",
547 | "commander": "2.15.1",
548 | "debug": "3.1.0",
549 | "diff": "3.5.0",
550 | "escape-string-regexp": "1.0.5",
551 | "glob": "7.1.2",
552 | "growl": "1.10.5",
553 | "he": "1.1.1",
554 | "minimatch": "3.0.4",
555 | "mkdirp": "0.5.1",
556 | "supports-color": "5.4.0"
557 | },
558 | "dependencies": {
559 | "commander": {
560 | "version": "2.15.1",
561 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
562 | "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==",
563 | "dev": true
564 | },
565 | "glob": {
566 | "version": "7.1.2",
567 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
568 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
569 | "dev": true,
570 | "requires": {
571 | "fs.realpath": "^1.0.0",
572 | "inflight": "^1.0.4",
573 | "inherits": "2",
574 | "minimatch": "^3.0.4",
575 | "once": "^1.3.0",
576 | "path-is-absolute": "^1.0.0"
577 | }
578 | },
579 | "supports-color": {
580 | "version": "5.4.0",
581 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
582 | "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
583 | "dev": true,
584 | "requires": {
585 | "has-flag": "^3.0.0"
586 | }
587 | }
588 | }
589 | },
590 | "ms": {
591 | "version": "2.0.0",
592 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
593 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
594 | "dev": true
595 | },
596 | "oauth-sign": {
597 | "version": "0.9.0",
598 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
599 | "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
600 | "dev": true
601 | },
602 | "once": {
603 | "version": "1.4.0",
604 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
605 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
606 | "dev": true,
607 | "requires": {
608 | "wrappy": "1"
609 | }
610 | },
611 | "path-is-absolute": {
612 | "version": "1.0.1",
613 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
614 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
615 | "dev": true
616 | },
617 | "path-parse": {
618 | "version": "1.0.6",
619 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
620 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
621 | "dev": true
622 | },
623 | "performance-now": {
624 | "version": "2.1.0",
625 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
626 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
627 | "dev": true
628 | },
629 | "psl": {
630 | "version": "1.2.0",
631 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.2.0.tgz",
632 | "integrity": "sha512-GEn74ZffufCmkDDLNcl3uuyF/aSD6exEyh1v/ZSdAomB82t6G9hzJVRx0jBmLDW+VfZqks3aScmMw9DszwUalA==",
633 | "dev": true
634 | },
635 | "punycode": {
636 | "version": "2.1.1",
637 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
638 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
639 | "dev": true
640 | },
641 | "qs": {
642 | "version": "6.5.2",
643 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
644 | "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
645 | "dev": true
646 | },
647 | "querystringify": {
648 | "version": "2.1.1",
649 | "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz",
650 | "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==",
651 | "dev": true
652 | },
653 | "request": {
654 | "version": "2.88.0",
655 | "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
656 | "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
657 | "dev": true,
658 | "requires": {
659 | "aws-sign2": "~0.7.0",
660 | "aws4": "^1.8.0",
661 | "caseless": "~0.12.0",
662 | "combined-stream": "~1.0.6",
663 | "extend": "~3.0.2",
664 | "forever-agent": "~0.6.1",
665 | "form-data": "~2.3.2",
666 | "har-validator": "~5.1.0",
667 | "http-signature": "~1.2.0",
668 | "is-typedarray": "~1.0.0",
669 | "isstream": "~0.1.2",
670 | "json-stringify-safe": "~5.0.1",
671 | "mime-types": "~2.1.19",
672 | "oauth-sign": "~0.9.0",
673 | "performance-now": "^2.1.0",
674 | "qs": "~6.5.2",
675 | "safe-buffer": "^5.1.2",
676 | "tough-cookie": "~2.4.3",
677 | "tunnel-agent": "^0.6.0",
678 | "uuid": "^3.3.2"
679 | }
680 | },
681 | "requires-port": {
682 | "version": "1.0.0",
683 | "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
684 | "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
685 | "dev": true
686 | },
687 | "resolve": {
688 | "version": "1.11.1",
689 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz",
690 | "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==",
691 | "dev": true,
692 | "requires": {
693 | "path-parse": "^1.0.6"
694 | }
695 | },
696 | "safe-buffer": {
697 | "version": "5.2.0",
698 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz",
699 | "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==",
700 | "dev": true
701 | },
702 | "safer-buffer": {
703 | "version": "2.1.2",
704 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
705 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
706 | "dev": true
707 | },
708 | "semver": {
709 | "version": "5.7.0",
710 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
711 | "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
712 | "dev": true
713 | },
714 | "source-map": {
715 | "version": "0.6.1",
716 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
717 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
718 | "dev": true
719 | },
720 | "source-map-support": {
721 | "version": "0.5.12",
722 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz",
723 | "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==",
724 | "dev": true,
725 | "requires": {
726 | "buffer-from": "^1.0.0",
727 | "source-map": "^0.6.0"
728 | }
729 | },
730 | "sprintf-js": {
731 | "version": "1.0.3",
732 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
733 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
734 | "dev": true
735 | },
736 | "sshpk": {
737 | "version": "1.16.1",
738 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
739 | "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
740 | "dev": true,
741 | "requires": {
742 | "asn1": "~0.2.3",
743 | "assert-plus": "^1.0.0",
744 | "bcrypt-pbkdf": "^1.0.0",
745 | "dashdash": "^1.12.0",
746 | "ecc-jsbn": "~0.1.1",
747 | "getpass": "^0.1.1",
748 | "jsbn": "~0.1.0",
749 | "safer-buffer": "^2.0.2",
750 | "tweetnacl": "~0.14.0"
751 | }
752 | },
753 | "supports-color": {
754 | "version": "5.5.0",
755 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
756 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
757 | "dev": true,
758 | "requires": {
759 | "has-flag": "^3.0.0"
760 | }
761 | },
762 | "tough-cookie": {
763 | "version": "2.4.3",
764 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
765 | "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
766 | "dev": true,
767 | "requires": {
768 | "psl": "^1.1.24",
769 | "punycode": "^1.4.1"
770 | },
771 | "dependencies": {
772 | "punycode": {
773 | "version": "1.4.1",
774 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
775 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
776 | "dev": true
777 | }
778 | }
779 | },
780 | "tslib": {
781 | "version": "1.10.0",
782 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
783 | "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
784 | "dev": true
785 | },
786 | "tslint": {
787 | "version": "5.18.0",
788 | "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.18.0.tgz",
789 | "integrity": "sha512-Q3kXkuDEijQ37nXZZLKErssQVnwCV/+23gFEMROi8IlbaBG6tXqLPQJ5Wjcyt/yHPKBC+hD5SzuGaMora+ZS6w==",
790 | "dev": true,
791 | "requires": {
792 | "@babel/code-frame": "^7.0.0",
793 | "builtin-modules": "^1.1.1",
794 | "chalk": "^2.3.0",
795 | "commander": "^2.12.1",
796 | "diff": "^3.2.0",
797 | "glob": "^7.1.1",
798 | "js-yaml": "^3.13.1",
799 | "minimatch": "^3.0.4",
800 | "mkdirp": "^0.5.1",
801 | "resolve": "^1.3.2",
802 | "semver": "^5.3.0",
803 | "tslib": "^1.8.0",
804 | "tsutils": "^2.29.0"
805 | }
806 | },
807 | "tsutils": {
808 | "version": "2.29.0",
809 | "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz",
810 | "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==",
811 | "dev": true,
812 | "requires": {
813 | "tslib": "^1.8.1"
814 | }
815 | },
816 | "tunnel-agent": {
817 | "version": "0.6.0",
818 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
819 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
820 | "dev": true,
821 | "requires": {
822 | "safe-buffer": "^5.0.1"
823 | }
824 | },
825 | "tweetnacl": {
826 | "version": "0.14.5",
827 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
828 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
829 | "dev": true
830 | },
831 | "typescript": {
832 | "version": "3.5.3",
833 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz",
834 | "integrity": "sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==",
835 | "dev": true
836 | },
837 | "uri-js": {
838 | "version": "4.2.2",
839 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
840 | "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
841 | "dev": true,
842 | "requires": {
843 | "punycode": "^2.1.0"
844 | }
845 | },
846 | "url-parse": {
847 | "version": "1.4.7",
848 | "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz",
849 | "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==",
850 | "dev": true,
851 | "requires": {
852 | "querystringify": "^2.1.1",
853 | "requires-port": "^1.0.0"
854 | }
855 | },
856 | "uuid": {
857 | "version": "3.3.2",
858 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
859 | "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
860 | "dev": true
861 | },
862 | "verror": {
863 | "version": "1.10.0",
864 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
865 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
866 | "dev": true,
867 | "requires": {
868 | "assert-plus": "^1.0.0",
869 | "core-util-is": "1.0.2",
870 | "extsprintf": "^1.2.0"
871 | }
872 | },
873 | "vscode": {
874 | "version": "1.1.35",
875 | "resolved": "https://registry.npmjs.org/vscode/-/vscode-1.1.35.tgz",
876 | "integrity": "sha512-xPnxzQU40LOS2yPyzWW+WKpTV6qA3z16TcgpZ9O38UWLA157Zz4GxUx5H7Gd07pxzw0GqvusbF4D+5GBgNxvEQ==",
877 | "dev": true,
878 | "requires": {
879 | "glob": "^7.1.2",
880 | "mocha": "^5.2.0",
881 | "request": "^2.88.0",
882 | "semver": "^5.4.1",
883 | "source-map-support": "^0.5.0",
884 | "url-parse": "^1.4.4",
885 | "vscode-test": "^0.4.1"
886 | }
887 | },
888 | "vscode-test": {
889 | "version": "0.4.3",
890 | "resolved": "https://registry.npmjs.org/vscode-test/-/vscode-test-0.4.3.tgz",
891 | "integrity": "sha512-EkMGqBSefZH2MgW65nY05rdRSko15uvzq4VAPM5jVmwYuFQKE7eikKXNJDRxL+OITXHB6pI+a3XqqD32Y3KC5w==",
892 | "dev": true,
893 | "requires": {
894 | "http-proxy-agent": "^2.1.0",
895 | "https-proxy-agent": "^2.2.1"
896 | }
897 | },
898 | "wrappy": {
899 | "version": "1.0.2",
900 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
901 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
902 | "dev": true
903 | }
904 | }
905 | }
906 |
--------------------------------------------------------------------------------
/Step 2/vscode-react/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vscode-react",
3 | "version": "0.0.1",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "@babel/code-frame": {
8 | "version": "7.0.0",
9 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
10 | "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
11 | "dev": true,
12 | "requires": {
13 | "@babel/highlight": "^7.0.0"
14 | }
15 | },
16 | "@babel/highlight": {
17 | "version": "7.0.0",
18 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz",
19 | "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==",
20 | "dev": true,
21 | "requires": {
22 | "chalk": "^2.0.0",
23 | "esutils": "^2.0.2",
24 | "js-tokens": "^4.0.0"
25 | }
26 | },
27 | "@types/mocha": {
28 | "version": "2.2.48",
29 | "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-2.2.48.tgz",
30 | "integrity": "sha512-nlK/iyETgafGli8Zh9zJVCTicvU3iajSkRwOh3Hhiva598CMqNJ4NcVCGMTGKpGpTYj/9R8RLzS9NAykSSCqGw==",
31 | "dev": true
32 | },
33 | "@types/node": {
34 | "version": "10.14.7",
35 | "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.7.tgz",
36 | "integrity": "sha512-on4MmIDgHXiuJDELPk1NFaKVUxxCFr37tm8E9yN6rAiF5Pzp/9bBfBHkoexqRiY+hk/Z04EJU9kKEb59YqJ82A==",
37 | "dev": true
38 | },
39 | "agent-base": {
40 | "version": "4.2.1",
41 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz",
42 | "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==",
43 | "dev": true,
44 | "requires": {
45 | "es6-promisify": "^5.0.0"
46 | }
47 | },
48 | "ajv": {
49 | "version": "6.10.0",
50 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz",
51 | "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==",
52 | "dev": true,
53 | "requires": {
54 | "fast-deep-equal": "^2.0.1",
55 | "fast-json-stable-stringify": "^2.0.0",
56 | "json-schema-traverse": "^0.4.1",
57 | "uri-js": "^4.2.2"
58 | }
59 | },
60 | "ansi-styles": {
61 | "version": "3.2.1",
62 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
63 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
64 | "dev": true,
65 | "requires": {
66 | "color-convert": "^1.9.0"
67 | }
68 | },
69 | "argparse": {
70 | "version": "1.0.10",
71 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
72 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
73 | "dev": true,
74 | "requires": {
75 | "sprintf-js": "~1.0.2"
76 | }
77 | },
78 | "asn1": {
79 | "version": "0.2.4",
80 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
81 | "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
82 | "dev": true,
83 | "requires": {
84 | "safer-buffer": "~2.1.0"
85 | }
86 | },
87 | "assert-plus": {
88 | "version": "1.0.0",
89 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
90 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
91 | "dev": true
92 | },
93 | "asynckit": {
94 | "version": "0.4.0",
95 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
96 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
97 | "dev": true
98 | },
99 | "aws-sign2": {
100 | "version": "0.7.0",
101 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
102 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
103 | "dev": true
104 | },
105 | "aws4": {
106 | "version": "1.8.0",
107 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
108 | "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
109 | "dev": true
110 | },
111 | "balanced-match": {
112 | "version": "1.0.0",
113 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
114 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
115 | "dev": true
116 | },
117 | "bcrypt-pbkdf": {
118 | "version": "1.0.2",
119 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
120 | "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
121 | "dev": true,
122 | "requires": {
123 | "tweetnacl": "^0.14.3"
124 | }
125 | },
126 | "brace-expansion": {
127 | "version": "1.1.11",
128 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
129 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
130 | "dev": true,
131 | "requires": {
132 | "balanced-match": "^1.0.0",
133 | "concat-map": "0.0.1"
134 | }
135 | },
136 | "browser-stdout": {
137 | "version": "1.3.0",
138 | "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz",
139 | "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=",
140 | "dev": true
141 | },
142 | "buffer-from": {
143 | "version": "1.1.1",
144 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
145 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
146 | "dev": true
147 | },
148 | "builtin-modules": {
149 | "version": "1.1.1",
150 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
151 | "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
152 | "dev": true
153 | },
154 | "caseless": {
155 | "version": "0.12.0",
156 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
157 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
158 | "dev": true
159 | },
160 | "chalk": {
161 | "version": "2.4.2",
162 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
163 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
164 | "dev": true,
165 | "requires": {
166 | "ansi-styles": "^3.2.1",
167 | "escape-string-regexp": "^1.0.5",
168 | "supports-color": "^5.3.0"
169 | }
170 | },
171 | "color-convert": {
172 | "version": "1.9.3",
173 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
174 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
175 | "dev": true,
176 | "requires": {
177 | "color-name": "1.1.3"
178 | }
179 | },
180 | "color-name": {
181 | "version": "1.1.3",
182 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
183 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
184 | "dev": true
185 | },
186 | "combined-stream": {
187 | "version": "1.0.8",
188 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
189 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
190 | "dev": true,
191 | "requires": {
192 | "delayed-stream": "~1.0.0"
193 | }
194 | },
195 | "commander": {
196 | "version": "2.20.0",
197 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
198 | "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==",
199 | "dev": true
200 | },
201 | "concat-map": {
202 | "version": "0.0.1",
203 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
204 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
205 | "dev": true
206 | },
207 | "core-util-is": {
208 | "version": "1.0.2",
209 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
210 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
211 | "dev": true
212 | },
213 | "dashdash": {
214 | "version": "1.14.1",
215 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
216 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
217 | "dev": true,
218 | "requires": {
219 | "assert-plus": "^1.0.0"
220 | }
221 | },
222 | "debug": {
223 | "version": "3.1.0",
224 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
225 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
226 | "dev": true,
227 | "requires": {
228 | "ms": "2.0.0"
229 | }
230 | },
231 | "delayed-stream": {
232 | "version": "1.0.0",
233 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
234 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
235 | "dev": true
236 | },
237 | "diff": {
238 | "version": "3.5.0",
239 | "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
240 | "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
241 | "dev": true
242 | },
243 | "ecc-jsbn": {
244 | "version": "0.1.2",
245 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
246 | "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
247 | "dev": true,
248 | "requires": {
249 | "jsbn": "~0.1.0",
250 | "safer-buffer": "^2.1.0"
251 | }
252 | },
253 | "es6-promise": {
254 | "version": "4.2.6",
255 | "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.6.tgz",
256 | "integrity": "sha512-aRVgGdnmW2OiySVPUC9e6m+plolMAJKjZnQlCwNSuK5yQ0JN61DZSO1X1Ufd1foqWRAlig0rhduTCHe7sVtK5Q==",
257 | "dev": true
258 | },
259 | "es6-promisify": {
260 | "version": "5.0.0",
261 | "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
262 | "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
263 | "dev": true,
264 | "requires": {
265 | "es6-promise": "^4.0.3"
266 | }
267 | },
268 | "escape-string-regexp": {
269 | "version": "1.0.5",
270 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
271 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
272 | "dev": true
273 | },
274 | "esprima": {
275 | "version": "4.0.1",
276 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
277 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
278 | "dev": true
279 | },
280 | "esutils": {
281 | "version": "2.0.2",
282 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
283 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
284 | "dev": true
285 | },
286 | "extend": {
287 | "version": "3.0.2",
288 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
289 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
290 | "dev": true
291 | },
292 | "extsprintf": {
293 | "version": "1.3.0",
294 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
295 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
296 | "dev": true
297 | },
298 | "fast-deep-equal": {
299 | "version": "2.0.1",
300 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
301 | "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
302 | "dev": true
303 | },
304 | "fast-json-stable-stringify": {
305 | "version": "2.0.0",
306 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
307 | "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
308 | "dev": true
309 | },
310 | "forever-agent": {
311 | "version": "0.6.1",
312 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
313 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
314 | "dev": true
315 | },
316 | "form-data": {
317 | "version": "2.3.3",
318 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
319 | "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
320 | "dev": true,
321 | "requires": {
322 | "asynckit": "^0.4.0",
323 | "combined-stream": "^1.0.6",
324 | "mime-types": "^2.1.12"
325 | }
326 | },
327 | "fs.realpath": {
328 | "version": "1.0.0",
329 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
330 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
331 | "dev": true
332 | },
333 | "getpass": {
334 | "version": "0.1.7",
335 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
336 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
337 | "dev": true,
338 | "requires": {
339 | "assert-plus": "^1.0.0"
340 | }
341 | },
342 | "glob": {
343 | "version": "7.1.4",
344 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
345 | "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
346 | "dev": true,
347 | "requires": {
348 | "fs.realpath": "^1.0.0",
349 | "inflight": "^1.0.4",
350 | "inherits": "2",
351 | "minimatch": "^3.0.4",
352 | "once": "^1.3.0",
353 | "path-is-absolute": "^1.0.0"
354 | }
355 | },
356 | "growl": {
357 | "version": "1.10.3",
358 | "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz",
359 | "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==",
360 | "dev": true
361 | },
362 | "har-schema": {
363 | "version": "2.0.0",
364 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
365 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
366 | "dev": true
367 | },
368 | "har-validator": {
369 | "version": "5.1.3",
370 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
371 | "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
372 | "dev": true,
373 | "requires": {
374 | "ajv": "^6.5.5",
375 | "har-schema": "^2.0.0"
376 | }
377 | },
378 | "has-flag": {
379 | "version": "3.0.0",
380 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
381 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
382 | "dev": true
383 | },
384 | "he": {
385 | "version": "1.1.1",
386 | "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
387 | "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=",
388 | "dev": true
389 | },
390 | "http-proxy-agent": {
391 | "version": "2.1.0",
392 | "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz",
393 | "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==",
394 | "dev": true,
395 | "requires": {
396 | "agent-base": "4",
397 | "debug": "3.1.0"
398 | }
399 | },
400 | "http-signature": {
401 | "version": "1.2.0",
402 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
403 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
404 | "dev": true,
405 | "requires": {
406 | "assert-plus": "^1.0.0",
407 | "jsprim": "^1.2.2",
408 | "sshpk": "^1.7.0"
409 | }
410 | },
411 | "https-proxy-agent": {
412 | "version": "2.2.1",
413 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz",
414 | "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==",
415 | "dev": true,
416 | "requires": {
417 | "agent-base": "^4.1.0",
418 | "debug": "^3.1.0"
419 | }
420 | },
421 | "inflight": {
422 | "version": "1.0.6",
423 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
424 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
425 | "dev": true,
426 | "requires": {
427 | "once": "^1.3.0",
428 | "wrappy": "1"
429 | }
430 | },
431 | "inherits": {
432 | "version": "2.0.3",
433 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
434 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
435 | "dev": true
436 | },
437 | "is-typedarray": {
438 | "version": "1.0.0",
439 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
440 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
441 | "dev": true
442 | },
443 | "isstream": {
444 | "version": "0.1.2",
445 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
446 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
447 | "dev": true
448 | },
449 | "js-tokens": {
450 | "version": "4.0.0",
451 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
452 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
453 | "dev": true
454 | },
455 | "js-yaml": {
456 | "version": "3.13.1",
457 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
458 | "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
459 | "dev": true,
460 | "requires": {
461 | "argparse": "^1.0.7",
462 | "esprima": "^4.0.0"
463 | }
464 | },
465 | "jsbn": {
466 | "version": "0.1.1",
467 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
468 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
469 | "dev": true
470 | },
471 | "json-schema": {
472 | "version": "0.2.3",
473 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
474 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
475 | "dev": true
476 | },
477 | "json-schema-traverse": {
478 | "version": "0.4.1",
479 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
480 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
481 | "dev": true
482 | },
483 | "json-stringify-safe": {
484 | "version": "5.0.1",
485 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
486 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
487 | "dev": true
488 | },
489 | "jsprim": {
490 | "version": "1.4.1",
491 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
492 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
493 | "dev": true,
494 | "requires": {
495 | "assert-plus": "1.0.0",
496 | "extsprintf": "1.3.0",
497 | "json-schema": "0.2.3",
498 | "verror": "1.10.0"
499 | }
500 | },
501 | "mime-db": {
502 | "version": "1.40.0",
503 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
504 | "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==",
505 | "dev": true
506 | },
507 | "mime-types": {
508 | "version": "2.1.24",
509 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
510 | "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
511 | "dev": true,
512 | "requires": {
513 | "mime-db": "1.40.0"
514 | }
515 | },
516 | "minimatch": {
517 | "version": "3.0.4",
518 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
519 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
520 | "dev": true,
521 | "requires": {
522 | "brace-expansion": "^1.1.7"
523 | }
524 | },
525 | "minimist": {
526 | "version": "0.0.8",
527 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
528 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
529 | "dev": true
530 | },
531 | "mkdirp": {
532 | "version": "0.5.1",
533 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
534 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
535 | "dev": true,
536 | "requires": {
537 | "minimist": "0.0.8"
538 | }
539 | },
540 | "mocha": {
541 | "version": "4.1.0",
542 | "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.1.0.tgz",
543 | "integrity": "sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA==",
544 | "dev": true,
545 | "requires": {
546 | "browser-stdout": "1.3.0",
547 | "commander": "2.11.0",
548 | "debug": "3.1.0",
549 | "diff": "3.3.1",
550 | "escape-string-regexp": "1.0.5",
551 | "glob": "7.1.2",
552 | "growl": "1.10.3",
553 | "he": "1.1.1",
554 | "mkdirp": "0.5.1",
555 | "supports-color": "4.4.0"
556 | },
557 | "dependencies": {
558 | "commander": {
559 | "version": "2.11.0",
560 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
561 | "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==",
562 | "dev": true
563 | },
564 | "diff": {
565 | "version": "3.3.1",
566 | "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz",
567 | "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==",
568 | "dev": true
569 | },
570 | "glob": {
571 | "version": "7.1.2",
572 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
573 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
574 | "dev": true,
575 | "requires": {
576 | "fs.realpath": "^1.0.0",
577 | "inflight": "^1.0.4",
578 | "inherits": "2",
579 | "minimatch": "^3.0.4",
580 | "once": "^1.3.0",
581 | "path-is-absolute": "^1.0.0"
582 | }
583 | },
584 | "has-flag": {
585 | "version": "2.0.0",
586 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
587 | "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
588 | "dev": true
589 | },
590 | "supports-color": {
591 | "version": "4.4.0",
592 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
593 | "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
594 | "dev": true,
595 | "requires": {
596 | "has-flag": "^2.0.0"
597 | }
598 | }
599 | }
600 | },
601 | "ms": {
602 | "version": "2.0.0",
603 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
604 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
605 | "dev": true
606 | },
607 | "oauth-sign": {
608 | "version": "0.9.0",
609 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
610 | "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
611 | "dev": true
612 | },
613 | "once": {
614 | "version": "1.4.0",
615 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
616 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
617 | "dev": true,
618 | "requires": {
619 | "wrappy": "1"
620 | }
621 | },
622 | "path-is-absolute": {
623 | "version": "1.0.1",
624 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
625 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
626 | "dev": true
627 | },
628 | "path-parse": {
629 | "version": "1.0.6",
630 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
631 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
632 | "dev": true
633 | },
634 | "performance-now": {
635 | "version": "2.1.0",
636 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
637 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
638 | "dev": true
639 | },
640 | "psl": {
641 | "version": "1.1.31",
642 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz",
643 | "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==",
644 | "dev": true
645 | },
646 | "punycode": {
647 | "version": "2.1.1",
648 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
649 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
650 | "dev": true
651 | },
652 | "qs": {
653 | "version": "6.5.2",
654 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
655 | "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
656 | "dev": true
657 | },
658 | "querystringify": {
659 | "version": "2.1.1",
660 | "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz",
661 | "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==",
662 | "dev": true
663 | },
664 | "request": {
665 | "version": "2.88.0",
666 | "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
667 | "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
668 | "dev": true,
669 | "requires": {
670 | "aws-sign2": "~0.7.0",
671 | "aws4": "^1.8.0",
672 | "caseless": "~0.12.0",
673 | "combined-stream": "~1.0.6",
674 | "extend": "~3.0.2",
675 | "forever-agent": "~0.6.1",
676 | "form-data": "~2.3.2",
677 | "har-validator": "~5.1.0",
678 | "http-signature": "~1.2.0",
679 | "is-typedarray": "~1.0.0",
680 | "isstream": "~0.1.2",
681 | "json-stringify-safe": "~5.0.1",
682 | "mime-types": "~2.1.19",
683 | "oauth-sign": "~0.9.0",
684 | "performance-now": "^2.1.0",
685 | "qs": "~6.5.2",
686 | "safe-buffer": "^5.1.2",
687 | "tough-cookie": "~2.4.3",
688 | "tunnel-agent": "^0.6.0",
689 | "uuid": "^3.3.2"
690 | }
691 | },
692 | "requires-port": {
693 | "version": "1.0.0",
694 | "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
695 | "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
696 | "dev": true
697 | },
698 | "resolve": {
699 | "version": "1.11.0",
700 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.0.tgz",
701 | "integrity": "sha512-WL2pBDjqT6pGUNSUzMw00o4T7If+z4H2x3Gz893WoUQ5KW8Vr9txp00ykiP16VBaZF5+j/OcXJHZ9+PCvdiDKw==",
702 | "dev": true,
703 | "requires": {
704 | "path-parse": "^1.0.6"
705 | }
706 | },
707 | "safe-buffer": {
708 | "version": "5.1.2",
709 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
710 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
711 | "dev": true
712 | },
713 | "safer-buffer": {
714 | "version": "2.1.2",
715 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
716 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
717 | "dev": true
718 | },
719 | "semver": {
720 | "version": "5.7.0",
721 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
722 | "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
723 | "dev": true
724 | },
725 | "source-map": {
726 | "version": "0.6.1",
727 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
728 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
729 | "dev": true
730 | },
731 | "source-map-support": {
732 | "version": "0.5.12",
733 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz",
734 | "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==",
735 | "dev": true,
736 | "requires": {
737 | "buffer-from": "^1.0.0",
738 | "source-map": "^0.6.0"
739 | }
740 | },
741 | "sprintf-js": {
742 | "version": "1.0.3",
743 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
744 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
745 | "dev": true
746 | },
747 | "sshpk": {
748 | "version": "1.16.1",
749 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
750 | "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
751 | "dev": true,
752 | "requires": {
753 | "asn1": "~0.2.3",
754 | "assert-plus": "^1.0.0",
755 | "bcrypt-pbkdf": "^1.0.0",
756 | "dashdash": "^1.12.0",
757 | "ecc-jsbn": "~0.1.1",
758 | "getpass": "^0.1.1",
759 | "jsbn": "~0.1.0",
760 | "safer-buffer": "^2.0.2",
761 | "tweetnacl": "~0.14.0"
762 | }
763 | },
764 | "supports-color": {
765 | "version": "5.5.0",
766 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
767 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
768 | "dev": true,
769 | "requires": {
770 | "has-flag": "^3.0.0"
771 | }
772 | },
773 | "tough-cookie": {
774 | "version": "2.4.3",
775 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
776 | "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
777 | "dev": true,
778 | "requires": {
779 | "psl": "^1.1.24",
780 | "punycode": "^1.4.1"
781 | },
782 | "dependencies": {
783 | "punycode": {
784 | "version": "1.4.1",
785 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
786 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
787 | "dev": true
788 | }
789 | }
790 | },
791 | "tslib": {
792 | "version": "1.9.3",
793 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
794 | "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==",
795 | "dev": true
796 | },
797 | "tslint": {
798 | "version": "5.16.0",
799 | "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.16.0.tgz",
800 | "integrity": "sha512-UxG2yNxJ5pgGwmMzPMYh/CCnCnh0HfPgtlVRDs1ykZklufFBL1ZoTlWFRz2NQjcoEiDoRp+JyT0lhBbbH/obyA==",
801 | "dev": true,
802 | "requires": {
803 | "@babel/code-frame": "^7.0.0",
804 | "builtin-modules": "^1.1.1",
805 | "chalk": "^2.3.0",
806 | "commander": "^2.12.1",
807 | "diff": "^3.2.0",
808 | "glob": "^7.1.1",
809 | "js-yaml": "^3.13.0",
810 | "minimatch": "^3.0.4",
811 | "mkdirp": "^0.5.1",
812 | "resolve": "^1.3.2",
813 | "semver": "^5.3.0",
814 | "tslib": "^1.8.0",
815 | "tsutils": "^2.29.0"
816 | }
817 | },
818 | "tsutils": {
819 | "version": "2.29.0",
820 | "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz",
821 | "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==",
822 | "dev": true,
823 | "requires": {
824 | "tslib": "^1.8.1"
825 | }
826 | },
827 | "tunnel-agent": {
828 | "version": "0.6.0",
829 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
830 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
831 | "dev": true,
832 | "requires": {
833 | "safe-buffer": "^5.0.1"
834 | }
835 | },
836 | "tweetnacl": {
837 | "version": "0.14.5",
838 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
839 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
840 | "dev": true
841 | },
842 | "typescript": {
843 | "version": "3.4.5",
844 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.4.5.tgz",
845 | "integrity": "sha512-YycBxUb49UUhdNMU5aJ7z5Ej2XGmaIBL0x34vZ82fn3hGvD+bgrMrVDpatgz2f7YxUMJxMkbWxJZeAvDxVe7Vw==",
846 | "dev": true
847 | },
848 | "uri-js": {
849 | "version": "4.2.2",
850 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
851 | "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
852 | "dev": true,
853 | "requires": {
854 | "punycode": "^2.1.0"
855 | }
856 | },
857 | "url-parse": {
858 | "version": "1.5.3",
859 | "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz",
860 | "integrity": "sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==",
861 | "dev": true,
862 | "requires": {
863 | "querystringify": "^2.1.1",
864 | "requires-port": "^1.0.0"
865 | }
866 | },
867 | "uuid": {
868 | "version": "3.3.2",
869 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
870 | "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
871 | "dev": true
872 | },
873 | "verror": {
874 | "version": "1.10.0",
875 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
876 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
877 | "dev": true,
878 | "requires": {
879 | "assert-plus": "^1.0.0",
880 | "core-util-is": "1.0.2",
881 | "extsprintf": "^1.2.0"
882 | }
883 | },
884 | "vscode": {
885 | "version": "1.1.34",
886 | "resolved": "https://registry.npmjs.org/vscode/-/vscode-1.1.34.tgz",
887 | "integrity": "sha512-GuT3tCT2N5Qp26VG4C+iGmWMgg/MuqtY5G5TSOT3U/X6pgjM9LFulJEeqpyf6gdzpI4VyU3ZN/lWPo54UFPuQg==",
888 | "dev": true,
889 | "requires": {
890 | "glob": "^7.1.2",
891 | "mocha": "^4.0.1",
892 | "request": "^2.88.0",
893 | "semver": "^5.4.1",
894 | "source-map-support": "^0.5.0",
895 | "url-parse": "^1.4.4",
896 | "vscode-test": "^0.4.1"
897 | }
898 | },
899 | "vscode-test": {
900 | "version": "0.4.1",
901 | "resolved": "https://registry.npmjs.org/vscode-test/-/vscode-test-0.4.1.tgz",
902 | "integrity": "sha512-uIi/07uG/gmCbD9Y9bFpNzmk4el82xiclijEdL426A3jOFfvwdqgfmtuWYfxEGo0w6JY9EqVDTGQCXwuInXVTQ==",
903 | "dev": true,
904 | "requires": {
905 | "http-proxy-agent": "^2.1.0",
906 | "https-proxy-agent": "^2.2.1"
907 | }
908 | },
909 | "wrappy": {
910 | "version": "1.0.2",
911 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
912 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
913 | "dev": true
914 | }
915 | }
916 | }
917 |
--------------------------------------------------------------------------------
/Step 3/vscode-react/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vscode-react",
3 | "version": "0.0.1",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "@babel/code-frame": {
8 | "version": "7.0.0",
9 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
10 | "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
11 | "dev": true,
12 | "requires": {
13 | "@babel/highlight": "^7.0.0"
14 | }
15 | },
16 | "@babel/highlight": {
17 | "version": "7.0.0",
18 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz",
19 | "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==",
20 | "dev": true,
21 | "requires": {
22 | "chalk": "^2.0.0",
23 | "esutils": "^2.0.2",
24 | "js-tokens": "^4.0.0"
25 | }
26 | },
27 | "@types/mocha": {
28 | "version": "2.2.48",
29 | "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-2.2.48.tgz",
30 | "integrity": "sha512-nlK/iyETgafGli8Zh9zJVCTicvU3iajSkRwOh3Hhiva598CMqNJ4NcVCGMTGKpGpTYj/9R8RLzS9NAykSSCqGw==",
31 | "dev": true
32 | },
33 | "@types/node": {
34 | "version": "10.14.7",
35 | "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.7.tgz",
36 | "integrity": "sha512-on4MmIDgHXiuJDELPk1NFaKVUxxCFr37tm8E9yN6rAiF5Pzp/9bBfBHkoexqRiY+hk/Z04EJU9kKEb59YqJ82A==",
37 | "dev": true
38 | },
39 | "agent-base": {
40 | "version": "4.2.1",
41 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz",
42 | "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==",
43 | "dev": true,
44 | "requires": {
45 | "es6-promisify": "^5.0.0"
46 | }
47 | },
48 | "ajv": {
49 | "version": "6.10.0",
50 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz",
51 | "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==",
52 | "dev": true,
53 | "requires": {
54 | "fast-deep-equal": "^2.0.1",
55 | "fast-json-stable-stringify": "^2.0.0",
56 | "json-schema-traverse": "^0.4.1",
57 | "uri-js": "^4.2.2"
58 | }
59 | },
60 | "ansi-styles": {
61 | "version": "3.2.1",
62 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
63 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
64 | "dev": true,
65 | "requires": {
66 | "color-convert": "^1.9.0"
67 | }
68 | },
69 | "argparse": {
70 | "version": "1.0.10",
71 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
72 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
73 | "dev": true,
74 | "requires": {
75 | "sprintf-js": "~1.0.2"
76 | }
77 | },
78 | "asn1": {
79 | "version": "0.2.4",
80 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
81 | "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
82 | "dev": true,
83 | "requires": {
84 | "safer-buffer": "~2.1.0"
85 | }
86 | },
87 | "assert-plus": {
88 | "version": "1.0.0",
89 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
90 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
91 | "dev": true
92 | },
93 | "asynckit": {
94 | "version": "0.4.0",
95 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
96 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
97 | "dev": true
98 | },
99 | "aws-sign2": {
100 | "version": "0.7.0",
101 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
102 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
103 | "dev": true
104 | },
105 | "aws4": {
106 | "version": "1.8.0",
107 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
108 | "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
109 | "dev": true
110 | },
111 | "balanced-match": {
112 | "version": "1.0.0",
113 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
114 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
115 | "dev": true
116 | },
117 | "bcrypt-pbkdf": {
118 | "version": "1.0.2",
119 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
120 | "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
121 | "dev": true,
122 | "requires": {
123 | "tweetnacl": "^0.14.3"
124 | }
125 | },
126 | "brace-expansion": {
127 | "version": "1.1.11",
128 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
129 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
130 | "dev": true,
131 | "requires": {
132 | "balanced-match": "^1.0.0",
133 | "concat-map": "0.0.1"
134 | }
135 | },
136 | "browser-stdout": {
137 | "version": "1.3.0",
138 | "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz",
139 | "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=",
140 | "dev": true
141 | },
142 | "buffer-from": {
143 | "version": "1.1.1",
144 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
145 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
146 | "dev": true
147 | },
148 | "builtin-modules": {
149 | "version": "1.1.1",
150 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
151 | "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
152 | "dev": true
153 | },
154 | "caseless": {
155 | "version": "0.12.0",
156 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
157 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
158 | "dev": true
159 | },
160 | "chalk": {
161 | "version": "2.4.2",
162 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
163 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
164 | "dev": true,
165 | "requires": {
166 | "ansi-styles": "^3.2.1",
167 | "escape-string-regexp": "^1.0.5",
168 | "supports-color": "^5.3.0"
169 | }
170 | },
171 | "color-convert": {
172 | "version": "1.9.3",
173 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
174 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
175 | "dev": true,
176 | "requires": {
177 | "color-name": "1.1.3"
178 | }
179 | },
180 | "color-name": {
181 | "version": "1.1.3",
182 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
183 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
184 | "dev": true
185 | },
186 | "combined-stream": {
187 | "version": "1.0.8",
188 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
189 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
190 | "dev": true,
191 | "requires": {
192 | "delayed-stream": "~1.0.0"
193 | }
194 | },
195 | "commander": {
196 | "version": "2.20.0",
197 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
198 | "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==",
199 | "dev": true
200 | },
201 | "concat-map": {
202 | "version": "0.0.1",
203 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
204 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
205 | "dev": true
206 | },
207 | "core-util-is": {
208 | "version": "1.0.2",
209 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
210 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
211 | "dev": true
212 | },
213 | "dashdash": {
214 | "version": "1.14.1",
215 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
216 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
217 | "dev": true,
218 | "requires": {
219 | "assert-plus": "^1.0.0"
220 | }
221 | },
222 | "debug": {
223 | "version": "3.1.0",
224 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
225 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
226 | "dev": true,
227 | "requires": {
228 | "ms": "2.0.0"
229 | }
230 | },
231 | "delayed-stream": {
232 | "version": "1.0.0",
233 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
234 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
235 | "dev": true
236 | },
237 | "diff": {
238 | "version": "3.5.0",
239 | "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
240 | "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
241 | "dev": true
242 | },
243 | "ecc-jsbn": {
244 | "version": "0.1.2",
245 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
246 | "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
247 | "dev": true,
248 | "requires": {
249 | "jsbn": "~0.1.0",
250 | "safer-buffer": "^2.1.0"
251 | }
252 | },
253 | "es6-promise": {
254 | "version": "4.2.6",
255 | "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.6.tgz",
256 | "integrity": "sha512-aRVgGdnmW2OiySVPUC9e6m+plolMAJKjZnQlCwNSuK5yQ0JN61DZSO1X1Ufd1foqWRAlig0rhduTCHe7sVtK5Q==",
257 | "dev": true
258 | },
259 | "es6-promisify": {
260 | "version": "5.0.0",
261 | "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
262 | "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
263 | "dev": true,
264 | "requires": {
265 | "es6-promise": "^4.0.3"
266 | }
267 | },
268 | "escape-string-regexp": {
269 | "version": "1.0.5",
270 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
271 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
272 | "dev": true
273 | },
274 | "esprima": {
275 | "version": "4.0.1",
276 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
277 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
278 | "dev": true
279 | },
280 | "esutils": {
281 | "version": "2.0.2",
282 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
283 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
284 | "dev": true
285 | },
286 | "extend": {
287 | "version": "3.0.2",
288 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
289 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
290 | "dev": true
291 | },
292 | "extsprintf": {
293 | "version": "1.3.0",
294 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
295 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
296 | "dev": true
297 | },
298 | "fast-deep-equal": {
299 | "version": "2.0.1",
300 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
301 | "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
302 | "dev": true
303 | },
304 | "fast-json-stable-stringify": {
305 | "version": "2.0.0",
306 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
307 | "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
308 | "dev": true
309 | },
310 | "forever-agent": {
311 | "version": "0.6.1",
312 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
313 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
314 | "dev": true
315 | },
316 | "form-data": {
317 | "version": "2.3.3",
318 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
319 | "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
320 | "dev": true,
321 | "requires": {
322 | "asynckit": "^0.4.0",
323 | "combined-stream": "^1.0.6",
324 | "mime-types": "^2.1.12"
325 | }
326 | },
327 | "fs.realpath": {
328 | "version": "1.0.0",
329 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
330 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
331 | "dev": true
332 | },
333 | "getpass": {
334 | "version": "0.1.7",
335 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
336 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
337 | "dev": true,
338 | "requires": {
339 | "assert-plus": "^1.0.0"
340 | }
341 | },
342 | "glob": {
343 | "version": "7.1.4",
344 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
345 | "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
346 | "dev": true,
347 | "requires": {
348 | "fs.realpath": "^1.0.0",
349 | "inflight": "^1.0.4",
350 | "inherits": "2",
351 | "minimatch": "^3.0.4",
352 | "once": "^1.3.0",
353 | "path-is-absolute": "^1.0.0"
354 | }
355 | },
356 | "growl": {
357 | "version": "1.10.3",
358 | "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz",
359 | "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==",
360 | "dev": true
361 | },
362 | "har-schema": {
363 | "version": "2.0.0",
364 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
365 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
366 | "dev": true
367 | },
368 | "har-validator": {
369 | "version": "5.1.3",
370 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
371 | "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
372 | "dev": true,
373 | "requires": {
374 | "ajv": "^6.5.5",
375 | "har-schema": "^2.0.0"
376 | }
377 | },
378 | "has-flag": {
379 | "version": "3.0.0",
380 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
381 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
382 | "dev": true
383 | },
384 | "he": {
385 | "version": "1.1.1",
386 | "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
387 | "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=",
388 | "dev": true
389 | },
390 | "http-proxy-agent": {
391 | "version": "2.1.0",
392 | "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz",
393 | "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==",
394 | "dev": true,
395 | "requires": {
396 | "agent-base": "4",
397 | "debug": "3.1.0"
398 | }
399 | },
400 | "http-signature": {
401 | "version": "1.2.0",
402 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
403 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
404 | "dev": true,
405 | "requires": {
406 | "assert-plus": "^1.0.0",
407 | "jsprim": "^1.2.2",
408 | "sshpk": "^1.7.0"
409 | }
410 | },
411 | "https-proxy-agent": {
412 | "version": "2.2.1",
413 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz",
414 | "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==",
415 | "dev": true,
416 | "requires": {
417 | "agent-base": "^4.1.0",
418 | "debug": "^3.1.0"
419 | }
420 | },
421 | "inflight": {
422 | "version": "1.0.6",
423 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
424 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
425 | "dev": true,
426 | "requires": {
427 | "once": "^1.3.0",
428 | "wrappy": "1"
429 | }
430 | },
431 | "inherits": {
432 | "version": "2.0.3",
433 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
434 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
435 | "dev": true
436 | },
437 | "is-typedarray": {
438 | "version": "1.0.0",
439 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
440 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
441 | "dev": true
442 | },
443 | "isstream": {
444 | "version": "0.1.2",
445 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
446 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
447 | "dev": true
448 | },
449 | "js-tokens": {
450 | "version": "4.0.0",
451 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
452 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
453 | "dev": true
454 | },
455 | "js-yaml": {
456 | "version": "3.13.1",
457 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
458 | "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
459 | "dev": true,
460 | "requires": {
461 | "argparse": "^1.0.7",
462 | "esprima": "^4.0.0"
463 | }
464 | },
465 | "jsbn": {
466 | "version": "0.1.1",
467 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
468 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
469 | "dev": true
470 | },
471 | "json-schema": {
472 | "version": "0.2.3",
473 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
474 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
475 | "dev": true
476 | },
477 | "json-schema-traverse": {
478 | "version": "0.4.1",
479 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
480 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
481 | "dev": true
482 | },
483 | "json-stringify-safe": {
484 | "version": "5.0.1",
485 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
486 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
487 | "dev": true
488 | },
489 | "jsprim": {
490 | "version": "1.4.1",
491 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
492 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
493 | "dev": true,
494 | "requires": {
495 | "assert-plus": "1.0.0",
496 | "extsprintf": "1.3.0",
497 | "json-schema": "0.2.3",
498 | "verror": "1.10.0"
499 | }
500 | },
501 | "mime-db": {
502 | "version": "1.40.0",
503 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
504 | "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==",
505 | "dev": true
506 | },
507 | "mime-types": {
508 | "version": "2.1.24",
509 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
510 | "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
511 | "dev": true,
512 | "requires": {
513 | "mime-db": "1.40.0"
514 | }
515 | },
516 | "minimatch": {
517 | "version": "3.0.4",
518 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
519 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
520 | "dev": true,
521 | "requires": {
522 | "brace-expansion": "^1.1.7"
523 | }
524 | },
525 | "minimist": {
526 | "version": "0.0.8",
527 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
528 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
529 | "dev": true
530 | },
531 | "mkdirp": {
532 | "version": "0.5.1",
533 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
534 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
535 | "dev": true,
536 | "requires": {
537 | "minimist": "0.0.8"
538 | }
539 | },
540 | "mocha": {
541 | "version": "4.1.0",
542 | "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.1.0.tgz",
543 | "integrity": "sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA==",
544 | "dev": true,
545 | "requires": {
546 | "browser-stdout": "1.3.0",
547 | "commander": "2.11.0",
548 | "debug": "3.1.0",
549 | "diff": "3.3.1",
550 | "escape-string-regexp": "1.0.5",
551 | "glob": "7.1.2",
552 | "growl": "1.10.3",
553 | "he": "1.1.1",
554 | "mkdirp": "0.5.1",
555 | "supports-color": "4.4.0"
556 | },
557 | "dependencies": {
558 | "commander": {
559 | "version": "2.11.0",
560 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
561 | "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==",
562 | "dev": true
563 | },
564 | "diff": {
565 | "version": "3.3.1",
566 | "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz",
567 | "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==",
568 | "dev": true
569 | },
570 | "glob": {
571 | "version": "7.1.2",
572 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
573 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
574 | "dev": true,
575 | "requires": {
576 | "fs.realpath": "^1.0.0",
577 | "inflight": "^1.0.4",
578 | "inherits": "2",
579 | "minimatch": "^3.0.4",
580 | "once": "^1.3.0",
581 | "path-is-absolute": "^1.0.0"
582 | }
583 | },
584 | "has-flag": {
585 | "version": "2.0.0",
586 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
587 | "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
588 | "dev": true
589 | },
590 | "supports-color": {
591 | "version": "4.4.0",
592 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
593 | "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
594 | "dev": true,
595 | "requires": {
596 | "has-flag": "^2.0.0"
597 | }
598 | }
599 | }
600 | },
601 | "ms": {
602 | "version": "2.0.0",
603 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
604 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
605 | "dev": true
606 | },
607 | "oauth-sign": {
608 | "version": "0.9.0",
609 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
610 | "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
611 | "dev": true
612 | },
613 | "once": {
614 | "version": "1.4.0",
615 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
616 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
617 | "dev": true,
618 | "requires": {
619 | "wrappy": "1"
620 | }
621 | },
622 | "path-is-absolute": {
623 | "version": "1.0.1",
624 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
625 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
626 | "dev": true
627 | },
628 | "path-parse": {
629 | "version": "1.0.6",
630 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
631 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
632 | "dev": true
633 | },
634 | "performance-now": {
635 | "version": "2.1.0",
636 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
637 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
638 | "dev": true
639 | },
640 | "psl": {
641 | "version": "1.1.31",
642 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz",
643 | "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==",
644 | "dev": true
645 | },
646 | "punycode": {
647 | "version": "2.1.1",
648 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
649 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
650 | "dev": true
651 | },
652 | "qs": {
653 | "version": "6.5.2",
654 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
655 | "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
656 | "dev": true
657 | },
658 | "querystringify": {
659 | "version": "2.1.1",
660 | "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz",
661 | "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==",
662 | "dev": true
663 | },
664 | "request": {
665 | "version": "2.88.0",
666 | "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
667 | "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
668 | "dev": true,
669 | "requires": {
670 | "aws-sign2": "~0.7.0",
671 | "aws4": "^1.8.0",
672 | "caseless": "~0.12.0",
673 | "combined-stream": "~1.0.6",
674 | "extend": "~3.0.2",
675 | "forever-agent": "~0.6.1",
676 | "form-data": "~2.3.2",
677 | "har-validator": "~5.1.0",
678 | "http-signature": "~1.2.0",
679 | "is-typedarray": "~1.0.0",
680 | "isstream": "~0.1.2",
681 | "json-stringify-safe": "~5.0.1",
682 | "mime-types": "~2.1.19",
683 | "oauth-sign": "~0.9.0",
684 | "performance-now": "^2.1.0",
685 | "qs": "~6.5.2",
686 | "safe-buffer": "^5.1.2",
687 | "tough-cookie": "~2.4.3",
688 | "tunnel-agent": "^0.6.0",
689 | "uuid": "^3.3.2"
690 | }
691 | },
692 | "requires-port": {
693 | "version": "1.0.0",
694 | "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
695 | "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
696 | "dev": true
697 | },
698 | "resolve": {
699 | "version": "1.11.0",
700 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.0.tgz",
701 | "integrity": "sha512-WL2pBDjqT6pGUNSUzMw00o4T7If+z4H2x3Gz893WoUQ5KW8Vr9txp00ykiP16VBaZF5+j/OcXJHZ9+PCvdiDKw==",
702 | "dev": true,
703 | "requires": {
704 | "path-parse": "^1.0.6"
705 | }
706 | },
707 | "safe-buffer": {
708 | "version": "5.1.2",
709 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
710 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
711 | "dev": true
712 | },
713 | "safer-buffer": {
714 | "version": "2.1.2",
715 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
716 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
717 | "dev": true
718 | },
719 | "semver": {
720 | "version": "5.7.0",
721 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
722 | "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
723 | "dev": true
724 | },
725 | "source-map": {
726 | "version": "0.6.1",
727 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
728 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
729 | "dev": true
730 | },
731 | "source-map-support": {
732 | "version": "0.5.12",
733 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz",
734 | "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==",
735 | "dev": true,
736 | "requires": {
737 | "buffer-from": "^1.0.0",
738 | "source-map": "^0.6.0"
739 | }
740 | },
741 | "sprintf-js": {
742 | "version": "1.0.3",
743 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
744 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
745 | "dev": true
746 | },
747 | "sshpk": {
748 | "version": "1.16.1",
749 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
750 | "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
751 | "dev": true,
752 | "requires": {
753 | "asn1": "~0.2.3",
754 | "assert-plus": "^1.0.0",
755 | "bcrypt-pbkdf": "^1.0.0",
756 | "dashdash": "^1.12.0",
757 | "ecc-jsbn": "~0.1.1",
758 | "getpass": "^0.1.1",
759 | "jsbn": "~0.1.0",
760 | "safer-buffer": "^2.0.2",
761 | "tweetnacl": "~0.14.0"
762 | }
763 | },
764 | "supports-color": {
765 | "version": "5.5.0",
766 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
767 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
768 | "dev": true,
769 | "requires": {
770 | "has-flag": "^3.0.0"
771 | }
772 | },
773 | "tough-cookie": {
774 | "version": "2.4.3",
775 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
776 | "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
777 | "dev": true,
778 | "requires": {
779 | "psl": "^1.1.24",
780 | "punycode": "^1.4.1"
781 | },
782 | "dependencies": {
783 | "punycode": {
784 | "version": "1.4.1",
785 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
786 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
787 | "dev": true
788 | }
789 | }
790 | },
791 | "tslib": {
792 | "version": "1.9.3",
793 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
794 | "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==",
795 | "dev": true
796 | },
797 | "tslint": {
798 | "version": "5.16.0",
799 | "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.16.0.tgz",
800 | "integrity": "sha512-UxG2yNxJ5pgGwmMzPMYh/CCnCnh0HfPgtlVRDs1ykZklufFBL1ZoTlWFRz2NQjcoEiDoRp+JyT0lhBbbH/obyA==",
801 | "dev": true,
802 | "requires": {
803 | "@babel/code-frame": "^7.0.0",
804 | "builtin-modules": "^1.1.1",
805 | "chalk": "^2.3.0",
806 | "commander": "^2.12.1",
807 | "diff": "^3.2.0",
808 | "glob": "^7.1.1",
809 | "js-yaml": "^3.13.0",
810 | "minimatch": "^3.0.4",
811 | "mkdirp": "^0.5.1",
812 | "resolve": "^1.3.2",
813 | "semver": "^5.3.0",
814 | "tslib": "^1.8.0",
815 | "tsutils": "^2.29.0"
816 | }
817 | },
818 | "tsutils": {
819 | "version": "2.29.0",
820 | "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz",
821 | "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==",
822 | "dev": true,
823 | "requires": {
824 | "tslib": "^1.8.1"
825 | }
826 | },
827 | "tunnel-agent": {
828 | "version": "0.6.0",
829 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
830 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
831 | "dev": true,
832 | "requires": {
833 | "safe-buffer": "^5.0.1"
834 | }
835 | },
836 | "tweetnacl": {
837 | "version": "0.14.5",
838 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
839 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
840 | "dev": true
841 | },
842 | "typescript": {
843 | "version": "3.4.5",
844 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.4.5.tgz",
845 | "integrity": "sha512-YycBxUb49UUhdNMU5aJ7z5Ej2XGmaIBL0x34vZ82fn3hGvD+bgrMrVDpatgz2f7YxUMJxMkbWxJZeAvDxVe7Vw==",
846 | "dev": true
847 | },
848 | "uri-js": {
849 | "version": "4.2.2",
850 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
851 | "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
852 | "dev": true,
853 | "requires": {
854 | "punycode": "^2.1.0"
855 | }
856 | },
857 | "url-parse": {
858 | "version": "1.4.7",
859 | "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz",
860 | "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==",
861 | "dev": true,
862 | "requires": {
863 | "querystringify": "^2.1.1",
864 | "requires-port": "^1.0.0"
865 | }
866 | },
867 | "uuid": {
868 | "version": "3.3.2",
869 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
870 | "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
871 | "dev": true
872 | },
873 | "verror": {
874 | "version": "1.10.0",
875 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
876 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
877 | "dev": true,
878 | "requires": {
879 | "assert-plus": "^1.0.0",
880 | "core-util-is": "1.0.2",
881 | "extsprintf": "^1.2.0"
882 | }
883 | },
884 | "vscode": {
885 | "version": "1.1.34",
886 | "resolved": "https://registry.npmjs.org/vscode/-/vscode-1.1.34.tgz",
887 | "integrity": "sha512-GuT3tCT2N5Qp26VG4C+iGmWMgg/MuqtY5G5TSOT3U/X6pgjM9LFulJEeqpyf6gdzpI4VyU3ZN/lWPo54UFPuQg==",
888 | "dev": true,
889 | "requires": {
890 | "glob": "^7.1.2",
891 | "mocha": "^4.0.1",
892 | "request": "^2.88.0",
893 | "semver": "^5.4.1",
894 | "source-map-support": "^0.5.0",
895 | "url-parse": "^1.4.4",
896 | "vscode-test": "^0.4.1"
897 | }
898 | },
899 | "vscode-test": {
900 | "version": "0.4.1",
901 | "resolved": "https://registry.npmjs.org/vscode-test/-/vscode-test-0.4.1.tgz",
902 | "integrity": "sha512-uIi/07uG/gmCbD9Y9bFpNzmk4el82xiclijEdL426A3jOFfvwdqgfmtuWYfxEGo0w6JY9EqVDTGQCXwuInXVTQ==",
903 | "dev": true,
904 | "requires": {
905 | "http-proxy-agent": "^2.1.0",
906 | "https-proxy-agent": "^2.2.1"
907 | }
908 | },
909 | "wrappy": {
910 | "version": "1.0.2",
911 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
912 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
913 | "dev": true
914 | }
915 | }
916 | }
917 |
--------------------------------------------------------------------------------