├── .gitignore
├── .mocharc
├── .vscode
├── launch.json
└── settings.json
├── LICENSE
├── README.md
├── azure-pipelines.yml
├── package-lock.json
├── package.json
├── src
├── index.ts
├── transport
│ ├── index.ts
│ └── zeebe-server.ts
├── zeebe.constans.ts
├── zeebe.decorator.ts
├── zeebe.exception.filter.ts
├── zeebe.interfaces.ts
├── zeebe.module.spec.ts
└── zeebe.module.ts
└── tsconfig.json
/.gitignore:
--------------------------------------------------------------------------------
1 | /dist
2 | /node_modules
3 | /coverage
4 | /.nyc_output
5 | test-results.xml
--------------------------------------------------------------------------------
/.mocharc:
--------------------------------------------------------------------------------
1 | --require ts-node/register
2 | --require source-map-support/register
3 | --recursive
4 | --colors
5 | src/**/*.spec.ts
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
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 | "version": "0.2.0",
6 | "configurations": [
7 | {
8 | "type": "node",
9 | "request": "launch",
10 | "name": "Mocha Tests",
11 | "program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
12 | "args": [
13 | "-u",
14 | "tdd",
15 | "--timeout",
16 | "999999",
17 | "--colors",
18 | "${workspaceFolder}/test"
19 | ],
20 | "internalConsoleOptions": "openOnSessionStart"
21 | },
22 |
23 | {
24 | "type": "node",
25 | "request": "launch",
26 | "name": "Launch Program",
27 | "program": "${workspaceFolder}/dist/index.js",
28 | "preLaunchTask": "tsc: build - tsconfig.json",
29 | "outFiles": [
30 | "${workspaceFolder}/dist/**/*.js"
31 | ]
32 | }
33 | ]
34 | }
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | }
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 pay-k
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | # NestJS Zeebe Connector (Transport and Client)
6 | A zeebe transport and client for NestJS
7 |
8 | Using the zeebe-node module and exposing it as a NestJS transport and module.
9 |
10 |
11 |
12 | [](https://dev.azure.com/payk/PayK%20Public/_build/latest?definitionId=1&branchName=master)
13 |
14 |
15 |
16 |
17 | ## Install
18 | npm install @payk/nestjs-zeebe
19 |
20 | ## Basic usage
21 |
22 |
23 | ```ts
24 | // app.module.ts
25 | import { Module } from '@nestjs/common';
26 | import { AppController } from './app.controller';
27 | import { ZeebeModule, ZeebeServer } from '@payk/nestjs-zeebe';
28 |
29 | @Module({
30 | imports: [ ZeebeModule.forRoot({ gatewayAddress: 'localhost:26500' })],
31 | controllers: [AppController],
32 | providers: [ZeebeServer],
33 | })
34 | export class AppModule {}
35 | ```
36 |
37 | ```ts
38 | // main.ts
39 | import { NestFactory } from '@nestjs/core';
40 | import { AppModule } from './app.module';
41 | import { ZeebeServer } from '@payk/nestjs-zeebe';
42 |
43 | async function bootstrap() {
44 | const app = await NestFactory.create(AppModule);
45 | const microservice = app.connectMicroservice({
46 | strategy: app.get(ZeebeServer),
47 | });
48 |
49 | await app.startAllMicroservicesAsync();
50 |
51 | await app.listen(3000);
52 | }
53 | bootstrap();
54 |
55 | ```
56 |
57 | ```ts
58 | // app.controller.ts
59 | import { Controller, Get, Inject } from '@nestjs/common';
60 | import { AppService } from './app.service';
61 | import { ZBClient } from 'zeebe-node';
62 | import { CreateWorkflowInstanceResponse, CompleteFn, Job } from 'zeebe-node/interfaces';
63 | import { ZEEBE_CONNECTION_PROVIDER, ZeebeWorker } from '@payk/nestjs-zeebe';
64 | import {
65 | Ctx,
66 | Payload,
67 | } from '@nestjs/microservices';
68 |
69 | @Controller()
70 | export class AppController {
71 | constructor(private readonly appService: AppService, @Inject(ZEEBE_CONNECTION_PROVIDER) private readonly zbClient: ZBClient) {}
72 |
73 | // Use the client to create a new workflow instance
74 | @Get()
75 | getHello() : Promise {
76 | return this.zbClient.createWorkflowInstance('order-process', { test: 1, or: 'romano'});
77 | }
78 |
79 | // Subscribe to events of type 'payment-service
80 | @ZeebeWorker('payment-service')
81 | paymentService(@Payload() job, @Ctx() fn: CompleteFn {
82 | console.log('Payment-service, Task variables', job.variables);
83 | let updatedVariables = Object.assign({}, job.variables, {
84 | paymentService: 'Did my job',
85 | });
86 |
87 | // Task worker business logic goes here
88 |
89 | complete.success(updatedVariables);
90 | }
91 |
92 | // Subscribe to events of type 'inventory-service and create a worker with the options as passed below (zeebe-node ZBWorkerOptions)
93 | @ZeebeWorker('inventory-service', { maxJobsToActivate: 10, timeout: 300 })
94 | inventoryService(@Payload() job, @Ctx() fn: CompleteFn) {
95 | console.log('inventory-service, Task variables', job.variables);
96 | let updatedVariables = Object.assign({}, job.variables, {
97 | inventoryVar: 'Inventory donnnneee',
98 | });
99 |
100 | // Task worker business logic goes here
101 |
102 | complete.success(updatedVariables);
103 | }
104 | }
105 |
106 | ```
107 |
--------------------------------------------------------------------------------
/azure-pipelines.yml:
--------------------------------------------------------------------------------
1 | # Node.js
2 | # Build a general Node.js project with npm.
3 | # Add steps that analyze code, save build artifacts, deploy, and more:
4 | # https://docs.microsoft.com/azure/devops/pipelines/languages/javascript
5 |
6 | trigger:
7 | - master
8 |
9 | pool:
10 | vmImage: 'ubuntu-latest'
11 |
12 | steps:
13 | - task: NodeTool@0
14 | inputs:
15 | versionSpec: '10.x'
16 | displayName: 'Install Node.js'
17 |
18 | - script: |
19 | npm ci
20 | npm run build
21 | displayName: 'npm install and build'
22 |
23 | - script: |
24 | npm run test-juint
25 | displayName: 'npm test'
26 |
27 |
28 |
29 | - task: PublishTestResults@2
30 | condition: succeededOrFailed()
31 | inputs:
32 | testResultsFormat: 'JUnit'
33 | testResultsFiles: '**/test-results.xml'
34 |
35 | - task: CopyFiles@2
36 | inputs:
37 | SourceFolder: '$(Build.SourcesDirectory)'
38 | Contents: |
39 | **/*
40 | !.git/**/*
41 | !node_modules/**/*
42 | TargetFolder: '$(Build.ArtifactStagingDirectory)'
43 | CleanTargetFolder: true
44 |
45 | - task: PublishBuildArtifacts@1
46 | inputs:
47 | PathtoPublish: '$(Build.ArtifactStagingDirectory)'
48 | ArtifactName: 'nestjs-zeebe'
49 | publishLocation: 'Container'
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@payk/nestjs-zeebe",
3 | "version": "1.2.2",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "@grpc/proto-loader": {
8 | "version": "0.5.3",
9 | "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.5.3.tgz",
10 | "integrity": "sha512-8qvUtGg77G2ZT2HqdqYoM/OY97gQd/0crSG34xNmZ4ZOsv3aQT/FQV9QfZPazTGna6MIoyUd+u6AxsoZjJ/VMQ==",
11 | "dev": true,
12 | "requires": {
13 | "lodash.camelcase": "^4.3.0",
14 | "protobufjs": "^6.8.6"
15 | }
16 | },
17 | "@nestjs/common": {
18 | "version": "6.11.5",
19 | "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-6.11.5.tgz",
20 | "integrity": "sha512-pCM3aK876ubnJS9g/ni44BpzNU3sja+dTw61H3VkYJTq1tBWjhn50fAe5ezTXEZPND4pG8HAO3gjdHFanEXH2g==",
21 | "dev": true,
22 | "requires": {
23 | "axios": "0.19.2",
24 | "cli-color": "2.0.0",
25 | "tslib": "1.10.0",
26 | "uuid": "3.4.0"
27 | },
28 | "dependencies": {
29 | "uuid": {
30 | "version": "3.4.0",
31 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
32 | "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
33 | "dev": true
34 | }
35 | }
36 | },
37 | "@nestjs/core": {
38 | "version": "6.11.5",
39 | "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-6.11.5.tgz",
40 | "integrity": "sha512-UFtMZBFXeNdSH3wdv9czCSZMO47nPcsauANf8xrzYP9m3amEOhhEMR+FIjwuFXZ5RralsLuz+U2LcaChWZjSHg==",
41 | "dev": true,
42 | "requires": {
43 | "@nuxtjs/opencollective": "0.2.2",
44 | "fast-safe-stringify": "2.0.7",
45 | "iterare": "1.2.0",
46 | "object-hash": "2.0.1",
47 | "path-to-regexp": "3.2.0",
48 | "tslib": "1.10.0",
49 | "uuid": "3.4.0"
50 | },
51 | "dependencies": {
52 | "path-to-regexp": {
53 | "version": "3.2.0",
54 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.2.0.tgz",
55 | "integrity": "sha512-jczvQbCUS7XmS7o+y1aEO9OBVFeZBQ1MDSEqmO7xSoPgOPoowY/SxLpZ6Vh97/8qHZOteiCKb7gkG9gA2ZUxJA==",
56 | "dev": true
57 | },
58 | "uuid": {
59 | "version": "3.4.0",
60 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
61 | "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
62 | "dev": true
63 | }
64 | }
65 | },
66 | "@nestjs/microservices": {
67 | "version": "6.11.5",
68 | "resolved": "https://registry.npmjs.org/@nestjs/microservices/-/microservices-6.11.5.tgz",
69 | "integrity": "sha512-CDDhT6DF33hW7WlreKUciWNabtXsZkmv2pyHMTnx9c1vdm/GnjTjse8ROsNzbalSfYRW8fvAyUW9sk64/ElrNw==",
70 | "dev": true,
71 | "requires": {
72 | "iterare": "1.2.0",
73 | "json-socket": "0.3.0",
74 | "tslib": "1.10.0"
75 | }
76 | },
77 | "@nestjs/platform-express": {
78 | "version": "6.11.5",
79 | "resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-6.11.5.tgz",
80 | "integrity": "sha512-kPbUzlo7eN68LesTQ3Y1siJ1BJZo2DUINqdrv92hPv834nTX9P36+Ee4LNGHmO8I4vCdRweudrurxAYntuN+gw==",
81 | "dev": true,
82 | "requires": {
83 | "body-parser": "1.19.0",
84 | "cors": "2.8.5",
85 | "express": "4.17.1",
86 | "multer": "1.4.2",
87 | "tslib": "1.10.0"
88 | }
89 | },
90 | "@nestjs/testing": {
91 | "version": "6.11.5",
92 | "resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-6.11.5.tgz",
93 | "integrity": "sha512-/EhYQgyItK7wOzBmE61OvVE+45jfM05OqOGVj3RqClFJ95hBjp/7TTsNFRpYCWWwsJjDrkrHYaWbpaCotdrw9Q==",
94 | "dev": true,
95 | "requires": {
96 | "optional": "0.1.4",
97 | "tslib": "1.10.0"
98 | }
99 | },
100 | "@nuxtjs/opencollective": {
101 | "version": "0.2.2",
102 | "resolved": "https://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.2.2.tgz",
103 | "integrity": "sha512-69gFVDs7mJfNjv9Zs5DFVD+pvBW+k1TaHSOqUWqAyTTfLcKI/EMYQgvEvziRd+zAFtUOoye6MfWh0qvinGISPw==",
104 | "dev": true,
105 | "requires": {
106 | "chalk": "^2.4.1",
107 | "consola": "^2.3.0",
108 | "node-fetch": "^2.3.0"
109 | }
110 | },
111 | "@protobufjs/aspromise": {
112 | "version": "1.1.2",
113 | "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
114 | "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=",
115 | "dev": true
116 | },
117 | "@protobufjs/base64": {
118 | "version": "1.1.2",
119 | "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
120 | "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==",
121 | "dev": true
122 | },
123 | "@protobufjs/codegen": {
124 | "version": "2.0.4",
125 | "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz",
126 | "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==",
127 | "dev": true
128 | },
129 | "@protobufjs/eventemitter": {
130 | "version": "1.1.0",
131 | "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
132 | "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=",
133 | "dev": true
134 | },
135 | "@protobufjs/fetch": {
136 | "version": "1.1.0",
137 | "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz",
138 | "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=",
139 | "dev": true,
140 | "requires": {
141 | "@protobufjs/aspromise": "^1.1.1",
142 | "@protobufjs/inquire": "^1.1.0"
143 | }
144 | },
145 | "@protobufjs/float": {
146 | "version": "1.0.2",
147 | "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
148 | "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=",
149 | "dev": true
150 | },
151 | "@protobufjs/inquire": {
152 | "version": "1.1.0",
153 | "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz",
154 | "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=",
155 | "dev": true
156 | },
157 | "@protobufjs/path": {
158 | "version": "1.1.2",
159 | "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
160 | "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=",
161 | "dev": true
162 | },
163 | "@protobufjs/pool": {
164 | "version": "1.1.0",
165 | "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
166 | "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=",
167 | "dev": true
168 | },
169 | "@protobufjs/utf8": {
170 | "version": "1.1.0",
171 | "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
172 | "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=",
173 | "dev": true
174 | },
175 | "@sindresorhus/is": {
176 | "version": "0.14.0",
177 | "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
178 | "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==",
179 | "dev": true
180 | },
181 | "@szmarczak/http-timer": {
182 | "version": "1.1.2",
183 | "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
184 | "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
185 | "dev": true,
186 | "requires": {
187 | "defer-to-connect": "^1.0.1"
188 | }
189 | },
190 | "@types/bytebuffer": {
191 | "version": "5.0.40",
192 | "resolved": "https://registry.npmjs.org/@types/bytebuffer/-/bytebuffer-5.0.40.tgz",
193 | "integrity": "sha512-h48dyzZrPMz25K6Q4+NCwWaxwXany2FhQg/ErOcdZS1ZpsaDnDMZg8JYLMTGz7uvXKrcKGJUZJlZObyfgdaN9g==",
194 | "dev": true,
195 | "requires": {
196 | "@types/long": "*",
197 | "@types/node": "*"
198 | }
199 | },
200 | "@types/chai": {
201 | "version": "4.2.8",
202 | "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.8.tgz",
203 | "integrity": "sha512-U1bQiWbln41Yo6EeHMr+34aUhvrMVyrhn9lYfPSpLTCrZlGxU4Rtn1bocX+0p2Fc/Jkd2FanCEXdw0WNfHHM0w==",
204 | "dev": true
205 | },
206 | "@types/long": {
207 | "version": "4.0.1",
208 | "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz",
209 | "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==",
210 | "dev": true
211 | },
212 | "@types/mocha": {
213 | "version": "5.2.7",
214 | "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz",
215 | "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==",
216 | "dev": true
217 | },
218 | "@types/node": {
219 | "version": "10.17.14",
220 | "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.14.tgz",
221 | "integrity": "sha512-G0UmX5uKEmW+ZAhmZ6PLTQ5eu/VPaT+d/tdLd5IFsKRPcbe6lPxocBtcYBFSaLaCW8O60AX90e91Nsp8lVHCNw==",
222 | "dev": true
223 | },
224 | "@types/promise-retry": {
225 | "version": "1.1.3",
226 | "resolved": "https://registry.npmjs.org/@types/promise-retry/-/promise-retry-1.1.3.tgz",
227 | "integrity": "sha512-LxIlEpEX6frE3co3vCO2EUJfHIta1IOmhDlcAsR4GMMv9hev1iTI9VwberVGkePJAuLZs5rMucrV8CziCfuJMw==",
228 | "dev": true,
229 | "requires": {
230 | "@types/retry": "*"
231 | }
232 | },
233 | "@types/retry": {
234 | "version": "0.12.0",
235 | "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz",
236 | "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==",
237 | "dev": true
238 | },
239 | "accepts": {
240 | "version": "1.3.7",
241 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
242 | "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
243 | "dev": true,
244 | "requires": {
245 | "mime-types": "~2.1.24",
246 | "negotiator": "0.6.2"
247 | }
248 | },
249 | "ansi-colors": {
250 | "version": "3.2.3",
251 | "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz",
252 | "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==",
253 | "dev": true
254 | },
255 | "ansi-regex": {
256 | "version": "2.1.1",
257 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
258 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
259 | "dev": true
260 | },
261 | "ansi-styles": {
262 | "version": "3.2.1",
263 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
264 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
265 | "dev": true,
266 | "requires": {
267 | "color-convert": "^1.9.0"
268 | }
269 | },
270 | "append-field": {
271 | "version": "1.0.0",
272 | "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz",
273 | "integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY=",
274 | "dev": true
275 | },
276 | "arg": {
277 | "version": "4.1.1",
278 | "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.1.tgz",
279 | "integrity": "sha512-SlmP3fEA88MBv0PypnXZ8ZfJhwmDeIE3SP71j37AiXQBXYosPV0x6uISAaHYSlSVhmHOVkomen0tbGk6Anlebw==",
280 | "dev": true
281 | },
282 | "argparse": {
283 | "version": "1.0.10",
284 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
285 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
286 | "dev": true,
287 | "requires": {
288 | "sprintf-js": "~1.0.2"
289 | }
290 | },
291 | "array-find-index": {
292 | "version": "1.0.2",
293 | "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
294 | "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
295 | "dev": true
296 | },
297 | "array-flatten": {
298 | "version": "1.1.1",
299 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
300 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
301 | "dev": true
302 | },
303 | "ascli": {
304 | "version": "1.0.1",
305 | "resolved": "https://registry.npmjs.org/ascli/-/ascli-1.0.1.tgz",
306 | "integrity": "sha1-vPpZdKYvGOgcq660lzKrSoj5Brw=",
307 | "dev": true,
308 | "requires": {
309 | "colour": "~0.7.1",
310 | "optjs": "~3.2.2"
311 | }
312 | },
313 | "assertion-error": {
314 | "version": "1.1.0",
315 | "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
316 | "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
317 | "dev": true
318 | },
319 | "axios": {
320 | "version": "0.19.2",
321 | "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz",
322 | "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==",
323 | "dev": true,
324 | "requires": {
325 | "follow-redirects": "1.5.10"
326 | }
327 | },
328 | "balanced-match": {
329 | "version": "1.0.0",
330 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
331 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
332 | "dev": true
333 | },
334 | "body-parser": {
335 | "version": "1.19.0",
336 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
337 | "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
338 | "dev": true,
339 | "requires": {
340 | "bytes": "3.1.0",
341 | "content-type": "~1.0.4",
342 | "debug": "2.6.9",
343 | "depd": "~1.1.2",
344 | "http-errors": "1.7.2",
345 | "iconv-lite": "0.4.24",
346 | "on-finished": "~2.3.0",
347 | "qs": "6.7.0",
348 | "raw-body": "2.4.0",
349 | "type-is": "~1.6.17"
350 | },
351 | "dependencies": {
352 | "debug": {
353 | "version": "2.6.9",
354 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
355 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
356 | "dev": true,
357 | "requires": {
358 | "ms": "2.0.0"
359 | }
360 | },
361 | "ms": {
362 | "version": "2.0.0",
363 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
364 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
365 | "dev": true
366 | }
367 | }
368 | },
369 | "brace-expansion": {
370 | "version": "1.1.11",
371 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
372 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
373 | "dev": true,
374 | "requires": {
375 | "balanced-match": "^1.0.0",
376 | "concat-map": "0.0.1"
377 | }
378 | },
379 | "browser-stdout": {
380 | "version": "1.3.1",
381 | "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
382 | "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
383 | "dev": true
384 | },
385 | "buffer-from": {
386 | "version": "1.1.1",
387 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
388 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
389 | "dev": true
390 | },
391 | "busboy": {
392 | "version": "0.2.14",
393 | "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz",
394 | "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=",
395 | "dev": true,
396 | "requires": {
397 | "dicer": "0.2.5",
398 | "readable-stream": "1.1.x"
399 | }
400 | },
401 | "bytebuffer": {
402 | "version": "5.0.1",
403 | "resolved": "https://registry.npmjs.org/bytebuffer/-/bytebuffer-5.0.1.tgz",
404 | "integrity": "sha1-WC7qSxqHO20CCkjVjfhfC7ps/d0=",
405 | "dev": true,
406 | "requires": {
407 | "long": "~3"
408 | },
409 | "dependencies": {
410 | "long": {
411 | "version": "3.2.0",
412 | "resolved": "https://registry.npmjs.org/long/-/long-3.2.0.tgz",
413 | "integrity": "sha1-2CG3E4yhy1gcFymQ7xTbIAtcR0s=",
414 | "dev": true
415 | }
416 | }
417 | },
418 | "bytes": {
419 | "version": "3.1.0",
420 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
421 | "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
422 | "dev": true
423 | },
424 | "cacheable-request": {
425 | "version": "6.1.0",
426 | "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
427 | "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
428 | "dev": true,
429 | "requires": {
430 | "clone-response": "^1.0.2",
431 | "get-stream": "^5.1.0",
432 | "http-cache-semantics": "^4.0.0",
433 | "keyv": "^3.0.0",
434 | "lowercase-keys": "^2.0.0",
435 | "normalize-url": "^4.1.0",
436 | "responselike": "^1.0.2"
437 | },
438 | "dependencies": {
439 | "get-stream": {
440 | "version": "5.1.0",
441 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz",
442 | "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==",
443 | "dev": true,
444 | "requires": {
445 | "pump": "^3.0.0"
446 | }
447 | },
448 | "lowercase-keys": {
449 | "version": "2.0.0",
450 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
451 | "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
452 | "dev": true
453 | }
454 | }
455 | },
456 | "camelcase": {
457 | "version": "2.1.1",
458 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
459 | "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
460 | "dev": true
461 | },
462 | "camelcase-keys": {
463 | "version": "2.1.0",
464 | "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
465 | "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
466 | "dev": true,
467 | "requires": {
468 | "camelcase": "^2.0.0",
469 | "map-obj": "^1.0.0"
470 | }
471 | },
472 | "chai": {
473 | "version": "4.2.0",
474 | "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz",
475 | "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==",
476 | "dev": true,
477 | "requires": {
478 | "assertion-error": "^1.1.0",
479 | "check-error": "^1.0.2",
480 | "deep-eql": "^3.0.1",
481 | "get-func-name": "^2.0.0",
482 | "pathval": "^1.1.0",
483 | "type-detect": "^4.0.5"
484 | }
485 | },
486 | "chalk": {
487 | "version": "2.4.2",
488 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
489 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
490 | "dev": true,
491 | "requires": {
492 | "ansi-styles": "^3.2.1",
493 | "escape-string-regexp": "^1.0.5",
494 | "supports-color": "^5.3.0"
495 | }
496 | },
497 | "charenc": {
498 | "version": "0.0.2",
499 | "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
500 | "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=",
501 | "dev": true
502 | },
503 | "check-error": {
504 | "version": "1.0.2",
505 | "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
506 | "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",
507 | "dev": true
508 | },
509 | "cli-color": {
510 | "version": "2.0.0",
511 | "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-2.0.0.tgz",
512 | "integrity": "sha512-a0VZ8LeraW0jTuCkuAGMNufareGHhyZU9z8OGsW0gXd1hZGi1SRuNRXdbGkraBBKnhyUhyebFWnRbp+dIn0f0A==",
513 | "dev": true,
514 | "requires": {
515 | "ansi-regex": "^2.1.1",
516 | "d": "^1.0.1",
517 | "es5-ext": "^0.10.51",
518 | "es6-iterator": "^2.0.3",
519 | "memoizee": "^0.4.14",
520 | "timers-ext": "^0.1.7"
521 | }
522 | },
523 | "cliui": {
524 | "version": "3.2.0",
525 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
526 | "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
527 | "dev": true,
528 | "requires": {
529 | "string-width": "^1.0.1",
530 | "strip-ansi": "^3.0.1",
531 | "wrap-ansi": "^2.0.0"
532 | }
533 | },
534 | "clone-response": {
535 | "version": "1.0.2",
536 | "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
537 | "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
538 | "dev": true,
539 | "requires": {
540 | "mimic-response": "^1.0.0"
541 | }
542 | },
543 | "code-point-at": {
544 | "version": "1.1.0",
545 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
546 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
547 | "dev": true
548 | },
549 | "color-convert": {
550 | "version": "1.9.3",
551 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
552 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
553 | "dev": true,
554 | "requires": {
555 | "color-name": "1.1.3"
556 | }
557 | },
558 | "color-name": {
559 | "version": "1.1.3",
560 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
561 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
562 | "dev": true
563 | },
564 | "colour": {
565 | "version": "0.7.1",
566 | "resolved": "https://registry.npmjs.org/colour/-/colour-0.7.1.tgz",
567 | "integrity": "sha1-nLFpkX7F0SwHNtPoaFdG3xyt93g=",
568 | "dev": true
569 | },
570 | "concat-map": {
571 | "version": "0.0.1",
572 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
573 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
574 | "dev": true
575 | },
576 | "concat-stream": {
577 | "version": "1.6.2",
578 | "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
579 | "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
580 | "dev": true,
581 | "requires": {
582 | "buffer-from": "^1.0.0",
583 | "inherits": "^2.0.3",
584 | "readable-stream": "^2.2.2",
585 | "typedarray": "^0.0.6"
586 | },
587 | "dependencies": {
588 | "isarray": {
589 | "version": "1.0.0",
590 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
591 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
592 | "dev": true
593 | },
594 | "readable-stream": {
595 | "version": "2.3.7",
596 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
597 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
598 | "dev": true,
599 | "requires": {
600 | "core-util-is": "~1.0.0",
601 | "inherits": "~2.0.3",
602 | "isarray": "~1.0.0",
603 | "process-nextick-args": "~2.0.0",
604 | "safe-buffer": "~5.1.1",
605 | "string_decoder": "~1.1.1",
606 | "util-deprecate": "~1.0.1"
607 | }
608 | },
609 | "string_decoder": {
610 | "version": "1.1.1",
611 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
612 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
613 | "dev": true,
614 | "requires": {
615 | "safe-buffer": "~5.1.0"
616 | }
617 | }
618 | }
619 | },
620 | "consola": {
621 | "version": "2.11.3",
622 | "resolved": "https://registry.npmjs.org/consola/-/consola-2.11.3.tgz",
623 | "integrity": "sha512-aoW0YIIAmeftGR8GSpw6CGQluNdkWMWh3yEFjH/hmynTYnMtibXszii3lxCXmk8YxJtI3FAK5aTiquA5VH68Gw==",
624 | "dev": true
625 | },
626 | "console-stamp": {
627 | "version": "0.2.9",
628 | "resolved": "https://registry.npmjs.org/console-stamp/-/console-stamp-0.2.9.tgz",
629 | "integrity": "sha512-jtgd1Fx3Im+pWN54mF269ptunkzF5Lpct2LBTbtyNoK2A4XjcxLM+TQW+e+XE/bLwLQNGRqPqlxm9JMixFntRA==",
630 | "dev": true,
631 | "requires": {
632 | "chalk": "^1.1.1",
633 | "dateformat": "^1.0.11",
634 | "merge": "^1.2.0"
635 | },
636 | "dependencies": {
637 | "ansi-styles": {
638 | "version": "2.2.1",
639 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
640 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
641 | "dev": true
642 | },
643 | "chalk": {
644 | "version": "1.1.3",
645 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
646 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
647 | "dev": true,
648 | "requires": {
649 | "ansi-styles": "^2.2.1",
650 | "escape-string-regexp": "^1.0.2",
651 | "has-ansi": "^2.0.0",
652 | "strip-ansi": "^3.0.0",
653 | "supports-color": "^2.0.0"
654 | }
655 | },
656 | "supports-color": {
657 | "version": "2.0.0",
658 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
659 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
660 | "dev": true
661 | }
662 | }
663 | },
664 | "content-disposition": {
665 | "version": "0.5.3",
666 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
667 | "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
668 | "dev": true,
669 | "requires": {
670 | "safe-buffer": "5.1.2"
671 | }
672 | },
673 | "content-type": {
674 | "version": "1.0.4",
675 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
676 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
677 | "dev": true
678 | },
679 | "cookie": {
680 | "version": "0.4.0",
681 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
682 | "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==",
683 | "dev": true
684 | },
685 | "cookie-signature": {
686 | "version": "1.0.6",
687 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
688 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
689 | "dev": true
690 | },
691 | "core-util-is": {
692 | "version": "1.0.2",
693 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
694 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
695 | "dev": true
696 | },
697 | "cors": {
698 | "version": "2.8.5",
699 | "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
700 | "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
701 | "dev": true,
702 | "requires": {
703 | "object-assign": "^4",
704 | "vary": "^1"
705 | }
706 | },
707 | "cross-spawn": {
708 | "version": "6.0.5",
709 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
710 | "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
711 | "dev": true,
712 | "requires": {
713 | "nice-try": "^1.0.4",
714 | "path-key": "^2.0.1",
715 | "semver": "^5.5.0",
716 | "shebang-command": "^1.2.0",
717 | "which": "^1.2.9"
718 | }
719 | },
720 | "crypt": {
721 | "version": "0.0.2",
722 | "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz",
723 | "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=",
724 | "dev": true
725 | },
726 | "currently-unhandled": {
727 | "version": "0.4.1",
728 | "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
729 | "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
730 | "dev": true,
731 | "requires": {
732 | "array-find-index": "^1.0.1"
733 | }
734 | },
735 | "d": {
736 | "version": "1.0.1",
737 | "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
738 | "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
739 | "dev": true,
740 | "requires": {
741 | "es5-ext": "^0.10.50",
742 | "type": "^1.0.1"
743 | }
744 | },
745 | "dateformat": {
746 | "version": "1.0.12",
747 | "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz",
748 | "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=",
749 | "dev": true,
750 | "requires": {
751 | "get-stdin": "^4.0.1",
752 | "meow": "^3.3.0"
753 | }
754 | },
755 | "dayjs": {
756 | "version": "1.8.19",
757 | "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.19.tgz",
758 | "integrity": "sha512-7kqOoj3oQSmqbvtvGFLU5iYqies+SqUiEGNT0UtUPPxcPYgY1BrkXR0Cq2R9HYSimBXN+xHkEN4Hi399W+Ovlg==",
759 | "dev": true
760 | },
761 | "debug": {
762 | "version": "4.1.1",
763 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
764 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
765 | "dev": true,
766 | "requires": {
767 | "ms": "^2.1.1"
768 | }
769 | },
770 | "decamelize": {
771 | "version": "1.2.0",
772 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
773 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
774 | "dev": true
775 | },
776 | "decompress-response": {
777 | "version": "3.3.0",
778 | "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
779 | "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
780 | "dev": true,
781 | "requires": {
782 | "mimic-response": "^1.0.0"
783 | }
784 | },
785 | "deep-eql": {
786 | "version": "3.0.1",
787 | "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
788 | "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
789 | "dev": true,
790 | "requires": {
791 | "type-detect": "^4.0.0"
792 | }
793 | },
794 | "defer-to-connect": {
795 | "version": "1.1.3",
796 | "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
797 | "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==",
798 | "dev": true
799 | },
800 | "define-properties": {
801 | "version": "1.1.3",
802 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
803 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
804 | "dev": true,
805 | "requires": {
806 | "object-keys": "^1.0.12"
807 | }
808 | },
809 | "depd": {
810 | "version": "1.1.2",
811 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
812 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
813 | "dev": true
814 | },
815 | "destroy": {
816 | "version": "1.0.4",
817 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
818 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
819 | "dev": true
820 | },
821 | "dicer": {
822 | "version": "0.2.5",
823 | "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz",
824 | "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=",
825 | "dev": true,
826 | "requires": {
827 | "readable-stream": "1.1.x",
828 | "streamsearch": "0.1.2"
829 | }
830 | },
831 | "diff": {
832 | "version": "3.5.0",
833 | "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
834 | "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
835 | "dev": true
836 | },
837 | "duplexer3": {
838 | "version": "0.1.4",
839 | "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
840 | "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
841 | "dev": true
842 | },
843 | "ee-first": {
844 | "version": "1.1.1",
845 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
846 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
847 | "dev": true
848 | },
849 | "emoji-regex": {
850 | "version": "7.0.3",
851 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
852 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
853 | "dev": true
854 | },
855 | "encodeurl": {
856 | "version": "1.0.2",
857 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
858 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
859 | "dev": true
860 | },
861 | "end-of-stream": {
862 | "version": "1.4.1",
863 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
864 | "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
865 | "dev": true,
866 | "requires": {
867 | "once": "^1.4.0"
868 | }
869 | },
870 | "err-code": {
871 | "version": "1.1.2",
872 | "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz",
873 | "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=",
874 | "dev": true
875 | },
876 | "error-ex": {
877 | "version": "1.3.2",
878 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
879 | "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
880 | "dev": true,
881 | "requires": {
882 | "is-arrayish": "^0.2.1"
883 | }
884 | },
885 | "es-abstract": {
886 | "version": "1.14.2",
887 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.14.2.tgz",
888 | "integrity": "sha512-DgoQmbpFNOofkjJtKwr87Ma5EW4Dc8fWhD0R+ndq7Oc456ivUfGOOP6oAZTTKl5/CcNMP+EN+e3/iUzgE0veZg==",
889 | "dev": true,
890 | "requires": {
891 | "es-to-primitive": "^1.2.0",
892 | "function-bind": "^1.1.1",
893 | "has": "^1.0.3",
894 | "has-symbols": "^1.0.0",
895 | "is-callable": "^1.1.4",
896 | "is-regex": "^1.0.4",
897 | "object-inspect": "^1.6.0",
898 | "object-keys": "^1.1.1",
899 | "string.prototype.trimleft": "^2.0.0",
900 | "string.prototype.trimright": "^2.0.0"
901 | }
902 | },
903 | "es-to-primitive": {
904 | "version": "1.2.0",
905 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz",
906 | "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
907 | "dev": true,
908 | "requires": {
909 | "is-callable": "^1.1.4",
910 | "is-date-object": "^1.0.1",
911 | "is-symbol": "^1.0.2"
912 | }
913 | },
914 | "es5-ext": {
915 | "version": "0.10.53",
916 | "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz",
917 | "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==",
918 | "dev": true,
919 | "requires": {
920 | "es6-iterator": "~2.0.3",
921 | "es6-symbol": "~3.1.3",
922 | "next-tick": "~1.0.0"
923 | }
924 | },
925 | "es6-iterator": {
926 | "version": "2.0.3",
927 | "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
928 | "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
929 | "dev": true,
930 | "requires": {
931 | "d": "1",
932 | "es5-ext": "^0.10.35",
933 | "es6-symbol": "^3.1.1"
934 | }
935 | },
936 | "es6-symbol": {
937 | "version": "3.1.3",
938 | "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz",
939 | "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==",
940 | "dev": true,
941 | "requires": {
942 | "d": "^1.0.1",
943 | "ext": "^1.1.2"
944 | }
945 | },
946 | "es6-weak-map": {
947 | "version": "2.0.3",
948 | "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz",
949 | "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==",
950 | "dev": true,
951 | "requires": {
952 | "d": "1",
953 | "es5-ext": "^0.10.46",
954 | "es6-iterator": "^2.0.3",
955 | "es6-symbol": "^3.1.1"
956 | }
957 | },
958 | "escape-html": {
959 | "version": "1.0.3",
960 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
961 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
962 | "dev": true
963 | },
964 | "escape-string-regexp": {
965 | "version": "1.0.5",
966 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
967 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
968 | "dev": true
969 | },
970 | "esprima": {
971 | "version": "4.0.1",
972 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
973 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
974 | "dev": true
975 | },
976 | "etag": {
977 | "version": "1.8.1",
978 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
979 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
980 | "dev": true
981 | },
982 | "event-emitter": {
983 | "version": "0.3.5",
984 | "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
985 | "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
986 | "dev": true,
987 | "requires": {
988 | "d": "1",
989 | "es5-ext": "~0.10.14"
990 | }
991 | },
992 | "execa": {
993 | "version": "1.0.0",
994 | "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
995 | "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
996 | "dev": true,
997 | "requires": {
998 | "cross-spawn": "^6.0.0",
999 | "get-stream": "^4.0.0",
1000 | "is-stream": "^1.1.0",
1001 | "npm-run-path": "^2.0.0",
1002 | "p-finally": "^1.0.0",
1003 | "signal-exit": "^3.0.0",
1004 | "strip-eof": "^1.0.0"
1005 | }
1006 | },
1007 | "express": {
1008 | "version": "4.17.1",
1009 | "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
1010 | "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
1011 | "dev": true,
1012 | "requires": {
1013 | "accepts": "~1.3.7",
1014 | "array-flatten": "1.1.1",
1015 | "body-parser": "1.19.0",
1016 | "content-disposition": "0.5.3",
1017 | "content-type": "~1.0.4",
1018 | "cookie": "0.4.0",
1019 | "cookie-signature": "1.0.6",
1020 | "debug": "2.6.9",
1021 | "depd": "~1.1.2",
1022 | "encodeurl": "~1.0.2",
1023 | "escape-html": "~1.0.3",
1024 | "etag": "~1.8.1",
1025 | "finalhandler": "~1.1.2",
1026 | "fresh": "0.5.2",
1027 | "merge-descriptors": "1.0.1",
1028 | "methods": "~1.1.2",
1029 | "on-finished": "~2.3.0",
1030 | "parseurl": "~1.3.3",
1031 | "path-to-regexp": "0.1.7",
1032 | "proxy-addr": "~2.0.5",
1033 | "qs": "6.7.0",
1034 | "range-parser": "~1.2.1",
1035 | "safe-buffer": "5.1.2",
1036 | "send": "0.17.1",
1037 | "serve-static": "1.14.1",
1038 | "setprototypeof": "1.1.1",
1039 | "statuses": "~1.5.0",
1040 | "type-is": "~1.6.18",
1041 | "utils-merge": "1.0.1",
1042 | "vary": "~1.1.2"
1043 | },
1044 | "dependencies": {
1045 | "debug": {
1046 | "version": "2.6.9",
1047 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
1048 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
1049 | "dev": true,
1050 | "requires": {
1051 | "ms": "2.0.0"
1052 | }
1053 | },
1054 | "ms": {
1055 | "version": "2.0.0",
1056 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1057 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
1058 | "dev": true
1059 | }
1060 | }
1061 | },
1062 | "ext": {
1063 | "version": "1.4.0",
1064 | "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz",
1065 | "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==",
1066 | "dev": true,
1067 | "requires": {
1068 | "type": "^2.0.0"
1069 | },
1070 | "dependencies": {
1071 | "type": {
1072 | "version": "2.0.0",
1073 | "resolved": "https://registry.npmjs.org/type/-/type-2.0.0.tgz",
1074 | "integrity": "sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==",
1075 | "dev": true
1076 | }
1077 | }
1078 | },
1079 | "fast-safe-stringify": {
1080 | "version": "2.0.7",
1081 | "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz",
1082 | "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==",
1083 | "dev": true
1084 | },
1085 | "fast-xml-parser": {
1086 | "version": "3.16.0",
1087 | "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.16.0.tgz",
1088 | "integrity": "sha512-U+bpScacfgnfNfIKlWHDu4u6rtOaCyxhblOLJ8sZPkhsjgGqdZmVPBhdOyvdMGCDt8CsAv+cssOP3NzQptNt2w==",
1089 | "dev": true
1090 | },
1091 | "finalhandler": {
1092 | "version": "1.1.2",
1093 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
1094 | "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
1095 | "dev": true,
1096 | "requires": {
1097 | "debug": "2.6.9",
1098 | "encodeurl": "~1.0.2",
1099 | "escape-html": "~1.0.3",
1100 | "on-finished": "~2.3.0",
1101 | "parseurl": "~1.3.3",
1102 | "statuses": "~1.5.0",
1103 | "unpipe": "~1.0.0"
1104 | },
1105 | "dependencies": {
1106 | "debug": {
1107 | "version": "2.6.9",
1108 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
1109 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
1110 | "dev": true,
1111 | "requires": {
1112 | "ms": "2.0.0"
1113 | }
1114 | },
1115 | "ms": {
1116 | "version": "2.0.0",
1117 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1118 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
1119 | "dev": true
1120 | }
1121 | }
1122 | },
1123 | "find-up": {
1124 | "version": "1.1.2",
1125 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
1126 | "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
1127 | "dev": true,
1128 | "requires": {
1129 | "path-exists": "^2.0.0",
1130 | "pinkie-promise": "^2.0.0"
1131 | }
1132 | },
1133 | "flat": {
1134 | "version": "4.1.0",
1135 | "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz",
1136 | "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==",
1137 | "dev": true,
1138 | "requires": {
1139 | "is-buffer": "~2.0.3"
1140 | }
1141 | },
1142 | "follow-redirects": {
1143 | "version": "1.5.10",
1144 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz",
1145 | "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==",
1146 | "dev": true,
1147 | "requires": {
1148 | "debug": "=3.1.0"
1149 | },
1150 | "dependencies": {
1151 | "debug": {
1152 | "version": "3.1.0",
1153 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
1154 | "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
1155 | "dev": true,
1156 | "requires": {
1157 | "ms": "2.0.0"
1158 | }
1159 | },
1160 | "ms": {
1161 | "version": "2.0.0",
1162 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1163 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
1164 | "dev": true
1165 | }
1166 | }
1167 | },
1168 | "forwarded": {
1169 | "version": "0.1.2",
1170 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
1171 | "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
1172 | "dev": true
1173 | },
1174 | "fresh": {
1175 | "version": "0.5.2",
1176 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
1177 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
1178 | "dev": true
1179 | },
1180 | "fs.realpath": {
1181 | "version": "1.0.0",
1182 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
1183 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
1184 | "dev": true
1185 | },
1186 | "function-bind": {
1187 | "version": "1.1.1",
1188 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
1189 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
1190 | "dev": true
1191 | },
1192 | "get-caller-file": {
1193 | "version": "2.0.5",
1194 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
1195 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
1196 | "dev": true
1197 | },
1198 | "get-func-name": {
1199 | "version": "2.0.0",
1200 | "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
1201 | "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=",
1202 | "dev": true
1203 | },
1204 | "get-stdin": {
1205 | "version": "4.0.1",
1206 | "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
1207 | "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
1208 | "dev": true
1209 | },
1210 | "get-stream": {
1211 | "version": "4.1.0",
1212 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
1213 | "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
1214 | "dev": true,
1215 | "requires": {
1216 | "pump": "^3.0.0"
1217 | }
1218 | },
1219 | "glob": {
1220 | "version": "7.1.3",
1221 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
1222 | "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
1223 | "dev": true,
1224 | "requires": {
1225 | "fs.realpath": "^1.0.0",
1226 | "inflight": "^1.0.4",
1227 | "inherits": "2",
1228 | "minimatch": "^3.0.4",
1229 | "once": "^1.3.0",
1230 | "path-is-absolute": "^1.0.0"
1231 | }
1232 | },
1233 | "got": {
1234 | "version": "9.6.0",
1235 | "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
1236 | "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
1237 | "dev": true,
1238 | "requires": {
1239 | "@sindresorhus/is": "^0.14.0",
1240 | "@szmarczak/http-timer": "^1.1.2",
1241 | "cacheable-request": "^6.0.0",
1242 | "decompress-response": "^3.3.0",
1243 | "duplexer3": "^0.1.4",
1244 | "get-stream": "^4.1.0",
1245 | "lowercase-keys": "^1.0.1",
1246 | "mimic-response": "^1.0.1",
1247 | "p-cancelable": "^1.0.0",
1248 | "to-readable-stream": "^1.0.0",
1249 | "url-parse-lax": "^3.0.0"
1250 | }
1251 | },
1252 | "graceful-fs": {
1253 | "version": "4.2.2",
1254 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
1255 | "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
1256 | "dev": true
1257 | },
1258 | "growl": {
1259 | "version": "1.10.5",
1260 | "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
1261 | "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
1262 | "dev": true
1263 | },
1264 | "grpc": {
1265 | "version": "1.24.2",
1266 | "resolved": "https://registry.npmjs.org/grpc/-/grpc-1.24.2.tgz",
1267 | "integrity": "sha512-EG3WH6AWMVvAiV15d+lr+K77HJ/KV/3FvMpjKjulXHbTwgDZkhkcWbwhxFAoTdxTkQvy0WFcO3Nog50QBbHZWw==",
1268 | "dev": true,
1269 | "requires": {
1270 | "@types/bytebuffer": "^5.0.40",
1271 | "lodash.camelcase": "^4.3.0",
1272 | "lodash.clone": "^4.5.0",
1273 | "nan": "^2.13.2",
1274 | "node-pre-gyp": "^0.14.0",
1275 | "protobufjs": "^5.0.3"
1276 | },
1277 | "dependencies": {
1278 | "abbrev": {
1279 | "version": "1.1.1",
1280 | "bundled": true,
1281 | "dev": true
1282 | },
1283 | "ansi-regex": {
1284 | "version": "2.1.1",
1285 | "bundled": true,
1286 | "dev": true
1287 | },
1288 | "aproba": {
1289 | "version": "1.2.0",
1290 | "bundled": true,
1291 | "dev": true
1292 | },
1293 | "are-we-there-yet": {
1294 | "version": "1.1.5",
1295 | "bundled": true,
1296 | "dev": true,
1297 | "requires": {
1298 | "delegates": "^1.0.0",
1299 | "readable-stream": "^2.0.6"
1300 | }
1301 | },
1302 | "balanced-match": {
1303 | "version": "1.0.0",
1304 | "bundled": true,
1305 | "dev": true
1306 | },
1307 | "brace-expansion": {
1308 | "version": "1.1.11",
1309 | "bundled": true,
1310 | "dev": true,
1311 | "requires": {
1312 | "balanced-match": "^1.0.0",
1313 | "concat-map": "0.0.1"
1314 | }
1315 | },
1316 | "chownr": {
1317 | "version": "1.1.3",
1318 | "bundled": true,
1319 | "dev": true
1320 | },
1321 | "code-point-at": {
1322 | "version": "1.1.0",
1323 | "bundled": true,
1324 | "dev": true
1325 | },
1326 | "concat-map": {
1327 | "version": "0.0.1",
1328 | "bundled": true,
1329 | "dev": true
1330 | },
1331 | "console-control-strings": {
1332 | "version": "1.1.0",
1333 | "bundled": true,
1334 | "dev": true
1335 | },
1336 | "core-util-is": {
1337 | "version": "1.0.2",
1338 | "bundled": true,
1339 | "dev": true
1340 | },
1341 | "debug": {
1342 | "version": "3.2.6",
1343 | "bundled": true,
1344 | "dev": true,
1345 | "requires": {
1346 | "ms": "^2.1.1"
1347 | }
1348 | },
1349 | "deep-extend": {
1350 | "version": "0.6.0",
1351 | "bundled": true,
1352 | "dev": true
1353 | },
1354 | "delegates": {
1355 | "version": "1.0.0",
1356 | "bundled": true,
1357 | "dev": true
1358 | },
1359 | "detect-libc": {
1360 | "version": "1.0.3",
1361 | "bundled": true,
1362 | "dev": true
1363 | },
1364 | "fs-minipass": {
1365 | "version": "1.2.7",
1366 | "bundled": true,
1367 | "dev": true,
1368 | "requires": {
1369 | "minipass": "^2.6.0"
1370 | }
1371 | },
1372 | "fs.realpath": {
1373 | "version": "1.0.0",
1374 | "bundled": true,
1375 | "dev": true
1376 | },
1377 | "gauge": {
1378 | "version": "2.7.4",
1379 | "bundled": true,
1380 | "dev": true,
1381 | "requires": {
1382 | "aproba": "^1.0.3",
1383 | "console-control-strings": "^1.0.0",
1384 | "has-unicode": "^2.0.0",
1385 | "object-assign": "^4.1.0",
1386 | "signal-exit": "^3.0.0",
1387 | "string-width": "^1.0.1",
1388 | "strip-ansi": "^3.0.1",
1389 | "wide-align": "^1.1.0"
1390 | }
1391 | },
1392 | "glob": {
1393 | "version": "7.1.4",
1394 | "bundled": true,
1395 | "dev": true,
1396 | "requires": {
1397 | "fs.realpath": "^1.0.0",
1398 | "inflight": "^1.0.4",
1399 | "inherits": "2",
1400 | "minimatch": "^3.0.4",
1401 | "once": "^1.3.0",
1402 | "path-is-absolute": "^1.0.0"
1403 | }
1404 | },
1405 | "has-unicode": {
1406 | "version": "2.0.1",
1407 | "bundled": true,
1408 | "dev": true
1409 | },
1410 | "iconv-lite": {
1411 | "version": "0.4.24",
1412 | "bundled": true,
1413 | "dev": true,
1414 | "requires": {
1415 | "safer-buffer": ">= 2.1.2 < 3"
1416 | }
1417 | },
1418 | "ignore-walk": {
1419 | "version": "3.0.3",
1420 | "bundled": true,
1421 | "dev": true,
1422 | "requires": {
1423 | "minimatch": "^3.0.4"
1424 | }
1425 | },
1426 | "inflight": {
1427 | "version": "1.0.6",
1428 | "bundled": true,
1429 | "dev": true,
1430 | "requires": {
1431 | "once": "^1.3.0",
1432 | "wrappy": "1"
1433 | }
1434 | },
1435 | "inherits": {
1436 | "version": "2.0.4",
1437 | "bundled": true,
1438 | "dev": true
1439 | },
1440 | "ini": {
1441 | "version": "1.3.5",
1442 | "bundled": true,
1443 | "dev": true
1444 | },
1445 | "is-fullwidth-code-point": {
1446 | "version": "1.0.0",
1447 | "bundled": true,
1448 | "dev": true,
1449 | "requires": {
1450 | "number-is-nan": "^1.0.0"
1451 | }
1452 | },
1453 | "isarray": {
1454 | "version": "1.0.0",
1455 | "bundled": true,
1456 | "dev": true
1457 | },
1458 | "minimatch": {
1459 | "version": "3.0.4",
1460 | "bundled": true,
1461 | "dev": true,
1462 | "requires": {
1463 | "brace-expansion": "^1.1.7"
1464 | }
1465 | },
1466 | "minimist": {
1467 | "version": "1.2.0",
1468 | "bundled": true,
1469 | "dev": true
1470 | },
1471 | "minipass": {
1472 | "version": "2.9.0",
1473 | "bundled": true,
1474 | "dev": true,
1475 | "requires": {
1476 | "safe-buffer": "^5.1.2",
1477 | "yallist": "^3.0.0"
1478 | }
1479 | },
1480 | "minizlib": {
1481 | "version": "1.3.3",
1482 | "bundled": true,
1483 | "dev": true,
1484 | "requires": {
1485 | "minipass": "^2.9.0"
1486 | }
1487 | },
1488 | "mkdirp": {
1489 | "version": "0.5.1",
1490 | "bundled": true,
1491 | "dev": true,
1492 | "requires": {
1493 | "minimist": "0.0.8"
1494 | },
1495 | "dependencies": {
1496 | "minimist": {
1497 | "version": "0.0.8",
1498 | "bundled": true,
1499 | "dev": true
1500 | }
1501 | }
1502 | },
1503 | "ms": {
1504 | "version": "2.1.2",
1505 | "bundled": true,
1506 | "dev": true
1507 | },
1508 | "needle": {
1509 | "version": "2.4.0",
1510 | "bundled": true,
1511 | "dev": true,
1512 | "requires": {
1513 | "debug": "^3.2.6",
1514 | "iconv-lite": "^0.4.4",
1515 | "sax": "^1.2.4"
1516 | }
1517 | },
1518 | "node-pre-gyp": {
1519 | "version": "0.14.0",
1520 | "bundled": true,
1521 | "dev": true,
1522 | "requires": {
1523 | "detect-libc": "^1.0.2",
1524 | "mkdirp": "^0.5.1",
1525 | "needle": "^2.2.1",
1526 | "nopt": "^4.0.1",
1527 | "npm-packlist": "^1.1.6",
1528 | "npmlog": "^4.0.2",
1529 | "rc": "^1.2.7",
1530 | "rimraf": "^2.6.1",
1531 | "semver": "^5.3.0",
1532 | "tar": "^4.4.2"
1533 | }
1534 | },
1535 | "nopt": {
1536 | "version": "4.0.1",
1537 | "bundled": true,
1538 | "dev": true,
1539 | "requires": {
1540 | "abbrev": "1",
1541 | "osenv": "^0.1.4"
1542 | }
1543 | },
1544 | "npm-bundled": {
1545 | "version": "1.0.6",
1546 | "bundled": true,
1547 | "dev": true
1548 | },
1549 | "npm-packlist": {
1550 | "version": "1.4.6",
1551 | "bundled": true,
1552 | "dev": true,
1553 | "requires": {
1554 | "ignore-walk": "^3.0.1",
1555 | "npm-bundled": "^1.0.1"
1556 | }
1557 | },
1558 | "npmlog": {
1559 | "version": "4.1.2",
1560 | "bundled": true,
1561 | "dev": true,
1562 | "requires": {
1563 | "are-we-there-yet": "~1.1.2",
1564 | "console-control-strings": "~1.1.0",
1565 | "gauge": "~2.7.3",
1566 | "set-blocking": "~2.0.0"
1567 | }
1568 | },
1569 | "number-is-nan": {
1570 | "version": "1.0.1",
1571 | "bundled": true,
1572 | "dev": true
1573 | },
1574 | "object-assign": {
1575 | "version": "4.1.1",
1576 | "bundled": true,
1577 | "dev": true
1578 | },
1579 | "once": {
1580 | "version": "1.4.0",
1581 | "bundled": true,
1582 | "dev": true,
1583 | "requires": {
1584 | "wrappy": "1"
1585 | }
1586 | },
1587 | "os-homedir": {
1588 | "version": "1.0.2",
1589 | "bundled": true,
1590 | "dev": true
1591 | },
1592 | "os-tmpdir": {
1593 | "version": "1.0.2",
1594 | "bundled": true,
1595 | "dev": true
1596 | },
1597 | "osenv": {
1598 | "version": "0.1.5",
1599 | "bundled": true,
1600 | "dev": true,
1601 | "requires": {
1602 | "os-homedir": "^1.0.0",
1603 | "os-tmpdir": "^1.0.0"
1604 | }
1605 | },
1606 | "path-is-absolute": {
1607 | "version": "1.0.1",
1608 | "bundled": true,
1609 | "dev": true
1610 | },
1611 | "process-nextick-args": {
1612 | "version": "2.0.1",
1613 | "bundled": true,
1614 | "dev": true
1615 | },
1616 | "protobufjs": {
1617 | "version": "5.0.3",
1618 | "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-5.0.3.tgz",
1619 | "integrity": "sha512-55Kcx1MhPZX0zTbVosMQEO5R6/rikNXd9b6RQK4KSPcrSIIwoXTtebIczUrXlwaSrbz4x8XUVThGPob1n8I4QA==",
1620 | "dev": true,
1621 | "requires": {
1622 | "ascli": "~1",
1623 | "bytebuffer": "~5",
1624 | "glob": "^7.0.5",
1625 | "yargs": "^3.10.0"
1626 | }
1627 | },
1628 | "rc": {
1629 | "version": "1.2.8",
1630 | "bundled": true,
1631 | "dev": true,
1632 | "requires": {
1633 | "deep-extend": "^0.6.0",
1634 | "ini": "~1.3.0",
1635 | "minimist": "^1.2.0",
1636 | "strip-json-comments": "~2.0.1"
1637 | }
1638 | },
1639 | "readable-stream": {
1640 | "version": "2.3.6",
1641 | "bundled": true,
1642 | "dev": true,
1643 | "requires": {
1644 | "core-util-is": "~1.0.0",
1645 | "inherits": "~2.0.3",
1646 | "isarray": "~1.0.0",
1647 | "process-nextick-args": "~2.0.0",
1648 | "safe-buffer": "~5.1.1",
1649 | "string_decoder": "~1.1.1",
1650 | "util-deprecate": "~1.0.1"
1651 | }
1652 | },
1653 | "rimraf": {
1654 | "version": "2.7.1",
1655 | "bundled": true,
1656 | "dev": true,
1657 | "requires": {
1658 | "glob": "^7.1.3"
1659 | }
1660 | },
1661 | "safe-buffer": {
1662 | "version": "5.1.2",
1663 | "bundled": true,
1664 | "dev": true
1665 | },
1666 | "safer-buffer": {
1667 | "version": "2.1.2",
1668 | "bundled": true,
1669 | "dev": true
1670 | },
1671 | "sax": {
1672 | "version": "1.2.4",
1673 | "bundled": true,
1674 | "dev": true
1675 | },
1676 | "semver": {
1677 | "version": "5.7.1",
1678 | "bundled": true,
1679 | "dev": true
1680 | },
1681 | "set-blocking": {
1682 | "version": "2.0.0",
1683 | "bundled": true,
1684 | "dev": true
1685 | },
1686 | "signal-exit": {
1687 | "version": "3.0.2",
1688 | "bundled": true,
1689 | "dev": true
1690 | },
1691 | "string-width": {
1692 | "version": "1.0.2",
1693 | "bundled": true,
1694 | "dev": true,
1695 | "requires": {
1696 | "code-point-at": "^1.0.0",
1697 | "is-fullwidth-code-point": "^1.0.0",
1698 | "strip-ansi": "^3.0.0"
1699 | }
1700 | },
1701 | "string_decoder": {
1702 | "version": "1.1.1",
1703 | "bundled": true,
1704 | "dev": true,
1705 | "requires": {
1706 | "safe-buffer": "~5.1.0"
1707 | }
1708 | },
1709 | "strip-ansi": {
1710 | "version": "3.0.1",
1711 | "bundled": true,
1712 | "dev": true,
1713 | "requires": {
1714 | "ansi-regex": "^2.0.0"
1715 | }
1716 | },
1717 | "strip-json-comments": {
1718 | "version": "2.0.1",
1719 | "bundled": true,
1720 | "dev": true
1721 | },
1722 | "tar": {
1723 | "version": "4.4.13",
1724 | "bundled": true,
1725 | "dev": true,
1726 | "requires": {
1727 | "chownr": "^1.1.1",
1728 | "fs-minipass": "^1.2.5",
1729 | "minipass": "^2.8.6",
1730 | "minizlib": "^1.2.1",
1731 | "mkdirp": "^0.5.0",
1732 | "safe-buffer": "^5.1.2",
1733 | "yallist": "^3.0.3"
1734 | }
1735 | },
1736 | "util-deprecate": {
1737 | "version": "1.0.2",
1738 | "bundled": true,
1739 | "dev": true
1740 | },
1741 | "wide-align": {
1742 | "version": "1.1.3",
1743 | "bundled": true,
1744 | "dev": true,
1745 | "requires": {
1746 | "string-width": "^1.0.2 || 2"
1747 | }
1748 | },
1749 | "wrappy": {
1750 | "version": "1.0.2",
1751 | "bundled": true,
1752 | "dev": true
1753 | },
1754 | "yallist": {
1755 | "version": "3.1.1",
1756 | "bundled": true,
1757 | "dev": true
1758 | }
1759 | }
1760 | },
1761 | "has": {
1762 | "version": "1.0.3",
1763 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
1764 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
1765 | "dev": true,
1766 | "requires": {
1767 | "function-bind": "^1.1.1"
1768 | }
1769 | },
1770 | "has-ansi": {
1771 | "version": "2.0.0",
1772 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
1773 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
1774 | "dev": true,
1775 | "requires": {
1776 | "ansi-regex": "^2.0.0"
1777 | }
1778 | },
1779 | "has-flag": {
1780 | "version": "3.0.0",
1781 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
1782 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
1783 | "dev": true
1784 | },
1785 | "has-symbols": {
1786 | "version": "1.0.0",
1787 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
1788 | "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
1789 | "dev": true
1790 | },
1791 | "he": {
1792 | "version": "1.2.0",
1793 | "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
1794 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
1795 | "dev": true
1796 | },
1797 | "hosted-git-info": {
1798 | "version": "2.8.4",
1799 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.4.tgz",
1800 | "integrity": "sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ==",
1801 | "dev": true
1802 | },
1803 | "http-cache-semantics": {
1804 | "version": "4.0.3",
1805 | "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz",
1806 | "integrity": "sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew==",
1807 | "dev": true
1808 | },
1809 | "http-errors": {
1810 | "version": "1.7.2",
1811 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
1812 | "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
1813 | "dev": true,
1814 | "requires": {
1815 | "depd": "~1.1.2",
1816 | "inherits": "2.0.3",
1817 | "setprototypeof": "1.1.1",
1818 | "statuses": ">= 1.5.0 < 2",
1819 | "toidentifier": "1.0.0"
1820 | },
1821 | "dependencies": {
1822 | "inherits": {
1823 | "version": "2.0.3",
1824 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
1825 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
1826 | "dev": true
1827 | }
1828 | }
1829 | },
1830 | "iconv-lite": {
1831 | "version": "0.4.24",
1832 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
1833 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
1834 | "dev": true,
1835 | "requires": {
1836 | "safer-buffer": ">= 2.1.2 < 3"
1837 | }
1838 | },
1839 | "indent-string": {
1840 | "version": "2.1.0",
1841 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
1842 | "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
1843 | "dev": true,
1844 | "requires": {
1845 | "repeating": "^2.0.0"
1846 | }
1847 | },
1848 | "inflight": {
1849 | "version": "1.0.6",
1850 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1851 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
1852 | "dev": true,
1853 | "requires": {
1854 | "once": "^1.3.0",
1855 | "wrappy": "1"
1856 | }
1857 | },
1858 | "inherits": {
1859 | "version": "2.0.4",
1860 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1861 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
1862 | "dev": true
1863 | },
1864 | "invert-kv": {
1865 | "version": "1.0.0",
1866 | "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
1867 | "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
1868 | "dev": true
1869 | },
1870 | "ipaddr.js": {
1871 | "version": "1.9.0",
1872 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
1873 | "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==",
1874 | "dev": true
1875 | },
1876 | "is-arrayish": {
1877 | "version": "0.2.1",
1878 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
1879 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
1880 | "dev": true
1881 | },
1882 | "is-buffer": {
1883 | "version": "2.0.3",
1884 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz",
1885 | "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==",
1886 | "dev": true
1887 | },
1888 | "is-callable": {
1889 | "version": "1.1.4",
1890 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
1891 | "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==",
1892 | "dev": true
1893 | },
1894 | "is-date-object": {
1895 | "version": "1.0.1",
1896 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
1897 | "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
1898 | "dev": true
1899 | },
1900 | "is-finite": {
1901 | "version": "1.0.2",
1902 | "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
1903 | "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
1904 | "dev": true,
1905 | "requires": {
1906 | "number-is-nan": "^1.0.0"
1907 | }
1908 | },
1909 | "is-fullwidth-code-point": {
1910 | "version": "1.0.0",
1911 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
1912 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
1913 | "dev": true,
1914 | "requires": {
1915 | "number-is-nan": "^1.0.0"
1916 | }
1917 | },
1918 | "is-promise": {
1919 | "version": "2.1.0",
1920 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
1921 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
1922 | "dev": true
1923 | },
1924 | "is-regex": {
1925 | "version": "1.0.4",
1926 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
1927 | "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
1928 | "dev": true,
1929 | "requires": {
1930 | "has": "^1.0.1"
1931 | }
1932 | },
1933 | "is-stream": {
1934 | "version": "1.1.0",
1935 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
1936 | "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
1937 | "dev": true
1938 | },
1939 | "is-symbol": {
1940 | "version": "1.0.2",
1941 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
1942 | "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
1943 | "dev": true,
1944 | "requires": {
1945 | "has-symbols": "^1.0.0"
1946 | }
1947 | },
1948 | "is-utf8": {
1949 | "version": "0.2.1",
1950 | "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
1951 | "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
1952 | "dev": true
1953 | },
1954 | "isarray": {
1955 | "version": "0.0.1",
1956 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
1957 | "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
1958 | "dev": true
1959 | },
1960 | "isexe": {
1961 | "version": "2.0.0",
1962 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1963 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
1964 | "dev": true
1965 | },
1966 | "iterare": {
1967 | "version": "1.2.0",
1968 | "resolved": "https://registry.npmjs.org/iterare/-/iterare-1.2.0.tgz",
1969 | "integrity": "sha512-RxMV9p/UzdK0Iplnd8mVgRvNdXlsTOiuDrqMRnDi3wIhbT+JP4xDquAX9ay13R3CH72NBzQ91KWe0+C168QAyQ==",
1970 | "dev": true
1971 | },
1972 | "js-yaml": {
1973 | "version": "3.13.1",
1974 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
1975 | "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
1976 | "dev": true,
1977 | "requires": {
1978 | "argparse": "^1.0.7",
1979 | "esprima": "^4.0.0"
1980 | }
1981 | },
1982 | "json-buffer": {
1983 | "version": "3.0.0",
1984 | "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
1985 | "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=",
1986 | "dev": true
1987 | },
1988 | "json-socket": {
1989 | "version": "0.3.0",
1990 | "resolved": "https://registry.npmjs.org/json-socket/-/json-socket-0.3.0.tgz",
1991 | "integrity": "sha512-jc8ZbUnYIWdxERFWQKVgwSLkGSe+kyzvmYxwNaRgx/c8NNyuHes4UHnPM3LUrAFXUx1BhNJ94n1h/KCRlbvV0g==",
1992 | "dev": true
1993 | },
1994 | "keyv": {
1995 | "version": "3.1.0",
1996 | "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
1997 | "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
1998 | "dev": true,
1999 | "requires": {
2000 | "json-buffer": "3.0.0"
2001 | }
2002 | },
2003 | "lcid": {
2004 | "version": "1.0.0",
2005 | "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
2006 | "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
2007 | "dev": true,
2008 | "requires": {
2009 | "invert-kv": "^1.0.0"
2010 | }
2011 | },
2012 | "load-json-file": {
2013 | "version": "1.1.0",
2014 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
2015 | "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
2016 | "dev": true,
2017 | "requires": {
2018 | "graceful-fs": "^4.1.2",
2019 | "parse-json": "^2.2.0",
2020 | "pify": "^2.0.0",
2021 | "pinkie-promise": "^2.0.0",
2022 | "strip-bom": "^2.0.0"
2023 | }
2024 | },
2025 | "locate-path": {
2026 | "version": "3.0.0",
2027 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
2028 | "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
2029 | "dev": true,
2030 | "requires": {
2031 | "p-locate": "^3.0.0",
2032 | "path-exists": "^3.0.0"
2033 | },
2034 | "dependencies": {
2035 | "path-exists": {
2036 | "version": "3.0.0",
2037 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
2038 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
2039 | "dev": true
2040 | }
2041 | }
2042 | },
2043 | "lodash": {
2044 | "version": "4.17.15",
2045 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
2046 | "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
2047 | "dev": true
2048 | },
2049 | "lodash.camelcase": {
2050 | "version": "4.3.0",
2051 | "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
2052 | "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=",
2053 | "dev": true
2054 | },
2055 | "lodash.clone": {
2056 | "version": "4.5.0",
2057 | "resolved": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz",
2058 | "integrity": "sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y=",
2059 | "dev": true
2060 | },
2061 | "log-symbols": {
2062 | "version": "2.2.0",
2063 | "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
2064 | "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
2065 | "dev": true,
2066 | "requires": {
2067 | "chalk": "^2.0.1"
2068 | }
2069 | },
2070 | "long": {
2071 | "version": "4.0.0",
2072 | "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
2073 | "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==",
2074 | "dev": true
2075 | },
2076 | "loud-rejection": {
2077 | "version": "1.6.0",
2078 | "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
2079 | "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
2080 | "dev": true,
2081 | "requires": {
2082 | "currently-unhandled": "^0.4.1",
2083 | "signal-exit": "^3.0.0"
2084 | }
2085 | },
2086 | "lowercase-keys": {
2087 | "version": "1.0.1",
2088 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
2089 | "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
2090 | "dev": true
2091 | },
2092 | "lru-queue": {
2093 | "version": "0.1.0",
2094 | "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz",
2095 | "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=",
2096 | "dev": true,
2097 | "requires": {
2098 | "es5-ext": "~0.10.2"
2099 | }
2100 | },
2101 | "make-error": {
2102 | "version": "1.3.5",
2103 | "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz",
2104 | "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==",
2105 | "dev": true
2106 | },
2107 | "map-age-cleaner": {
2108 | "version": "0.1.3",
2109 | "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
2110 | "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
2111 | "dev": true,
2112 | "requires": {
2113 | "p-defer": "^1.0.0"
2114 | }
2115 | },
2116 | "map-obj": {
2117 | "version": "1.0.1",
2118 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
2119 | "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
2120 | "dev": true
2121 | },
2122 | "md5": {
2123 | "version": "2.2.1",
2124 | "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz",
2125 | "integrity": "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=",
2126 | "dev": true,
2127 | "requires": {
2128 | "charenc": "~0.0.1",
2129 | "crypt": "~0.0.1",
2130 | "is-buffer": "~1.1.1"
2131 | },
2132 | "dependencies": {
2133 | "is-buffer": {
2134 | "version": "1.1.6",
2135 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
2136 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
2137 | "dev": true
2138 | }
2139 | }
2140 | },
2141 | "media-typer": {
2142 | "version": "0.3.0",
2143 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
2144 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
2145 | "dev": true
2146 | },
2147 | "mem": {
2148 | "version": "4.3.0",
2149 | "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
2150 | "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==",
2151 | "dev": true,
2152 | "requires": {
2153 | "map-age-cleaner": "^0.1.1",
2154 | "mimic-fn": "^2.0.0",
2155 | "p-is-promise": "^2.0.0"
2156 | }
2157 | },
2158 | "memoizee": {
2159 | "version": "0.4.14",
2160 | "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.14.tgz",
2161 | "integrity": "sha512-/SWFvWegAIYAO4NQMpcX+gcra0yEZu4OntmUdrBaWrJncxOqAziGFlHxc7yjKVK2uu3lpPW27P27wkR82wA8mg==",
2162 | "dev": true,
2163 | "requires": {
2164 | "d": "1",
2165 | "es5-ext": "^0.10.45",
2166 | "es6-weak-map": "^2.0.2",
2167 | "event-emitter": "^0.3.5",
2168 | "is-promise": "^2.1",
2169 | "lru-queue": "0.1",
2170 | "next-tick": "1",
2171 | "timers-ext": "^0.1.5"
2172 | }
2173 | },
2174 | "meow": {
2175 | "version": "3.7.0",
2176 | "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
2177 | "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
2178 | "dev": true,
2179 | "requires": {
2180 | "camelcase-keys": "^2.0.0",
2181 | "decamelize": "^1.1.2",
2182 | "loud-rejection": "^1.0.0",
2183 | "map-obj": "^1.0.1",
2184 | "minimist": "^1.1.3",
2185 | "normalize-package-data": "^2.3.4",
2186 | "object-assign": "^4.0.1",
2187 | "read-pkg-up": "^1.0.1",
2188 | "redent": "^1.0.0",
2189 | "trim-newlines": "^1.0.0"
2190 | }
2191 | },
2192 | "merge": {
2193 | "version": "1.2.1",
2194 | "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz",
2195 | "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==",
2196 | "dev": true
2197 | },
2198 | "merge-descriptors": {
2199 | "version": "1.0.1",
2200 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
2201 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=",
2202 | "dev": true
2203 | },
2204 | "methods": {
2205 | "version": "1.1.2",
2206 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
2207 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
2208 | "dev": true
2209 | },
2210 | "mime": {
2211 | "version": "1.6.0",
2212 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
2213 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
2214 | "dev": true
2215 | },
2216 | "mime-db": {
2217 | "version": "1.43.0",
2218 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz",
2219 | "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==",
2220 | "dev": true
2221 | },
2222 | "mime-types": {
2223 | "version": "2.1.26",
2224 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz",
2225 | "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==",
2226 | "dev": true,
2227 | "requires": {
2228 | "mime-db": "1.43.0"
2229 | }
2230 | },
2231 | "mimic-fn": {
2232 | "version": "2.1.0",
2233 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
2234 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
2235 | "dev": true
2236 | },
2237 | "mimic-response": {
2238 | "version": "1.0.1",
2239 | "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
2240 | "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
2241 | "dev": true
2242 | },
2243 | "minimatch": {
2244 | "version": "3.0.4",
2245 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
2246 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
2247 | "dev": true,
2248 | "requires": {
2249 | "brace-expansion": "^1.1.7"
2250 | }
2251 | },
2252 | "minimist": {
2253 | "version": "1.2.0",
2254 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
2255 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
2256 | "dev": true
2257 | },
2258 | "mkdirp": {
2259 | "version": "0.5.1",
2260 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
2261 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
2262 | "dev": true,
2263 | "requires": {
2264 | "minimist": "0.0.8"
2265 | },
2266 | "dependencies": {
2267 | "minimist": {
2268 | "version": "0.0.8",
2269 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
2270 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
2271 | "dev": true
2272 | }
2273 | }
2274 | },
2275 | "mocha": {
2276 | "version": "6.2.0",
2277 | "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.0.tgz",
2278 | "integrity": "sha512-qwfFgY+7EKAAUAdv7VYMZQknI7YJSGesxHyhn6qD52DV8UcSZs5XwCifcZGMVIE4a5fbmhvbotxC0DLQ0oKohQ==",
2279 | "dev": true,
2280 | "requires": {
2281 | "ansi-colors": "3.2.3",
2282 | "browser-stdout": "1.3.1",
2283 | "debug": "3.2.6",
2284 | "diff": "3.5.0",
2285 | "escape-string-regexp": "1.0.5",
2286 | "find-up": "3.0.0",
2287 | "glob": "7.1.3",
2288 | "growl": "1.10.5",
2289 | "he": "1.2.0",
2290 | "js-yaml": "3.13.1",
2291 | "log-symbols": "2.2.0",
2292 | "minimatch": "3.0.4",
2293 | "mkdirp": "0.5.1",
2294 | "ms": "2.1.1",
2295 | "node-environment-flags": "1.0.5",
2296 | "object.assign": "4.1.0",
2297 | "strip-json-comments": "2.0.1",
2298 | "supports-color": "6.0.0",
2299 | "which": "1.3.1",
2300 | "wide-align": "1.1.3",
2301 | "yargs": "13.2.2",
2302 | "yargs-parser": "13.0.0",
2303 | "yargs-unparser": "1.5.0"
2304 | },
2305 | "dependencies": {
2306 | "ansi-regex": {
2307 | "version": "3.0.0",
2308 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
2309 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
2310 | "dev": true
2311 | },
2312 | "cliui": {
2313 | "version": "4.1.0",
2314 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
2315 | "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
2316 | "dev": true,
2317 | "requires": {
2318 | "string-width": "^2.1.1",
2319 | "strip-ansi": "^4.0.0",
2320 | "wrap-ansi": "^2.0.0"
2321 | },
2322 | "dependencies": {
2323 | "string-width": {
2324 | "version": "2.1.1",
2325 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
2326 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
2327 | "dev": true,
2328 | "requires": {
2329 | "is-fullwidth-code-point": "^2.0.0",
2330 | "strip-ansi": "^4.0.0"
2331 | }
2332 | }
2333 | }
2334 | },
2335 | "debug": {
2336 | "version": "3.2.6",
2337 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
2338 | "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
2339 | "dev": true,
2340 | "requires": {
2341 | "ms": "^2.1.1"
2342 | }
2343 | },
2344 | "find-up": {
2345 | "version": "3.0.0",
2346 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
2347 | "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
2348 | "dev": true,
2349 | "requires": {
2350 | "locate-path": "^3.0.0"
2351 | }
2352 | },
2353 | "invert-kv": {
2354 | "version": "2.0.0",
2355 | "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
2356 | "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
2357 | "dev": true
2358 | },
2359 | "is-fullwidth-code-point": {
2360 | "version": "2.0.0",
2361 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
2362 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
2363 | "dev": true
2364 | },
2365 | "lcid": {
2366 | "version": "2.0.0",
2367 | "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
2368 | "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
2369 | "dev": true,
2370 | "requires": {
2371 | "invert-kv": "^2.0.0"
2372 | }
2373 | },
2374 | "ms": {
2375 | "version": "2.1.1",
2376 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
2377 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
2378 | "dev": true
2379 | },
2380 | "os-locale": {
2381 | "version": "3.1.0",
2382 | "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
2383 | "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
2384 | "dev": true,
2385 | "requires": {
2386 | "execa": "^1.0.0",
2387 | "lcid": "^2.0.0",
2388 | "mem": "^4.0.0"
2389 | }
2390 | },
2391 | "string-width": {
2392 | "version": "3.1.0",
2393 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
2394 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
2395 | "dev": true,
2396 | "requires": {
2397 | "emoji-regex": "^7.0.1",
2398 | "is-fullwidth-code-point": "^2.0.0",
2399 | "strip-ansi": "^5.1.0"
2400 | },
2401 | "dependencies": {
2402 | "ansi-regex": {
2403 | "version": "4.1.0",
2404 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
2405 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
2406 | "dev": true
2407 | },
2408 | "strip-ansi": {
2409 | "version": "5.2.0",
2410 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
2411 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
2412 | "dev": true,
2413 | "requires": {
2414 | "ansi-regex": "^4.1.0"
2415 | }
2416 | }
2417 | }
2418 | },
2419 | "strip-ansi": {
2420 | "version": "4.0.0",
2421 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
2422 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
2423 | "dev": true,
2424 | "requires": {
2425 | "ansi-regex": "^3.0.0"
2426 | }
2427 | },
2428 | "supports-color": {
2429 | "version": "6.0.0",
2430 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz",
2431 | "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==",
2432 | "dev": true,
2433 | "requires": {
2434 | "has-flag": "^3.0.0"
2435 | }
2436 | },
2437 | "y18n": {
2438 | "version": "4.0.0",
2439 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
2440 | "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
2441 | "dev": true
2442 | },
2443 | "yargs": {
2444 | "version": "13.2.2",
2445 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.2.tgz",
2446 | "integrity": "sha512-WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA==",
2447 | "dev": true,
2448 | "requires": {
2449 | "cliui": "^4.0.0",
2450 | "find-up": "^3.0.0",
2451 | "get-caller-file": "^2.0.1",
2452 | "os-locale": "^3.1.0",
2453 | "require-directory": "^2.1.1",
2454 | "require-main-filename": "^2.0.0",
2455 | "set-blocking": "^2.0.0",
2456 | "string-width": "^3.0.0",
2457 | "which-module": "^2.0.0",
2458 | "y18n": "^4.0.0",
2459 | "yargs-parser": "^13.0.0"
2460 | }
2461 | }
2462 | }
2463 | },
2464 | "mocha-junit-reporter": {
2465 | "version": "1.23.3",
2466 | "resolved": "https://registry.npmjs.org/mocha-junit-reporter/-/mocha-junit-reporter-1.23.3.tgz",
2467 | "integrity": "sha512-ed8LqbRj1RxZfjt/oC9t12sfrWsjZ3gNnbhV1nuj9R/Jb5/P3Xb4duv2eCfCDMYH+fEu0mqca7m4wsiVjsxsvA==",
2468 | "dev": true,
2469 | "requires": {
2470 | "debug": "^2.2.0",
2471 | "md5": "^2.1.0",
2472 | "mkdirp": "~0.5.1",
2473 | "strip-ansi": "^4.0.0",
2474 | "xml": "^1.0.0"
2475 | },
2476 | "dependencies": {
2477 | "ansi-regex": {
2478 | "version": "3.0.0",
2479 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
2480 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
2481 | "dev": true
2482 | },
2483 | "debug": {
2484 | "version": "2.6.9",
2485 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
2486 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
2487 | "dev": true,
2488 | "requires": {
2489 | "ms": "2.0.0"
2490 | }
2491 | },
2492 | "ms": {
2493 | "version": "2.0.0",
2494 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
2495 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
2496 | "dev": true
2497 | },
2498 | "strip-ansi": {
2499 | "version": "4.0.0",
2500 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
2501 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
2502 | "dev": true,
2503 | "requires": {
2504 | "ansi-regex": "^3.0.0"
2505 | }
2506 | }
2507 | }
2508 | },
2509 | "ms": {
2510 | "version": "2.1.2",
2511 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
2512 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
2513 | "dev": true
2514 | },
2515 | "multer": {
2516 | "version": "1.4.2",
2517 | "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.2.tgz",
2518 | "integrity": "sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg==",
2519 | "dev": true,
2520 | "requires": {
2521 | "append-field": "^1.0.0",
2522 | "busboy": "^0.2.11",
2523 | "concat-stream": "^1.5.2",
2524 | "mkdirp": "^0.5.1",
2525 | "object-assign": "^4.1.1",
2526 | "on-finished": "^2.3.0",
2527 | "type-is": "^1.6.4",
2528 | "xtend": "^4.0.0"
2529 | }
2530 | },
2531 | "nan": {
2532 | "version": "2.14.0",
2533 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
2534 | "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==",
2535 | "dev": true
2536 | },
2537 | "negotiator": {
2538 | "version": "0.6.2",
2539 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
2540 | "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==",
2541 | "dev": true
2542 | },
2543 | "next-tick": {
2544 | "version": "1.0.0",
2545 | "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
2546 | "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=",
2547 | "dev": true
2548 | },
2549 | "nice-try": {
2550 | "version": "1.0.5",
2551 | "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
2552 | "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
2553 | "dev": true
2554 | },
2555 | "node-environment-flags": {
2556 | "version": "1.0.5",
2557 | "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz",
2558 | "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==",
2559 | "dev": true,
2560 | "requires": {
2561 | "object.getownpropertydescriptors": "^2.0.3",
2562 | "semver": "^5.7.0"
2563 | }
2564 | },
2565 | "node-fetch": {
2566 | "version": "2.6.0",
2567 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
2568 | "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==",
2569 | "dev": true
2570 | },
2571 | "normalize-package-data": {
2572 | "version": "2.5.0",
2573 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
2574 | "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
2575 | "dev": true,
2576 | "requires": {
2577 | "hosted-git-info": "^2.1.4",
2578 | "resolve": "^1.10.0",
2579 | "semver": "2 || 3 || 4 || 5",
2580 | "validate-npm-package-license": "^3.0.1"
2581 | }
2582 | },
2583 | "normalize-url": {
2584 | "version": "4.5.0",
2585 | "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz",
2586 | "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==",
2587 | "dev": true
2588 | },
2589 | "npm-run-path": {
2590 | "version": "2.0.2",
2591 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
2592 | "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
2593 | "dev": true,
2594 | "requires": {
2595 | "path-key": "^2.0.0"
2596 | }
2597 | },
2598 | "number-is-nan": {
2599 | "version": "1.0.1",
2600 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
2601 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
2602 | "dev": true
2603 | },
2604 | "object-assign": {
2605 | "version": "4.1.1",
2606 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
2607 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
2608 | "dev": true
2609 | },
2610 | "object-hash": {
2611 | "version": "2.0.1",
2612 | "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.0.1.tgz",
2613 | "integrity": "sha512-HgcGMooY4JC2PBt9sdUdJ6PMzpin+YtY3r/7wg0uTifP+HJWW8rammseSEHuyt0UeShI183UGssCJqm1bJR7QA==",
2614 | "dev": true
2615 | },
2616 | "object-inspect": {
2617 | "version": "1.6.0",
2618 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz",
2619 | "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==",
2620 | "dev": true
2621 | },
2622 | "object-keys": {
2623 | "version": "1.1.1",
2624 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
2625 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
2626 | "dev": true
2627 | },
2628 | "object.assign": {
2629 | "version": "4.1.0",
2630 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
2631 | "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
2632 | "dev": true,
2633 | "requires": {
2634 | "define-properties": "^1.1.2",
2635 | "function-bind": "^1.1.1",
2636 | "has-symbols": "^1.0.0",
2637 | "object-keys": "^1.0.11"
2638 | }
2639 | },
2640 | "object.getownpropertydescriptors": {
2641 | "version": "2.0.3",
2642 | "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
2643 | "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=",
2644 | "dev": true,
2645 | "requires": {
2646 | "define-properties": "^1.1.2",
2647 | "es-abstract": "^1.5.1"
2648 | }
2649 | },
2650 | "on-finished": {
2651 | "version": "2.3.0",
2652 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
2653 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
2654 | "dev": true,
2655 | "requires": {
2656 | "ee-first": "1.1.1"
2657 | }
2658 | },
2659 | "once": {
2660 | "version": "1.4.0",
2661 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
2662 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
2663 | "dev": true,
2664 | "requires": {
2665 | "wrappy": "1"
2666 | }
2667 | },
2668 | "optional": {
2669 | "version": "0.1.4",
2670 | "resolved": "https://registry.npmjs.org/optional/-/optional-0.1.4.tgz",
2671 | "integrity": "sha512-gtvrrCfkE08wKcgXaVwQVgwEQ8vel2dc5DDBn9RLQZ3YtmtkBss6A2HY6BnJH4N/4Ku97Ri/SF8sNWE2225WJw==",
2672 | "dev": true
2673 | },
2674 | "optjs": {
2675 | "version": "3.2.2",
2676 | "resolved": "https://registry.npmjs.org/optjs/-/optjs-3.2.2.tgz",
2677 | "integrity": "sha1-aabOicRCpEQDFBrS+bNwvVu29O4=",
2678 | "dev": true
2679 | },
2680 | "os-locale": {
2681 | "version": "1.4.0",
2682 | "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
2683 | "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
2684 | "dev": true,
2685 | "requires": {
2686 | "lcid": "^1.0.0"
2687 | }
2688 | },
2689 | "p-cancelable": {
2690 | "version": "1.1.0",
2691 | "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
2692 | "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==",
2693 | "dev": true
2694 | },
2695 | "p-defer": {
2696 | "version": "1.0.0",
2697 | "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
2698 | "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=",
2699 | "dev": true
2700 | },
2701 | "p-finally": {
2702 | "version": "1.0.0",
2703 | "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
2704 | "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
2705 | "dev": true
2706 | },
2707 | "p-is-promise": {
2708 | "version": "2.1.0",
2709 | "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz",
2710 | "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==",
2711 | "dev": true
2712 | },
2713 | "p-limit": {
2714 | "version": "2.2.1",
2715 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
2716 | "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==",
2717 | "dev": true,
2718 | "requires": {
2719 | "p-try": "^2.0.0"
2720 | }
2721 | },
2722 | "p-locate": {
2723 | "version": "3.0.0",
2724 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
2725 | "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
2726 | "dev": true,
2727 | "requires": {
2728 | "p-limit": "^2.0.0"
2729 | }
2730 | },
2731 | "p-try": {
2732 | "version": "2.2.0",
2733 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
2734 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
2735 | "dev": true
2736 | },
2737 | "parse-json": {
2738 | "version": "2.2.0",
2739 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
2740 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
2741 | "dev": true,
2742 | "requires": {
2743 | "error-ex": "^1.2.0"
2744 | }
2745 | },
2746 | "parseurl": {
2747 | "version": "1.3.3",
2748 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
2749 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
2750 | "dev": true
2751 | },
2752 | "path-exists": {
2753 | "version": "2.1.0",
2754 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
2755 | "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
2756 | "dev": true,
2757 | "requires": {
2758 | "pinkie-promise": "^2.0.0"
2759 | }
2760 | },
2761 | "path-is-absolute": {
2762 | "version": "1.0.1",
2763 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
2764 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
2765 | "dev": true
2766 | },
2767 | "path-key": {
2768 | "version": "2.0.1",
2769 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
2770 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
2771 | "dev": true
2772 | },
2773 | "path-parse": {
2774 | "version": "1.0.6",
2775 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
2776 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
2777 | "dev": true
2778 | },
2779 | "path-to-regexp": {
2780 | "version": "0.1.7",
2781 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
2782 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
2783 | "dev": true
2784 | },
2785 | "path-type": {
2786 | "version": "1.1.0",
2787 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
2788 | "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
2789 | "dev": true,
2790 | "requires": {
2791 | "graceful-fs": "^4.1.2",
2792 | "pify": "^2.0.0",
2793 | "pinkie-promise": "^2.0.0"
2794 | }
2795 | },
2796 | "pathval": {
2797 | "version": "1.1.0",
2798 | "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz",
2799 | "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=",
2800 | "dev": true
2801 | },
2802 | "pify": {
2803 | "version": "2.3.0",
2804 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
2805 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
2806 | "dev": true
2807 | },
2808 | "pinkie": {
2809 | "version": "2.0.4",
2810 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
2811 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
2812 | "dev": true
2813 | },
2814 | "pinkie-promise": {
2815 | "version": "2.0.1",
2816 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
2817 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
2818 | "dev": true,
2819 | "requires": {
2820 | "pinkie": "^2.0.0"
2821 | }
2822 | },
2823 | "prepend-http": {
2824 | "version": "2.0.0",
2825 | "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
2826 | "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=",
2827 | "dev": true
2828 | },
2829 | "process-nextick-args": {
2830 | "version": "2.0.1",
2831 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
2832 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
2833 | "dev": true
2834 | },
2835 | "promise-retry": {
2836 | "version": "1.1.1",
2837 | "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz",
2838 | "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=",
2839 | "dev": true,
2840 | "requires": {
2841 | "err-code": "^1.0.0",
2842 | "retry": "^0.10.0"
2843 | }
2844 | },
2845 | "protobufjs": {
2846 | "version": "6.8.8",
2847 | "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.8.8.tgz",
2848 | "integrity": "sha512-AAmHtD5pXgZfi7GMpllpO3q1Xw1OYldr+dMUlAnffGTAhqkg72WdmSY71uKBF/JuyiKs8psYbtKrhi0ASCD8qw==",
2849 | "dev": true,
2850 | "requires": {
2851 | "@protobufjs/aspromise": "^1.1.2",
2852 | "@protobufjs/base64": "^1.1.2",
2853 | "@protobufjs/codegen": "^2.0.4",
2854 | "@protobufjs/eventemitter": "^1.1.0",
2855 | "@protobufjs/fetch": "^1.1.0",
2856 | "@protobufjs/float": "^1.0.2",
2857 | "@protobufjs/inquire": "^1.1.0",
2858 | "@protobufjs/path": "^1.1.2",
2859 | "@protobufjs/pool": "^1.1.0",
2860 | "@protobufjs/utf8": "^1.1.0",
2861 | "@types/long": "^4.0.0",
2862 | "@types/node": "^10.1.0",
2863 | "long": "^4.0.0"
2864 | }
2865 | },
2866 | "proxy-addr": {
2867 | "version": "2.0.5",
2868 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz",
2869 | "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==",
2870 | "dev": true,
2871 | "requires": {
2872 | "forwarded": "~0.1.2",
2873 | "ipaddr.js": "1.9.0"
2874 | }
2875 | },
2876 | "pump": {
2877 | "version": "3.0.0",
2878 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
2879 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
2880 | "dev": true,
2881 | "requires": {
2882 | "end-of-stream": "^1.1.0",
2883 | "once": "^1.3.1"
2884 | }
2885 | },
2886 | "qs": {
2887 | "version": "6.7.0",
2888 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
2889 | "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
2890 | "dev": true
2891 | },
2892 | "range-parser": {
2893 | "version": "1.2.1",
2894 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
2895 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
2896 | "dev": true
2897 | },
2898 | "raw-body": {
2899 | "version": "2.4.0",
2900 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
2901 | "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
2902 | "dev": true,
2903 | "requires": {
2904 | "bytes": "3.1.0",
2905 | "http-errors": "1.7.2",
2906 | "iconv-lite": "0.4.24",
2907 | "unpipe": "1.0.0"
2908 | }
2909 | },
2910 | "read-pkg": {
2911 | "version": "1.1.0",
2912 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
2913 | "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
2914 | "dev": true,
2915 | "requires": {
2916 | "load-json-file": "^1.0.0",
2917 | "normalize-package-data": "^2.3.2",
2918 | "path-type": "^1.0.0"
2919 | }
2920 | },
2921 | "read-pkg-up": {
2922 | "version": "1.0.1",
2923 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
2924 | "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
2925 | "dev": true,
2926 | "requires": {
2927 | "find-up": "^1.0.0",
2928 | "read-pkg": "^1.0.0"
2929 | }
2930 | },
2931 | "readable-stream": {
2932 | "version": "1.1.14",
2933 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
2934 | "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
2935 | "dev": true,
2936 | "requires": {
2937 | "core-util-is": "~1.0.0",
2938 | "inherits": "~2.0.1",
2939 | "isarray": "0.0.1",
2940 | "string_decoder": "~0.10.x"
2941 | }
2942 | },
2943 | "redent": {
2944 | "version": "1.0.0",
2945 | "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
2946 | "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
2947 | "dev": true,
2948 | "requires": {
2949 | "indent-string": "^2.1.0",
2950 | "strip-indent": "^1.0.1"
2951 | }
2952 | },
2953 | "reflect-metadata": {
2954 | "version": "0.1.13",
2955 | "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz",
2956 | "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==",
2957 | "dev": true
2958 | },
2959 | "repeating": {
2960 | "version": "2.0.1",
2961 | "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
2962 | "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
2963 | "dev": true,
2964 | "requires": {
2965 | "is-finite": "^1.0.0"
2966 | }
2967 | },
2968 | "require-directory": {
2969 | "version": "2.1.1",
2970 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
2971 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
2972 | "dev": true
2973 | },
2974 | "require-main-filename": {
2975 | "version": "2.0.0",
2976 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
2977 | "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
2978 | "dev": true
2979 | },
2980 | "resolve": {
2981 | "version": "1.12.0",
2982 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz",
2983 | "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==",
2984 | "dev": true,
2985 | "requires": {
2986 | "path-parse": "^1.0.6"
2987 | }
2988 | },
2989 | "responselike": {
2990 | "version": "1.0.2",
2991 | "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
2992 | "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
2993 | "dev": true,
2994 | "requires": {
2995 | "lowercase-keys": "^1.0.0"
2996 | }
2997 | },
2998 | "retry": {
2999 | "version": "0.10.1",
3000 | "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz",
3001 | "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=",
3002 | "dev": true
3003 | },
3004 | "rimraf": {
3005 | "version": "3.0.0",
3006 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz",
3007 | "integrity": "sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==",
3008 | "dev": true,
3009 | "requires": {
3010 | "glob": "^7.1.3"
3011 | }
3012 | },
3013 | "rxjs": {
3014 | "version": "6.5.3",
3015 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz",
3016 | "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==",
3017 | "dev": true,
3018 | "requires": {
3019 | "tslib": "^1.9.0"
3020 | }
3021 | },
3022 | "safe-buffer": {
3023 | "version": "5.1.2",
3024 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
3025 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
3026 | "dev": true
3027 | },
3028 | "safer-buffer": {
3029 | "version": "2.1.2",
3030 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
3031 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
3032 | "dev": true
3033 | },
3034 | "semver": {
3035 | "version": "5.7.1",
3036 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
3037 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
3038 | "dev": true
3039 | },
3040 | "send": {
3041 | "version": "0.17.1",
3042 | "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
3043 | "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
3044 | "dev": true,
3045 | "requires": {
3046 | "debug": "2.6.9",
3047 | "depd": "~1.1.2",
3048 | "destroy": "~1.0.4",
3049 | "encodeurl": "~1.0.2",
3050 | "escape-html": "~1.0.3",
3051 | "etag": "~1.8.1",
3052 | "fresh": "0.5.2",
3053 | "http-errors": "~1.7.2",
3054 | "mime": "1.6.0",
3055 | "ms": "2.1.1",
3056 | "on-finished": "~2.3.0",
3057 | "range-parser": "~1.2.1",
3058 | "statuses": "~1.5.0"
3059 | },
3060 | "dependencies": {
3061 | "debug": {
3062 | "version": "2.6.9",
3063 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
3064 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
3065 | "dev": true,
3066 | "requires": {
3067 | "ms": "2.0.0"
3068 | },
3069 | "dependencies": {
3070 | "ms": {
3071 | "version": "2.0.0",
3072 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
3073 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
3074 | "dev": true
3075 | }
3076 | }
3077 | },
3078 | "ms": {
3079 | "version": "2.1.1",
3080 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
3081 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
3082 | "dev": true
3083 | }
3084 | }
3085 | },
3086 | "serve-static": {
3087 | "version": "1.14.1",
3088 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
3089 | "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
3090 | "dev": true,
3091 | "requires": {
3092 | "encodeurl": "~1.0.2",
3093 | "escape-html": "~1.0.3",
3094 | "parseurl": "~1.3.3",
3095 | "send": "0.17.1"
3096 | }
3097 | },
3098 | "set-blocking": {
3099 | "version": "2.0.0",
3100 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
3101 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
3102 | "dev": true
3103 | },
3104 | "setprototypeof": {
3105 | "version": "1.1.1",
3106 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
3107 | "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==",
3108 | "dev": true
3109 | },
3110 | "shebang-command": {
3111 | "version": "1.2.0",
3112 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
3113 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
3114 | "dev": true,
3115 | "requires": {
3116 | "shebang-regex": "^1.0.0"
3117 | }
3118 | },
3119 | "shebang-regex": {
3120 | "version": "1.0.0",
3121 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
3122 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
3123 | "dev": true
3124 | },
3125 | "signal-exit": {
3126 | "version": "3.0.2",
3127 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
3128 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
3129 | "dev": true
3130 | },
3131 | "source-map": {
3132 | "version": "0.6.1",
3133 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
3134 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
3135 | "dev": true
3136 | },
3137 | "source-map-support": {
3138 | "version": "0.5.16",
3139 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz",
3140 | "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==",
3141 | "dev": true,
3142 | "requires": {
3143 | "buffer-from": "^1.0.0",
3144 | "source-map": "^0.6.0"
3145 | }
3146 | },
3147 | "spdx-correct": {
3148 | "version": "3.1.0",
3149 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
3150 | "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==",
3151 | "dev": true,
3152 | "requires": {
3153 | "spdx-expression-parse": "^3.0.0",
3154 | "spdx-license-ids": "^3.0.0"
3155 | }
3156 | },
3157 | "spdx-exceptions": {
3158 | "version": "2.2.0",
3159 | "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
3160 | "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==",
3161 | "dev": true
3162 | },
3163 | "spdx-expression-parse": {
3164 | "version": "3.0.0",
3165 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
3166 | "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
3167 | "dev": true,
3168 | "requires": {
3169 | "spdx-exceptions": "^2.1.0",
3170 | "spdx-license-ids": "^3.0.0"
3171 | }
3172 | },
3173 | "spdx-license-ids": {
3174 | "version": "3.0.5",
3175 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz",
3176 | "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==",
3177 | "dev": true
3178 | },
3179 | "sprintf-js": {
3180 | "version": "1.0.3",
3181 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
3182 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
3183 | "dev": true
3184 | },
3185 | "stack-trace": {
3186 | "version": "0.0.10",
3187 | "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
3188 | "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=",
3189 | "dev": true
3190 | },
3191 | "statuses": {
3192 | "version": "1.5.0",
3193 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
3194 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
3195 | "dev": true
3196 | },
3197 | "streamsearch": {
3198 | "version": "0.1.2",
3199 | "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz",
3200 | "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=",
3201 | "dev": true
3202 | },
3203 | "string-width": {
3204 | "version": "1.0.2",
3205 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
3206 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
3207 | "dev": true,
3208 | "requires": {
3209 | "code-point-at": "^1.0.0",
3210 | "is-fullwidth-code-point": "^1.0.0",
3211 | "strip-ansi": "^3.0.0"
3212 | }
3213 | },
3214 | "string.prototype.trimleft": {
3215 | "version": "2.1.0",
3216 | "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz",
3217 | "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==",
3218 | "dev": true,
3219 | "requires": {
3220 | "define-properties": "^1.1.3",
3221 | "function-bind": "^1.1.1"
3222 | }
3223 | },
3224 | "string.prototype.trimright": {
3225 | "version": "2.1.0",
3226 | "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz",
3227 | "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==",
3228 | "dev": true,
3229 | "requires": {
3230 | "define-properties": "^1.1.3",
3231 | "function-bind": "^1.1.1"
3232 | }
3233 | },
3234 | "string_decoder": {
3235 | "version": "0.10.31",
3236 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
3237 | "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
3238 | "dev": true
3239 | },
3240 | "strip-ansi": {
3241 | "version": "3.0.1",
3242 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
3243 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
3244 | "dev": true,
3245 | "requires": {
3246 | "ansi-regex": "^2.0.0"
3247 | }
3248 | },
3249 | "strip-bom": {
3250 | "version": "2.0.0",
3251 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
3252 | "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
3253 | "dev": true,
3254 | "requires": {
3255 | "is-utf8": "^0.2.0"
3256 | }
3257 | },
3258 | "strip-eof": {
3259 | "version": "1.0.0",
3260 | "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
3261 | "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
3262 | "dev": true
3263 | },
3264 | "strip-indent": {
3265 | "version": "1.0.1",
3266 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
3267 | "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
3268 | "dev": true,
3269 | "requires": {
3270 | "get-stdin": "^4.0.1"
3271 | }
3272 | },
3273 | "strip-json-comments": {
3274 | "version": "2.0.1",
3275 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
3276 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
3277 | "dev": true
3278 | },
3279 | "supports-color": {
3280 | "version": "5.5.0",
3281 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
3282 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
3283 | "dev": true,
3284 | "requires": {
3285 | "has-flag": "^3.0.0"
3286 | }
3287 | },
3288 | "timers-ext": {
3289 | "version": "0.1.7",
3290 | "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz",
3291 | "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==",
3292 | "dev": true,
3293 | "requires": {
3294 | "es5-ext": "~0.10.46",
3295 | "next-tick": "1"
3296 | }
3297 | },
3298 | "to-readable-stream": {
3299 | "version": "1.0.0",
3300 | "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
3301 | "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==",
3302 | "dev": true
3303 | },
3304 | "toidentifier": {
3305 | "version": "1.0.0",
3306 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
3307 | "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==",
3308 | "dev": true
3309 | },
3310 | "trim-newlines": {
3311 | "version": "1.0.0",
3312 | "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
3313 | "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
3314 | "dev": true
3315 | },
3316 | "ts-node": {
3317 | "version": "8.4.1",
3318 | "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.4.1.tgz",
3319 | "integrity": "sha512-5LpRN+mTiCs7lI5EtbXmF/HfMeCjzt7DH9CZwtkr6SywStrNQC723wG+aOWFiLNn7zT3kD/RnFqi3ZUfr4l5Qw==",
3320 | "dev": true,
3321 | "requires": {
3322 | "arg": "^4.1.0",
3323 | "diff": "^4.0.1",
3324 | "make-error": "^1.1.1",
3325 | "source-map-support": "^0.5.6",
3326 | "yn": "^3.0.0"
3327 | },
3328 | "dependencies": {
3329 | "diff": {
3330 | "version": "4.0.1",
3331 | "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz",
3332 | "integrity": "sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==",
3333 | "dev": true
3334 | }
3335 | }
3336 | },
3337 | "tslib": {
3338 | "version": "1.10.0",
3339 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
3340 | "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
3341 | "dev": true
3342 | },
3343 | "type": {
3344 | "version": "1.2.0",
3345 | "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
3346 | "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==",
3347 | "dev": true
3348 | },
3349 | "type-detect": {
3350 | "version": "4.0.8",
3351 | "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
3352 | "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
3353 | "dev": true
3354 | },
3355 | "type-is": {
3356 | "version": "1.6.18",
3357 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
3358 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
3359 | "dev": true,
3360 | "requires": {
3361 | "media-typer": "0.3.0",
3362 | "mime-types": "~2.1.24"
3363 | }
3364 | },
3365 | "typedarray": {
3366 | "version": "0.0.6",
3367 | "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
3368 | "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
3369 | "dev": true
3370 | },
3371 | "typescript": {
3372 | "version": "3.7.5",
3373 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.5.tgz",
3374 | "integrity": "sha512-/P5lkRXkWHNAbcJIiHPfRoKqyd7bsyCma1hZNUGfn20qm64T6ZBlrzprymeu918H+mB/0rIg2gGK/BXkhhYgBw==",
3375 | "dev": true
3376 | },
3377 | "unpipe": {
3378 | "version": "1.0.0",
3379 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
3380 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
3381 | "dev": true
3382 | },
3383 | "url-parse-lax": {
3384 | "version": "3.0.0",
3385 | "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
3386 | "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
3387 | "dev": true,
3388 | "requires": {
3389 | "prepend-http": "^2.0.0"
3390 | }
3391 | },
3392 | "util-deprecate": {
3393 | "version": "1.0.2",
3394 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
3395 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
3396 | "dev": true
3397 | },
3398 | "utils-merge": {
3399 | "version": "1.0.1",
3400 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
3401 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
3402 | "dev": true
3403 | },
3404 | "uuid": {
3405 | "version": "3.3.3",
3406 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz",
3407 | "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==",
3408 | "dev": true
3409 | },
3410 | "validate-npm-package-license": {
3411 | "version": "3.0.4",
3412 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
3413 | "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
3414 | "dev": true,
3415 | "requires": {
3416 | "spdx-correct": "^3.0.0",
3417 | "spdx-expression-parse": "^3.0.0"
3418 | }
3419 | },
3420 | "vary": {
3421 | "version": "1.1.2",
3422 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
3423 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
3424 | "dev": true
3425 | },
3426 | "which": {
3427 | "version": "1.3.1",
3428 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
3429 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
3430 | "dev": true,
3431 | "requires": {
3432 | "isexe": "^2.0.0"
3433 | }
3434 | },
3435 | "which-module": {
3436 | "version": "2.0.0",
3437 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
3438 | "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
3439 | "dev": true
3440 | },
3441 | "wide-align": {
3442 | "version": "1.1.3",
3443 | "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
3444 | "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
3445 | "dev": true,
3446 | "requires": {
3447 | "string-width": "^1.0.2 || 2"
3448 | }
3449 | },
3450 | "window-size": {
3451 | "version": "0.1.4",
3452 | "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz",
3453 | "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=",
3454 | "dev": true
3455 | },
3456 | "wrap-ansi": {
3457 | "version": "2.1.0",
3458 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
3459 | "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
3460 | "dev": true,
3461 | "requires": {
3462 | "string-width": "^1.0.1",
3463 | "strip-ansi": "^3.0.1"
3464 | }
3465 | },
3466 | "wrappy": {
3467 | "version": "1.0.2",
3468 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
3469 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
3470 | "dev": true
3471 | },
3472 | "xml": {
3473 | "version": "1.0.1",
3474 | "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz",
3475 | "integrity": "sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=",
3476 | "dev": true
3477 | },
3478 | "xtend": {
3479 | "version": "4.0.2",
3480 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
3481 | "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
3482 | "dev": true
3483 | },
3484 | "y18n": {
3485 | "version": "3.2.1",
3486 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
3487 | "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
3488 | "dev": true
3489 | },
3490 | "yargs": {
3491 | "version": "3.32.0",
3492 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz",
3493 | "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=",
3494 | "dev": true,
3495 | "requires": {
3496 | "camelcase": "^2.0.1",
3497 | "cliui": "^3.0.3",
3498 | "decamelize": "^1.1.1",
3499 | "os-locale": "^1.4.0",
3500 | "string-width": "^1.0.1",
3501 | "window-size": "^0.1.4",
3502 | "y18n": "^3.2.0"
3503 | }
3504 | },
3505 | "yargs-parser": {
3506 | "version": "13.0.0",
3507 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz",
3508 | "integrity": "sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==",
3509 | "dev": true,
3510 | "requires": {
3511 | "camelcase": "^5.0.0",
3512 | "decamelize": "^1.2.0"
3513 | },
3514 | "dependencies": {
3515 | "camelcase": {
3516 | "version": "5.3.1",
3517 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
3518 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
3519 | "dev": true
3520 | }
3521 | }
3522 | },
3523 | "yargs-unparser": {
3524 | "version": "1.5.0",
3525 | "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.5.0.tgz",
3526 | "integrity": "sha512-HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw==",
3527 | "dev": true,
3528 | "requires": {
3529 | "flat": "^4.1.0",
3530 | "lodash": "^4.17.11",
3531 | "yargs": "^12.0.5"
3532 | },
3533 | "dependencies": {
3534 | "ansi-regex": {
3535 | "version": "3.0.0",
3536 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
3537 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
3538 | "dev": true
3539 | },
3540 | "camelcase": {
3541 | "version": "5.3.1",
3542 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
3543 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
3544 | "dev": true
3545 | },
3546 | "cliui": {
3547 | "version": "4.1.0",
3548 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
3549 | "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
3550 | "dev": true,
3551 | "requires": {
3552 | "string-width": "^2.1.1",
3553 | "strip-ansi": "^4.0.0",
3554 | "wrap-ansi": "^2.0.0"
3555 | }
3556 | },
3557 | "find-up": {
3558 | "version": "3.0.0",
3559 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
3560 | "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
3561 | "dev": true,
3562 | "requires": {
3563 | "locate-path": "^3.0.0"
3564 | }
3565 | },
3566 | "get-caller-file": {
3567 | "version": "1.0.3",
3568 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
3569 | "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
3570 | "dev": true
3571 | },
3572 | "invert-kv": {
3573 | "version": "2.0.0",
3574 | "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
3575 | "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
3576 | "dev": true
3577 | },
3578 | "is-fullwidth-code-point": {
3579 | "version": "2.0.0",
3580 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
3581 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
3582 | "dev": true
3583 | },
3584 | "lcid": {
3585 | "version": "2.0.0",
3586 | "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
3587 | "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
3588 | "dev": true,
3589 | "requires": {
3590 | "invert-kv": "^2.0.0"
3591 | }
3592 | },
3593 | "os-locale": {
3594 | "version": "3.1.0",
3595 | "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
3596 | "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
3597 | "dev": true,
3598 | "requires": {
3599 | "execa": "^1.0.0",
3600 | "lcid": "^2.0.0",
3601 | "mem": "^4.0.0"
3602 | }
3603 | },
3604 | "require-main-filename": {
3605 | "version": "1.0.1",
3606 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
3607 | "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
3608 | "dev": true
3609 | },
3610 | "string-width": {
3611 | "version": "2.1.1",
3612 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
3613 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
3614 | "dev": true,
3615 | "requires": {
3616 | "is-fullwidth-code-point": "^2.0.0",
3617 | "strip-ansi": "^4.0.0"
3618 | }
3619 | },
3620 | "strip-ansi": {
3621 | "version": "4.0.0",
3622 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
3623 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
3624 | "dev": true,
3625 | "requires": {
3626 | "ansi-regex": "^3.0.0"
3627 | }
3628 | },
3629 | "yargs": {
3630 | "version": "12.0.5",
3631 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz",
3632 | "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==",
3633 | "dev": true,
3634 | "requires": {
3635 | "cliui": "^4.0.0",
3636 | "decamelize": "^1.2.0",
3637 | "find-up": "^3.0.0",
3638 | "get-caller-file": "^1.0.1",
3639 | "os-locale": "^3.0.0",
3640 | "require-directory": "^2.1.1",
3641 | "require-main-filename": "^1.0.1",
3642 | "set-blocking": "^2.0.0",
3643 | "string-width": "^2.0.0",
3644 | "which-module": "^2.0.0",
3645 | "y18n": "^3.2.1 || ^4.0.0",
3646 | "yargs-parser": "^11.1.1"
3647 | }
3648 | },
3649 | "yargs-parser": {
3650 | "version": "11.1.1",
3651 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz",
3652 | "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==",
3653 | "dev": true,
3654 | "requires": {
3655 | "camelcase": "^5.0.0",
3656 | "decamelize": "^1.2.0"
3657 | }
3658 | }
3659 | }
3660 | },
3661 | "yn": {
3662 | "version": "3.1.1",
3663 | "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
3664 | "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
3665 | "dev": true
3666 | },
3667 | "zeebe-node": {
3668 | "version": "0.22.1",
3669 | "resolved": "https://registry.npmjs.org/zeebe-node/-/zeebe-node-0.22.1.tgz",
3670 | "integrity": "sha512-ZRwQBozFmQ4WXFYWIR60jZpudej0ENdu/HmZP43AlOSleGL3YXAzRElHIEzHuS2dBi5KWtGWIw2kx0MaDuWCbg==",
3671 | "dev": true,
3672 | "requires": {
3673 | "@grpc/proto-loader": "^0.5.1",
3674 | "@types/promise-retry": "^1.1.3",
3675 | "chalk": "^2.4.2",
3676 | "console-stamp": "^0.2.7",
3677 | "dayjs": "^1.8.15",
3678 | "debug": "^4.1.1",
3679 | "fast-xml-parser": "^3.12.12",
3680 | "got": "^9.6.0",
3681 | "grpc": "^1.23.4",
3682 | "promise-retry": "^1.1.1",
3683 | "stack-trace": "0.0.10",
3684 | "uuid": "^3.3.2"
3685 | }
3686 | }
3687 | }
3688 | }
3689 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@payk/nestjs-zeebe",
3 | "version": "1.2.2",
4 | "description": "Zeebe microservice module and client for nestjs",
5 | "main": "dist/index.js",
6 | "repository": {
7 | "url": "https://github.com/pay-k/nestjs-zeebe.git",
8 | "type": "git"
9 | },
10 | "scripts": {
11 | "test": "mocha --opts .mocharc",
12 | "test-juint": "mocha --opts .mocharc --reporter mocha-junit-reporter",
13 | "prebuild": "rimraf dist",
14 | "build": "tsc",
15 | "publish-package": "npm run-script build && npm publish"
16 | },
17 | "keywords": [
18 | "nestjs",
19 | "zeebe"
20 | ],
21 | "author": "Dan Shapir",
22 | "license": "ISC",
23 | "dependencies": {},
24 | "devDependencies": {
25 | "@nestjs/common": "^6.11.5",
26 | "@nestjs/core": "^6.11.5",
27 | "@nestjs/microservices": "^6.11.5",
28 | "@nestjs/platform-express": "^6.11.5",
29 | "reflect-metadata": "^0.1.13",
30 | "rxjs": "^6.5.3",
31 | "typescript": "^3.7.5",
32 | "zeebe-node": "^0.22.1",
33 | "@nestjs/testing": "^6.11.5",
34 | "@types/chai": "^4.2.8",
35 | "@types/mocha": "^5.2.7",
36 | "chai": "^4.2.0",
37 | "mocha": "^6.2.0",
38 | "mocha-junit-reporter": "^1.23.3",
39 | "rimraf": "^3.0.0",
40 | "source-map-support": "^0.5.16",
41 | "ts-node": "^8.4.1"
42 | },
43 | "peerDependencies": {
44 | "@nestjs/common": "^6.11.5",
45 | "@nestjs/core": "^6.11.5",
46 | "@nestjs/microservices": "^6.11.5",
47 | "@nestjs/platform-express": "^6.11.5",
48 | "reflect-metadata": "^0.1.13",
49 | "rxjs": "^6.5.4",
50 | "typescript": "^3.6.3",
51 | "zeebe-node": "^0.22.1"
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './zeebe.module';
2 | export * from './zeebe.constans';
3 | export * from './transport';
4 | export * from './zeebe.decorator';
5 | export * from './zeebe.interfaces';
--------------------------------------------------------------------------------
/src/transport/index.ts:
--------------------------------------------------------------------------------
1 | export * from './zeebe-server'
2 |
--------------------------------------------------------------------------------
/src/transport/zeebe-server.ts:
--------------------------------------------------------------------------------
1 | import {
2 | Server,
3 | CustomTransportStrategy
4 | } from '@nestjs/microservices';
5 | import {
6 | Inject,
7 | Injectable,
8 | Logger
9 | } from '@nestjs/common';
10 | import {
11 | ZEEBE_CONNECTION_PROVIDER
12 | } from '../zeebe.constans';
13 | import {
14 | ZBClient
15 | } from 'zeebe-node';
16 | import * as process from 'process';
17 | import {
18 | ZeebeWorkerProperties
19 | } from '../zeebe.interfaces';
20 |
21 | /**
22 | * A customer transport for Zeebe.
23 | *
24 | * @export
25 | * @class ZeebeServer
26 | * @extends {Server}
27 | * @implements {CustomTransportStrategy}
28 | */
29 | @Injectable()
30 | export class ZeebeServer extends Server implements CustomTransportStrategy {
31 | constructor(@Inject(ZEEBE_CONNECTION_PROVIDER) private readonly client: ZBClient) {
32 | super();
33 | }
34 |
35 | public async listen(callback: () => void) {
36 | this.init();
37 | callback();
38 | }
39 |
40 | public close() {
41 | this.client.close().then(() => console.log('All workers closed'))
42 | }
43 |
44 | private init(): void {
45 | const handlers = this.getHandlers();
46 | handlers.forEach((value, key: any, map) => {
47 | let workerOptions = {
48 | id: '',
49 | taskType: '',
50 | handler: value,
51 | options: {},
52 | onConnectionError: undefined
53 | }
54 | let jsonKey: ZeebeWorkerProperties = null;
55 | // See if it's a json, if so use it's data
56 | try {
57 | jsonKey = JSON.parse(key) as ZeebeWorkerProperties;
58 | workerOptions.taskType = jsonKey.type;
59 | workerOptions.options = jsonKey.options || {};
60 |
61 | workerOptions.id = `${workerOptions.taskType}_${process.pid}`;
62 | const zbWorker = this.client.createWorker(workerOptions.id, workerOptions.taskType, workerOptions.handler, workerOptions.options);
63 | } catch (ex) {
64 |
65 | }
66 | });
67 | }
68 | }
--------------------------------------------------------------------------------
/src/zeebe.constans.ts:
--------------------------------------------------------------------------------
1 | export const ZEEBE_OPTIONS_PROVIDER = 'ZEEBE_OPTIONS_PROVIDER';
2 | export const ZEEBE_CONNECTION_PROVIDER = 'ZEEBE_CONNECTION_PROVIDER';
--------------------------------------------------------------------------------
/src/zeebe.decorator.ts:
--------------------------------------------------------------------------------
1 | import { ZeebeExceptionFilter } from './zeebe.exception.filter';
2 | import { MessagePattern } from '@nestjs/microservices';
3 | import { ZBWorkerOptions } from 'zeebe-node/interfaces';
4 | import { UseFilters } from '@nestjs/common';
5 |
6 |
7 | export /**
8 | * A decorator that auto exposes the end-point as a Zeebe worker and overrides the NestJS
9 | * Exception handling to allow failing a job once an exception is thrown.
10 |
11 |
12 | * @param {string} type
13 | * @param {ZBWorkerOptions} [options]
14 | * @returns {MethodDecorator}
15 | */
16 | const ZeebeWorker = (type: string, options?: ZBWorkerOptions) : MethodDecorator => {
17 | return (...args) => {
18 | let messagePattern = MessagePattern({ type, options: options || null });
19 | let exceptionFilter = UseFilters(ZeebeExceptionFilter);
20 |
21 | if (typeof args[1] === "string") {
22 | exceptionFilter(args[0], args[1], args[2]);
23 | }
24 | messagePattern(...args);
25 | }
26 | };
--------------------------------------------------------------------------------
/src/zeebe.exception.filter.ts:
--------------------------------------------------------------------------------
1 | import { Catch, ArgumentsHost, Logger } from '@nestjs/common';
2 | import { BaseRpcExceptionFilter } from '@nestjs/microservices';
3 |
4 | /**
5 | * Throws an the exception to allow handling by node-zeebe
6 | *
7 | * @export
8 | * @class ZeebeExceptionFilter
9 | * @extends {BaseRpcExceptionFilter}
10 | */
11 | @Catch()
12 | export class ZeebeExceptionFilter extends BaseRpcExceptionFilter {
13 |
14 | private readonly logger = new Logger(ZeebeExceptionFilter.name)
15 |
16 | catch(exception: any, host: ArgumentsHost) {
17 | this.logger.error({ message: 'Exception during zeebe worker', exception });
18 | throw exception;
19 | return null;
20 | //return super.catch(exception, host);
21 | }
22 | }
--------------------------------------------------------------------------------
/src/zeebe.interfaces.ts:
--------------------------------------------------------------------------------
1 | import { ZBWorkerOptions, ZBClientOptions } from "zeebe-node/interfaces";
2 |
3 | /**
4 | *
5 | *
6 | * @export
7 | * @interface ZeebeWorkerProperties
8 | */
9 | export interface ZeebeWorkerProperties {
10 | type: string;
11 | options?: ZBWorkerOptions;
12 | }
13 |
14 | /**
15 | *
16 | *
17 | * @export
18 | * @interface ZeebeClientOptions
19 | */
20 | export interface ZeebeClientOptions {
21 | gatewayAddress?: string;
22 | options?: ZBWorkerOptions & ZBClientOptions;
23 | }
24 |
25 | /**
26 | *
27 | *
28 | * @export
29 | * @interface ZeebeAsyncOptions
30 | */
31 | export interface ZeebeAsyncOptions {
32 | imports?: any[];
33 | inject?: any[];
34 | useFactory?: (
35 | ...args: any[]
36 | ) => Promise | ZeebeClientOptions;
37 | }
--------------------------------------------------------------------------------
/src/zeebe.module.spec.ts:
--------------------------------------------------------------------------------
1 | import { ZeebeModule } from './zeebe.module';
2 | /* tslint:disable:only-arrow-functions max-classes-per-file */
3 | import { Injectable, Module } from '@nestjs/common';
4 | import { Test } from '@nestjs/testing';
5 | import { expect } from 'chai';
6 | import { ZEEBE_CONNECTION_PROVIDER } from './zeebe.constans';
7 |
8 | describe('Winston module', function() {
9 | it('boots successfully', async function() {
10 | const rootModule = await Test.createTestingModule({
11 | imports: [
12 | ZeebeModule.forRoot({ gatewayAddress: 'localhost:26500' }),
13 | ],
14 | }).compile();
15 |
16 | expect(rootModule.get(ZEEBE_CONNECTION_PROVIDER)).to.be.an('object');
17 | });
18 |
19 | it('boots successfully asynchronously', async function() {
20 | @Injectable()
21 | class ConfigService {
22 | public zeebeOptions = { gatewayAddress: 'localhost:26500' };
23 | }
24 |
25 | @Module({
26 | providers: [ConfigService],
27 | exports: [ConfigService],
28 | })
29 | class FeatureModule {}
30 |
31 | const rootModule = await Test.createTestingModule({
32 | imports: [
33 | ZeebeModule.forRootAsync({
34 | imports: [FeatureModule],
35 | useFactory: (cfg: ConfigService) => { return cfg.zeebeOptions; },
36 | inject: [ConfigService],
37 | }),
38 | ]
39 | }).compile();
40 |
41 | const app = rootModule.createNestApplication();
42 | await app.init();
43 |
44 | expect(rootModule.get(ZEEBE_CONNECTION_PROVIDER)).to.be.an('object');
45 | });
46 | });
--------------------------------------------------------------------------------
/src/zeebe.module.ts:
--------------------------------------------------------------------------------
1 | import { Module, OnModuleDestroy, DynamicModule, Provider, Logger } from '@nestjs/common';
2 | import * as ZB from 'zeebe-node';
3 | import { ModuleRef } from '@nestjs/core';
4 | import { ZEEBE_OPTIONS_PROVIDER, ZEEBE_CONNECTION_PROVIDER } from './zeebe.constans';
5 | import { ZeebeClientOptions, ZeebeAsyncOptions } from './zeebe.interfaces';
6 |
7 | @Module({})
8 | export class ZeebeModule implements OnModuleDestroy {
9 | constructor(private readonly moduleRef: ModuleRef) {}
10 |
11 | public static forRoot(options : ZeebeClientOptions): DynamicModule {
12 | const optionsProviders: Provider[] = [];
13 | const connectionProviders: Provider[] = [];
14 |
15 | optionsProviders.push(this.createOptionsProvider(options));
16 |
17 | connectionProviders.push(this.createConnectionProvider());
18 |
19 | return {
20 | module: ZeebeModule,
21 | providers: [
22 | ...optionsProviders,
23 | ...connectionProviders,
24 | ],
25 | exports: connectionProviders,
26 | };
27 | }
28 |
29 | public static forRootAsync(options: ZeebeAsyncOptions): DynamicModule {
30 | const connectionProviders: Provider[] = [];
31 | connectionProviders.push(this.createConnectionProvider());
32 |
33 | return {
34 | module: ZeebeModule,
35 | imports: options.imports || [],
36 | providers: [
37 | {
38 | provide: ZEEBE_OPTIONS_PROVIDER,
39 | useFactory: options.useFactory,
40 | inject: options.inject || [],
41 | },
42 | ...connectionProviders,
43 | ],
44 | exports: connectionProviders,
45 | };
46 | }
47 |
48 | public static forFeature(): DynamicModule {
49 | return {
50 | module: ZeebeModule,
51 | };
52 | }
53 |
54 | private static createOptionsProvider(options : ZeebeClientOptions): Provider {
55 | return {
56 | provide: ZEEBE_OPTIONS_PROVIDER,
57 | useValue: options,
58 | };
59 | }
60 |
61 | private static createConnectionProvider(): Provider {
62 | return {
63 | provide: ZEEBE_CONNECTION_PROVIDER,
64 | //TODO resolve host url: do I need to? Seems to work aready? Just verify
65 | useFactory: async (config: ZeebeClientOptions ) => new ZB.ZBClient(config.gatewayAddress, config.options),
66 | inject: [ZEEBE_OPTIONS_PROVIDER],
67 | };
68 | }
69 | onModuleDestroy() {
70 | Logger.error('Zeebe Module destroyed')
71 | }
72 | }
73 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "module": "commonjs",
4 | "declaration": true,
5 | "noImplicitAny": false,
6 | "noUnusedLocals": false,
7 | "removeComments": false,
8 | "noLib": false,
9 | "emitDecoratorMetadata": true,
10 | "experimentalDecorators": true,
11 | "target": "es6",
12 | "sourceMap": false,
13 | "allowJs": false,
14 | "rootDir": "./src",
15 | "baseUrl": "./",
16 | "outDir": "./dist"
17 | },
18 | "include": [
19 | "*.ts",
20 | "**/*.ts"
21 | ],
22 | "exclude": [
23 | "./dist/**/*",
24 | "node_modules",
25 | "./**/*.spec.ts"
26 | ]
27 | }
--------------------------------------------------------------------------------