├── .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 | Nest Logo 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 | [![Build Status](https://dev.azure.com/payk/PayK%20Public/_apis/build/status/pay-k.nestjs-zeebe?branchName=master)](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 | } --------------------------------------------------------------------------------