├── .editorconfig ├── .gitignore ├── README.md ├── bin └── faker-ts.ts ├── faker-ts.ts ├── json-schema-faker.d.ts ├── lib ├── faker.ts ├── tsMock.ts ├── tsWatcher.ts └── utils.ts ├── package-lock.json ├── package.json ├── tests ├── getApiFiles.ts ├── koaServer.ts ├── mocks │ ├── api2.ts │ └── my-file.ts ├── server.ts ├── tsMock.test.ts └── tt.ts ├── tsconfig.json ├── tslint.json └── yarn.lock /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 2 6 | charset = utf-8 7 | trim_trailing_whitespace = true 8 | insert_final_newline = true 9 | end_of_line = lf 10 | # editorconfig-tools is unable to ignore longs strings or urls 11 | max_line_length = null -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | 9 | # Diagnostic reports (https://nodejs.org/api/report.html) 10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 11 | 12 | # Runtime data 13 | pids 14 | *.pid 15 | *.seed 16 | *.pid.lock 17 | 18 | # Directory for instrumented libs generated by jscoverage/JSCover 19 | lib-cov 20 | 21 | # Coverage directory used by tools like istanbul 22 | coverage 23 | *.lcov 24 | 25 | # nyc test coverage 26 | .nyc_output 27 | 28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 29 | .grunt 30 | 31 | # Bower dependency directory (https://bower.io/) 32 | bower_components 33 | 34 | # node-waf configuration 35 | .lock-wscript 36 | 37 | # Compiled binary addons (https://nodejs.org/api/addons.html) 38 | build/Release 39 | 40 | # Dependency directories 41 | node_modules/ 42 | jspm_packages/ 43 | 44 | # TypeScript v1 declaration files 45 | typings/ 46 | 47 | # TypeScript cache 48 | *.tsbuildinfo 49 | 50 | # Optional npm cache directory 51 | .npm 52 | 53 | # Optional eslint cache 54 | .eslintcache 55 | 56 | # Optional REPL history 57 | .node_repl_history 58 | 59 | # Output of 'npm pack' 60 | *.tgz 61 | 62 | # Yarn Integrity file 63 | .yarn-integrity 64 | 65 | # dotenv environment variables file 66 | .env 67 | .env.test 68 | 69 | # parcel-bundler cache (https://parceljs.org/) 70 | .cache 71 | 72 | # next.js build output 73 | .next 74 | 75 | # nuxt.js build output 76 | .nuxt 77 | 78 | # vuepress build output 79 | .vuepress/dist 80 | 81 | # Serverless directories 82 | .serverless/ 83 | 84 | # FuseBox cache 85 | .fusebox/ 86 | 87 | # DynamoDB Local files 88 | .dynamodb/ 89 | 90 | dist/ 91 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # faker-ts 2 | 3 | Mock data from TypeScript 4 | 5 | ## Usage 6 | 7 | ``` ts 8 | import { tsMock, tsMockService } from 'faker-ts'; 9 | 10 | const files = ['foo.ts']; 11 | // foo.ts 12 | // export interface IFoo { a: string } 13 | 14 | const mocker = tsMock(files); 15 | mocker.generateMock('IFoo'); // { "a": "commodo voluptate pariatur" } 16 | 17 | // or listening file change 18 | const mocker = tsMockService(files); // see more Mock Server with Koa 19 | ``` 20 | 21 | ### CLI 22 | 23 | ``` shell 24 | yarn global add faker-ts 25 | ``` 26 | 27 | e.g. 28 | 29 | ``` shell 30 | echo "interface IFoo { title: string; }" > foo.ts 31 | faker-ts foo.ts IFoo # Mock data 32 | ``` 33 | 34 | ### Mock Server with Koa 35 | 36 | ``` ts 37 | import Koa from 'koa'; 38 | import Router from 'koa-router'; 39 | import * as ts from 'typescript'; 40 | import { tsMockService } from 'faker-ts'; 41 | 42 | export function createServer(files: string[], jsonCompilerOptions?: ts.CompilerOptions, basePath?: string) { 43 | const app = new Koa(); 44 | const router = new Router(); 45 | 46 | const mocker = tsMockService(files, jsonCompilerOptions, basePath); 47 | 48 | app.use(async (ctx, next) => { 49 | try { 50 | await next(); 51 | } catch (error) { 52 | ctx.body = { msg: error.message }; 53 | } 54 | }); 55 | 56 | router.get('/mocks/:symbol', async (ctx) => { 57 | ctx.body = mocker.generateMock(ctx.params.symbol); 58 | }); 59 | 60 | router.get('/schemas/:symbol', async (ctx) => { 61 | ctx.body = mocker.generateSchema(ctx.params.symbol); 62 | }); 63 | 64 | router.get('/schemas', async (ctx) => { 65 | ctx.body = mocker.generateSchema(); 66 | }); 67 | 68 | router.get('/symbols', async (ctx) => { 69 | ctx.body = mocker.generator.getMainFileSymbols(mocker.program); 70 | }); 71 | 72 | app 73 | .use(router.routes()) 74 | .use(router.allowedMethods()); 75 | 76 | return app; 77 | } 78 | ``` 79 | -------------------------------------------------------------------------------- /bin/faker-ts.ts: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | import program from 'commander'; 4 | import { tsMock } from '../faker-ts'; 5 | 6 | program 7 | .version('0.0.1'); 8 | 9 | program 10 | .usage(' ') 11 | // tslint:disable-next-line:variable-name 12 | .action((file, symbol) => { 13 | const mocker = tsMock([file]); 14 | console.log(JSON.stringify(mocker.generateMock(symbol), null, 2)); 15 | }); 16 | 17 | // program 18 | // .command('serve ') 19 | // .description('Http Mock Server') 20 | // .option('-p, --port', 'Server listen port', parseInt) 21 | // .action((file, { port = 3000 }) => { 22 | // console.log(`http://localhost:${port}`); 23 | // createServer([file]).listen(port); 24 | // }); 25 | 26 | program.parse(process.argv); 27 | -------------------------------------------------------------------------------- /faker-ts.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/tsMock'; 2 | export * from './lib/tsWatcher'; 3 | -------------------------------------------------------------------------------- /json-schema-faker.d.ts: -------------------------------------------------------------------------------- 1 | /** Declaration file generated by dts-gen */ 2 | 3 | declare module 'json-schema-faker' { 4 | export = json_schema_faker; 5 | 6 | function json_schema_faker(schema: any, refs: any, cwd: any): any; 7 | namespace json_schema_faker { 8 | const version: string; 9 | 10 | function define(name: any, cb: any): any; 11 | 12 | function extend(name: any, cb: any): any; 13 | 14 | function format(nameOrFormatMap: any, callback: any): any; 15 | 16 | function generate(schema: any, refs: any): any; 17 | 18 | function locate(name: any): any; 19 | 20 | function option(nameOrOptionMap: any, optionalValue?: any): any; 21 | 22 | function reset(name: any): any; 23 | 24 | function resolve(schema: any, refs?: any, cwd?: any): Promise; 25 | 26 | namespace option { 27 | function getDefaults(): any; 28 | } 29 | 30 | namespace random { 31 | function date(step: any): any; 32 | 33 | function number(min: any, max: any, defMin: any, defMax: any, hasPrecision: any): any; 34 | 35 | function pick(collection: any): any; 36 | 37 | function randexp(value: any): any; 38 | 39 | function shuffle(collection: any): any; 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /lib/faker.ts: -------------------------------------------------------------------------------- 1 | import faker from 'faker'; 2 | import jsf from 'json-schema-faker'; 3 | import { Definition } from 'typescript-json-schema'; 4 | 5 | // faker.locale = 'zh_CN'; 6 | jsf.option('useExamplesValue', true); 7 | jsf.option('useDefaultValue', true); 8 | jsf.extend('faker', () => faker); 9 | 10 | export const getMock = (schema: any) => jsf.resolve(schema); 11 | export const fakerGenerate = (schema: Definition) => jsf.generate(schema, []); 12 | -------------------------------------------------------------------------------- /lib/tsMock.ts: -------------------------------------------------------------------------------- 1 | import * as ts from 'typescript'; 2 | import { buildGenerator, JsonSchemaGenerator } from 'typescript-json-schema'; 3 | import { fakerGenerate } from './faker'; 4 | import { tsWatcher } from './tsWatcher'; 5 | import { getTsOptions } from './utils'; 6 | 7 | export class TsMocker { 8 | public generator: JsonSchemaGenerator; 9 | public program: ts.Program; 10 | constructor(program?: ts.Program) { 11 | if (program) { 12 | this.setProgram(program); 13 | } 14 | } 15 | public setProgram(program: ts.Program) { 16 | const generator = buildGenerator(program, { required: true }); 17 | if (generator === null) { 18 | throw new Error('generator is null'); 19 | } 20 | this.program = program; 21 | this.generator = generator; 22 | } 23 | public generateSchema(fullTypeName: string = '*', onlyIncludeFiles?: string[]) { 24 | const { generator } = this; 25 | if (fullTypeName === '*') { 26 | return generator.getSchemaForSymbols(generator.getMainFileSymbols(this.program, onlyIncludeFiles)); 27 | } else { 28 | return generator.getSchemaForSymbol(fullTypeName); 29 | } 30 | } 31 | public generateMock(fullTypeName, onlyIncludeFiles?: string[]) { 32 | return fakerGenerate(this.generateSchema(fullTypeName, onlyIncludeFiles)); 33 | } 34 | } 35 | 36 | export function tsMockService(files: string[], jsonCompilerOptions?: ts.CompilerOptions, basePath?: string) { 37 | const mocker = new TsMocker(); 38 | const options = getTsOptions(jsonCompilerOptions, basePath); 39 | 40 | tsWatcher(files, options).on('afterProgramCreate', (p: ts.SemanticDiagnosticsBuilderProgram) => { 41 | try { 42 | mocker.setProgram(p.getProgram()); 43 | } catch (error) { 44 | console.error(error.meesage); 45 | } 46 | }); 47 | return mocker; 48 | } 49 | 50 | export function tsMock(files: string[], jsonCompilerOptions?: ts.CompilerOptions, basePath?: string) { 51 | const options = getTsOptions(jsonCompilerOptions, basePath); 52 | const mocker = new TsMocker(ts.createProgram(files, options)); 53 | return mocker; 54 | } 55 | -------------------------------------------------------------------------------- /lib/tsWatcher.ts: -------------------------------------------------------------------------------- 1 | import EventEmitter from 'events'; 2 | import ts from 'typescript'; 3 | 4 | const formatHost: ts.FormatDiagnosticsHost = { 5 | getCanonicalFileName: (path) => path, 6 | getCurrentDirectory: ts.sys.getCurrentDirectory, 7 | getNewLine: () => ts.sys.newLine, 8 | }; 9 | 10 | export function tsWatcher(configFileName: string, optionsToExtend: ts.CompilerOptions | undefined): EventEmitter; 11 | export function tsWatcher(rootFiles: string[], options: ts.CompilerOptions): EventEmitter; 12 | export function tsWatcher(rootFiles, options) { 13 | // TypeScript can use several different program creation "strategies": 14 | // * ts.createEmitAndSemanticDiagnosticsBuilderProgram, 15 | // * ts.createSemanticDiagnosticsBuilderProgram 16 | // * ts.createAbstractBuilder 17 | // The first two produce "builder programs". These use an incremental strategy 18 | // to only re-check and emit files whose contents may have changed, or whose 19 | // dependencies may have changes which may impact change the result of prior 20 | // type-check and emit. 21 | // The last uses an ordinary program which does a full type check after every 22 | // change. 23 | // Between `createEmitAndSemanticDiagnosticsBuilderProgram` and 24 | // `createSemanticDiagnosticsBuilderProgram`, the only difference is emit. 25 | // For pure type-checking scenarios, or when another tool/process handles emit, 26 | // using `createSemanticDiagnosticsBuilderProgram` may be more desirable. 27 | const createProgram = ts.createSemanticDiagnosticsBuilderProgram; 28 | 29 | // Note that there is another overload for `createWatchCompilerHost` that takes 30 | // a set of root files. 31 | const host = ts.createWatchCompilerHost( 32 | rootFiles, options, 33 | ts.sys, 34 | createProgram, 35 | reportDiagnostic, 36 | reportWatchStatusChanged, 37 | ); 38 | 39 | const emitter = new EventEmitter(); 40 | 41 | // You can technically override any given hook on the host, though you probably 42 | // don't need to. 43 | // Note that we're assuming `origCreateProgram` and `origPostProgramCreate` 44 | // doesn't use `this` at all. 45 | // const origCreateProgram = host.createProgram; 46 | // host.createProgram = (...args) => { 47 | // console.log('** We\'re about to create the program! **'); 48 | // emitter.emit('createProgram', ...args); 49 | // return origCreateProgram(...args); 50 | // }; 51 | const origPostProgramCreate = host.afterProgramCreate; 52 | 53 | host.afterProgramCreate = (program) => { 54 | // program. 55 | console.log('** We finished making the program! **'); 56 | emitter.emit('afterProgramCreate', program); 57 | origPostProgramCreate!(program); 58 | }; 59 | 60 | setImmediate(() => { 61 | // `createWatchProgram` creates an initial program, watches files, and updates 62 | // the program over time. 63 | ts.createWatchProgram(host); 64 | }); 65 | return emitter; 66 | } 67 | 68 | function reportDiagnostic(diagnostic: ts.Diagnostic) { 69 | console.error( 70 | 'Error', 71 | diagnostic.code, 72 | ':', 73 | ts.flattenDiagnosticMessageText( 74 | diagnostic.messageText, 75 | formatHost.getNewLine(), 76 | ), 77 | ); 78 | } 79 | 80 | /** 81 | * Prints a diagnostic every time the watch status changes. 82 | * This is mainly for messages like "Starting compilation" or "Compilation completed". 83 | */ 84 | function reportWatchStatusChanged(diagnostic: ts.Diagnostic) { 85 | console.info(ts.formatDiagnostic(diagnostic, formatHost)); 86 | } 87 | -------------------------------------------------------------------------------- /lib/utils.ts: -------------------------------------------------------------------------------- 1 | import * as ts from 'typescript'; 2 | 3 | export function getTsOptions(jsonCompilerOptions: ts.CompilerOptions = {}, basePath: string = './') { 4 | const compilerOptions = ts.convertCompilerOptionsFromJson(jsonCompilerOptions, basePath).options; 5 | 6 | return { 7 | noEmit: true, 8 | emitDecoratorMetadata: true, 9 | experimentalDecorators: true, 10 | target: ts.ScriptTarget.ES5, 11 | module: ts.ModuleKind.CommonJS, 12 | allowUnusedLabels: true, 13 | ...compilerOptions, 14 | }; 15 | } 16 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "json-schema-mock.ts", 3 | "requires": true, 4 | "lockfileVersion": 1, 5 | "dependencies": { 6 | "@babel/code-frame": { 7 | "version": "7.0.0", 8 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", 9 | "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", 10 | "dev": true, 11 | "requires": { 12 | "@babel/highlight": "^7.0.0" 13 | } 14 | }, 15 | "@babel/highlight": { 16 | "version": "7.0.0", 17 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", 18 | "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", 19 | "dev": true, 20 | "requires": { 21 | "chalk": "^2.0.0", 22 | "esutils": "^2.0.2", 23 | "js-tokens": "^4.0.0" 24 | } 25 | }, 26 | "@types/node": { 27 | "version": "12.0.10", 28 | "resolved": "https://registry.npmjs.org/@types/node/-/node-12.0.10.tgz", 29 | "integrity": "sha512-LcsGbPomWsad6wmMNv7nBLw7YYYyfdYcz6xryKYQhx89c3XXan+8Q6AJ43G5XDIaklaVkK3mE4fCb0SBvMiPSQ==", 30 | "dev": true 31 | }, 32 | "ansi-regex": { 33 | "version": "4.1.0", 34 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 35 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" 36 | }, 37 | "ansi-styles": { 38 | "version": "3.2.1", 39 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 40 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 41 | "requires": { 42 | "color-convert": "^1.9.0" 43 | } 44 | }, 45 | "arg": { 46 | "version": "4.1.0", 47 | "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.0.tgz", 48 | "integrity": "sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg==", 49 | "dev": true 50 | }, 51 | "argparse": { 52 | "version": "1.0.10", 53 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", 54 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", 55 | "requires": { 56 | "sprintf-js": "~1.0.2" 57 | } 58 | }, 59 | "balanced-match": { 60 | "version": "1.0.0", 61 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 62 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" 63 | }, 64 | "brace-expansion": { 65 | "version": "1.1.11", 66 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 67 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 68 | "requires": { 69 | "balanced-match": "^1.0.0", 70 | "concat-map": "0.0.1" 71 | } 72 | }, 73 | "buffer-from": { 74 | "version": "1.1.1", 75 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", 76 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", 77 | "dev": true 78 | }, 79 | "builtin-modules": { 80 | "version": "1.1.1", 81 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", 82 | "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", 83 | "dev": true 84 | }, 85 | "call-me-maybe": { 86 | "version": "1.0.1", 87 | "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", 88 | "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" 89 | }, 90 | "camelcase": { 91 | "version": "5.3.1", 92 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", 93 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" 94 | }, 95 | "chalk": { 96 | "version": "2.4.2", 97 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 98 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 99 | "dev": true, 100 | "requires": { 101 | "ansi-styles": "^3.2.1", 102 | "escape-string-regexp": "^1.0.5", 103 | "supports-color": "^5.3.0" 104 | } 105 | }, 106 | "cliui": { 107 | "version": "5.0.0", 108 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", 109 | "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", 110 | "requires": { 111 | "string-width": "^3.1.0", 112 | "strip-ansi": "^5.2.0", 113 | "wrap-ansi": "^5.1.0" 114 | } 115 | }, 116 | "color-convert": { 117 | "version": "1.9.3", 118 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 119 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 120 | "requires": { 121 | "color-name": "1.1.3" 122 | } 123 | }, 124 | "color-name": { 125 | "version": "1.1.3", 126 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 127 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" 128 | }, 129 | "commander": { 130 | "version": "2.20.0", 131 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", 132 | "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", 133 | "dev": true 134 | }, 135 | "concat-map": { 136 | "version": "0.0.1", 137 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 138 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" 139 | }, 140 | "cross-spawn": { 141 | "version": "6.0.5", 142 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", 143 | "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", 144 | "requires": { 145 | "nice-try": "^1.0.4", 146 | "path-key": "^2.0.1", 147 | "semver": "^5.5.0", 148 | "shebang-command": "^1.2.0", 149 | "which": "^1.2.9" 150 | } 151 | }, 152 | "decamelize": { 153 | "version": "1.2.0", 154 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 155 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" 156 | }, 157 | "deep-is": { 158 | "version": "0.1.3", 159 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", 160 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" 161 | }, 162 | "diff": { 163 | "version": "3.5.0", 164 | "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", 165 | "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", 166 | "dev": true 167 | }, 168 | "drange": { 169 | "version": "1.1.1", 170 | "resolved": "https://registry.npmjs.org/drange/-/drange-1.1.1.tgz", 171 | "integrity": "sha512-pYxfDYpued//QpnLIm4Avk7rsNtAtQkUES2cwAYSvD/wd2pKD71gN2Ebj3e7klzXwjocvE8c5vx/1fxwpqmSxA==" 172 | }, 173 | "emoji-regex": { 174 | "version": "7.0.3", 175 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", 176 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" 177 | }, 178 | "end-of-stream": { 179 | "version": "1.4.1", 180 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", 181 | "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", 182 | "requires": { 183 | "once": "^1.4.0" 184 | } 185 | }, 186 | "escape-string-regexp": { 187 | "version": "1.0.5", 188 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 189 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 190 | "dev": true 191 | }, 192 | "escodegen": { 193 | "version": "1.11.1", 194 | "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.1.tgz", 195 | "integrity": "sha512-JwiqFD9KdGVVpeuRa68yU3zZnBEOcPs0nKW7wZzXky8Z7tffdYUHbe11bPCV5jYlK6DVdKLWLm0f5I/QlL0Kmw==", 196 | "requires": { 197 | "esprima": "^3.1.3", 198 | "estraverse": "^4.2.0", 199 | "esutils": "^2.0.2", 200 | "optionator": "^0.8.1", 201 | "source-map": "~0.6.1" 202 | }, 203 | "dependencies": { 204 | "esprima": { 205 | "version": "3.1.3", 206 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", 207 | "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" 208 | } 209 | } 210 | }, 211 | "esprima": { 212 | "version": "4.0.1", 213 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", 214 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" 215 | }, 216 | "estraverse": { 217 | "version": "4.2.0", 218 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", 219 | "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" 220 | }, 221 | "esutils": { 222 | "version": "2.0.2", 223 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 224 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" 225 | }, 226 | "execa": { 227 | "version": "1.0.0", 228 | "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", 229 | "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", 230 | "requires": { 231 | "cross-spawn": "^6.0.0", 232 | "get-stream": "^4.0.0", 233 | "is-stream": "^1.1.0", 234 | "npm-run-path": "^2.0.0", 235 | "p-finally": "^1.0.0", 236 | "signal-exit": "^3.0.0", 237 | "strip-eof": "^1.0.0" 238 | } 239 | }, 240 | "fast-levenshtein": { 241 | "version": "2.0.6", 242 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 243 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" 244 | }, 245 | "find-up": { 246 | "version": "3.0.0", 247 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", 248 | "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", 249 | "requires": { 250 | "locate-path": "^3.0.0" 251 | } 252 | }, 253 | "format-util": { 254 | "version": "1.0.3", 255 | "resolved": "https://registry.npmjs.org/format-util/-/format-util-1.0.3.tgz", 256 | "integrity": "sha1-Ay3KShFiYqEsQ/TD7IVmQWxbLZU=" 257 | }, 258 | "fs.realpath": { 259 | "version": "1.0.0", 260 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 261 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" 262 | }, 263 | "get-caller-file": { 264 | "version": "2.0.5", 265 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", 266 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" 267 | }, 268 | "get-stream": { 269 | "version": "4.1.0", 270 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", 271 | "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", 272 | "requires": { 273 | "pump": "^3.0.0" 274 | } 275 | }, 276 | "glob": { 277 | "version": "7.1.4", 278 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", 279 | "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", 280 | "requires": { 281 | "fs.realpath": "^1.0.0", 282 | "inflight": "^1.0.4", 283 | "inherits": "2", 284 | "minimatch": "^3.0.4", 285 | "once": "^1.3.0", 286 | "path-is-absolute": "^1.0.0" 287 | } 288 | }, 289 | "has-flag": { 290 | "version": "3.0.0", 291 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 292 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 293 | "dev": true 294 | }, 295 | "inflight": { 296 | "version": "1.0.6", 297 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 298 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 299 | "requires": { 300 | "once": "^1.3.0", 301 | "wrappy": "1" 302 | } 303 | }, 304 | "inherits": { 305 | "version": "2.0.4", 306 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 307 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 308 | }, 309 | "invert-kv": { 310 | "version": "2.0.0", 311 | "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", 312 | "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==" 313 | }, 314 | "is-fullwidth-code-point": { 315 | "version": "2.0.0", 316 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 317 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" 318 | }, 319 | "is-stream": { 320 | "version": "1.1.0", 321 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", 322 | "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" 323 | }, 324 | "isexe": { 325 | "version": "2.0.0", 326 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 327 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" 328 | }, 329 | "js-tokens": { 330 | "version": "4.0.0", 331 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 332 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 333 | "dev": true 334 | }, 335 | "js-yaml": { 336 | "version": "3.13.1", 337 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", 338 | "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", 339 | "requires": { 340 | "argparse": "^1.0.7", 341 | "esprima": "^4.0.0" 342 | } 343 | }, 344 | "json-schema-faker": { 345 | "version": "0.5.0-rc17", 346 | "requires": { 347 | "json-schema-ref-parser": "^6.0.2", 348 | "jsonpath": "^1.0.1", 349 | "randexp": "^0.5.3" 350 | } 351 | }, 352 | "json-schema-ref-parser": { 353 | "version": "6.1.0", 354 | "resolved": "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-6.1.0.tgz", 355 | "integrity": "sha512-pXe9H1m6IgIpXmE5JSb8epilNTGsmTb2iPohAXpOdhqGFbQjNeHHsZxU+C8w6T81GZxSPFLeUoqDJmzxx5IGuw==", 356 | "requires": { 357 | "call-me-maybe": "^1.0.1", 358 | "js-yaml": "^3.12.1", 359 | "ono": "^4.0.11" 360 | } 361 | }, 362 | "json-stable-stringify": { 363 | "version": "1.0.1", 364 | "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", 365 | "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", 366 | "requires": { 367 | "jsonify": "~0.0.0" 368 | } 369 | }, 370 | "jsonify": { 371 | "version": "0.0.0", 372 | "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", 373 | "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" 374 | }, 375 | "jsonpath": { 376 | "version": "1.0.2", 377 | "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.0.2.tgz", 378 | "integrity": "sha512-rmzlgFZiQPc6q4HDyK8s9Qb4oxBnI5sF61y/Co5PV0lc3q2bIuRsNdueVbhoSHdKM4fxeimphOAtfz47yjCfeA==", 379 | "requires": { 380 | "esprima": "1.2.2", 381 | "static-eval": "2.0.2", 382 | "underscore": "1.7.0" 383 | }, 384 | "dependencies": { 385 | "esprima": { 386 | "version": "1.2.2", 387 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", 388 | "integrity": "sha1-dqD9Zvz+FU/SkmZ9wmQBl1CxZXs=" 389 | } 390 | } 391 | }, 392 | "lcid": { 393 | "version": "2.0.0", 394 | "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", 395 | "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", 396 | "requires": { 397 | "invert-kv": "^2.0.0" 398 | } 399 | }, 400 | "levn": { 401 | "version": "0.3.0", 402 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", 403 | "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", 404 | "requires": { 405 | "prelude-ls": "~1.1.2", 406 | "type-check": "~0.3.2" 407 | } 408 | }, 409 | "locate-path": { 410 | "version": "3.0.0", 411 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", 412 | "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", 413 | "requires": { 414 | "p-locate": "^3.0.0", 415 | "path-exists": "^3.0.0" 416 | } 417 | }, 418 | "make-error": { 419 | "version": "1.3.5", 420 | "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", 421 | "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", 422 | "dev": true 423 | }, 424 | "map-age-cleaner": { 425 | "version": "0.1.3", 426 | "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", 427 | "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", 428 | "requires": { 429 | "p-defer": "^1.0.0" 430 | } 431 | }, 432 | "mem": { 433 | "version": "4.3.0", 434 | "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", 435 | "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", 436 | "requires": { 437 | "map-age-cleaner": "^0.1.1", 438 | "mimic-fn": "^2.0.0", 439 | "p-is-promise": "^2.0.0" 440 | } 441 | }, 442 | "mimic-fn": { 443 | "version": "2.1.0", 444 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", 445 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" 446 | }, 447 | "minimatch": { 448 | "version": "3.0.4", 449 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 450 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 451 | "requires": { 452 | "brace-expansion": "^1.1.7" 453 | } 454 | }, 455 | "minimist": { 456 | "version": "0.0.8", 457 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 458 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 459 | "dev": true 460 | }, 461 | "mkdirp": { 462 | "version": "0.5.1", 463 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 464 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 465 | "dev": true, 466 | "requires": { 467 | "minimist": "0.0.8" 468 | } 469 | }, 470 | "nice-try": { 471 | "version": "1.0.5", 472 | "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", 473 | "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" 474 | }, 475 | "npm-run-path": { 476 | "version": "2.0.2", 477 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", 478 | "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", 479 | "requires": { 480 | "path-key": "^2.0.0" 481 | } 482 | }, 483 | "once": { 484 | "version": "1.4.0", 485 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 486 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 487 | "requires": { 488 | "wrappy": "1" 489 | } 490 | }, 491 | "ono": { 492 | "version": "4.0.11", 493 | "resolved": "https://registry.npmjs.org/ono/-/ono-4.0.11.tgz", 494 | "integrity": "sha512-jQ31cORBFE6td25deYeD80wxKBMj+zBmHTrVxnc6CKhx8gho6ipmWM5zj/oeoqioZ99yqBls9Z/9Nss7J26G2g==", 495 | "requires": { 496 | "format-util": "^1.0.3" 497 | } 498 | }, 499 | "optionator": { 500 | "version": "0.8.2", 501 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", 502 | "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", 503 | "requires": { 504 | "deep-is": "~0.1.3", 505 | "fast-levenshtein": "~2.0.4", 506 | "levn": "~0.3.0", 507 | "prelude-ls": "~1.1.2", 508 | "type-check": "~0.3.2", 509 | "wordwrap": "~1.0.0" 510 | } 511 | }, 512 | "os-locale": { 513 | "version": "3.1.0", 514 | "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", 515 | "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", 516 | "requires": { 517 | "execa": "^1.0.0", 518 | "lcid": "^2.0.0", 519 | "mem": "^4.0.0" 520 | } 521 | }, 522 | "p-defer": { 523 | "version": "1.0.0", 524 | "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", 525 | "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" 526 | }, 527 | "p-finally": { 528 | "version": "1.0.0", 529 | "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", 530 | "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" 531 | }, 532 | "p-is-promise": { 533 | "version": "2.1.0", 534 | "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", 535 | "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==" 536 | }, 537 | "p-limit": { 538 | "version": "2.2.0", 539 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", 540 | "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", 541 | "requires": { 542 | "p-try": "^2.0.0" 543 | } 544 | }, 545 | "p-locate": { 546 | "version": "3.0.0", 547 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", 548 | "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", 549 | "requires": { 550 | "p-limit": "^2.0.0" 551 | } 552 | }, 553 | "p-try": { 554 | "version": "2.2.0", 555 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", 556 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" 557 | }, 558 | "path-exists": { 559 | "version": "3.0.0", 560 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 561 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" 562 | }, 563 | "path-is-absolute": { 564 | "version": "1.0.1", 565 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 566 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" 567 | }, 568 | "path-key": { 569 | "version": "2.0.1", 570 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", 571 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" 572 | }, 573 | "path-parse": { 574 | "version": "1.0.6", 575 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", 576 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", 577 | "dev": true 578 | }, 579 | "prelude-ls": { 580 | "version": "1.1.2", 581 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", 582 | "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" 583 | }, 584 | "pump": { 585 | "version": "3.0.0", 586 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", 587 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", 588 | "requires": { 589 | "end-of-stream": "^1.1.0", 590 | "once": "^1.3.1" 591 | } 592 | }, 593 | "randexp": { 594 | "version": "0.5.3", 595 | "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.5.3.tgz", 596 | "integrity": "sha512-U+5l2KrcMNOUPYvazA3h5ekF80FHTUG+87SEAmHZmolh1M+i/WyTCxVzmi+tidIa1tM4BSe8g2Y/D3loWDjj+w==", 597 | "requires": { 598 | "drange": "^1.0.2", 599 | "ret": "^0.2.0" 600 | } 601 | }, 602 | "require-directory": { 603 | "version": "2.1.1", 604 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 605 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" 606 | }, 607 | "require-main-filename": { 608 | "version": "2.0.0", 609 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", 610 | "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" 611 | }, 612 | "resolve": { 613 | "version": "1.11.1", 614 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", 615 | "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", 616 | "dev": true, 617 | "requires": { 618 | "path-parse": "^1.0.6" 619 | } 620 | }, 621 | "ret": { 622 | "version": "0.2.2", 623 | "resolved": "https://registry.npmjs.org/ret/-/ret-0.2.2.tgz", 624 | "integrity": "sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==" 625 | }, 626 | "semver": { 627 | "version": "5.7.0", 628 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", 629 | "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" 630 | }, 631 | "set-blocking": { 632 | "version": "2.0.0", 633 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 634 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" 635 | }, 636 | "shebang-command": { 637 | "version": "1.2.0", 638 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 639 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", 640 | "requires": { 641 | "shebang-regex": "^1.0.0" 642 | } 643 | }, 644 | "shebang-regex": { 645 | "version": "1.0.0", 646 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 647 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" 648 | }, 649 | "signal-exit": { 650 | "version": "3.0.2", 651 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", 652 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" 653 | }, 654 | "source-map": { 655 | "version": "0.6.1", 656 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 657 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" 658 | }, 659 | "source-map-support": { 660 | "version": "0.5.12", 661 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz", 662 | "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==", 663 | "dev": true, 664 | "requires": { 665 | "buffer-from": "^1.0.0", 666 | "source-map": "^0.6.0" 667 | } 668 | }, 669 | "sprintf-js": { 670 | "version": "1.0.3", 671 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 672 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" 673 | }, 674 | "static-eval": { 675 | "version": "2.0.2", 676 | "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz", 677 | "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==", 678 | "requires": { 679 | "escodegen": "^1.8.1" 680 | } 681 | }, 682 | "string-width": { 683 | "version": "3.1.0", 684 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", 685 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", 686 | "requires": { 687 | "emoji-regex": "^7.0.1", 688 | "is-fullwidth-code-point": "^2.0.0", 689 | "strip-ansi": "^5.1.0" 690 | } 691 | }, 692 | "strip-ansi": { 693 | "version": "5.2.0", 694 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 695 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 696 | "requires": { 697 | "ansi-regex": "^4.1.0" 698 | } 699 | }, 700 | "strip-eof": { 701 | "version": "1.0.0", 702 | "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", 703 | "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" 704 | }, 705 | "supports-color": { 706 | "version": "5.5.0", 707 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 708 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 709 | "dev": true, 710 | "requires": { 711 | "has-flag": "^3.0.0" 712 | } 713 | }, 714 | "ts-node": { 715 | "version": "8.3.0", 716 | "dev": true, 717 | "requires": { 718 | "arg": "^4.1.0", 719 | "diff": "^4.0.1", 720 | "make-error": "^1.1.1", 721 | "source-map-support": "^0.5.6", 722 | "yn": "^3.0.0" 723 | }, 724 | "dependencies": { 725 | "diff": { 726 | "version": "4.0.1", 727 | "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz", 728 | "integrity": "sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==", 729 | "dev": true 730 | } 731 | } 732 | }, 733 | "tslib": { 734 | "version": "1.10.0", 735 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", 736 | "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", 737 | "dev": true 738 | }, 739 | "tslint": { 740 | "version": "5.18.0", 741 | "dev": true, 742 | "requires": { 743 | "@babel/code-frame": "^7.0.0", 744 | "builtin-modules": "^1.1.1", 745 | "chalk": "^2.3.0", 746 | "commander": "^2.12.1", 747 | "diff": "^3.2.0", 748 | "glob": "^7.1.1", 749 | "js-yaml": "^3.13.1", 750 | "minimatch": "^3.0.4", 751 | "mkdirp": "^0.5.1", 752 | "resolve": "^1.3.2", 753 | "semver": "^5.3.0", 754 | "tslib": "^1.8.0", 755 | "tsutils": "^2.29.0" 756 | } 757 | }, 758 | "tsutils": { 759 | "version": "2.29.0", 760 | "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", 761 | "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", 762 | "dev": true, 763 | "requires": { 764 | "tslib": "^1.8.1" 765 | } 766 | }, 767 | "type-check": { 768 | "version": "0.3.2", 769 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", 770 | "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", 771 | "requires": { 772 | "prelude-ls": "~1.1.2" 773 | } 774 | }, 775 | "typescript-json-schema": { 776 | "version": "0.38.3", 777 | "requires": { 778 | "glob": "~7.1.4", 779 | "json-stable-stringify": "^1.0.1", 780 | "typescript": "^3.5.1", 781 | "yargs": "^13.2.4" 782 | }, 783 | "dependencies": { 784 | "typescript": { 785 | "version": "3.5.2", 786 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.2.tgz", 787 | "integrity": "sha512-7KxJovlYhTX5RaRbUdkAXN1KUZ8PwWlTzQdHV6xNqvuFOs7+WBo10TQUqT19Q/Jz2hk5v9TQDIhyLhhJY4p5AA==" 788 | } 789 | } 790 | }, 791 | "underscore": { 792 | "version": "1.7.0", 793 | "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", 794 | "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=" 795 | }, 796 | "which": { 797 | "version": "1.3.1", 798 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 799 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", 800 | "requires": { 801 | "isexe": "^2.0.0" 802 | } 803 | }, 804 | "which-module": { 805 | "version": "2.0.0", 806 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", 807 | "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" 808 | }, 809 | "wordwrap": { 810 | "version": "1.0.0", 811 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", 812 | "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" 813 | }, 814 | "wrap-ansi": { 815 | "version": "5.1.0", 816 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", 817 | "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", 818 | "requires": { 819 | "ansi-styles": "^3.2.0", 820 | "string-width": "^3.0.0", 821 | "strip-ansi": "^5.0.0" 822 | } 823 | }, 824 | "wrappy": { 825 | "version": "1.0.2", 826 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 827 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 828 | }, 829 | "y18n": { 830 | "version": "4.0.0", 831 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", 832 | "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" 833 | }, 834 | "yargs": { 835 | "version": "13.2.4", 836 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz", 837 | "integrity": "sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==", 838 | "requires": { 839 | "cliui": "^5.0.0", 840 | "find-up": "^3.0.0", 841 | "get-caller-file": "^2.0.1", 842 | "os-locale": "^3.1.0", 843 | "require-directory": "^2.1.1", 844 | "require-main-filename": "^2.0.0", 845 | "set-blocking": "^2.0.0", 846 | "string-width": "^3.0.0", 847 | "which-module": "^2.0.0", 848 | "y18n": "^4.0.0", 849 | "yargs-parser": "^13.1.0" 850 | } 851 | }, 852 | "yargs-parser": { 853 | "version": "13.1.1", 854 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", 855 | "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", 856 | "requires": { 857 | "camelcase": "^5.0.0", 858 | "decamelize": "^1.2.0" 859 | } 860 | }, 861 | "yn": { 862 | "version": "3.1.0", 863 | "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.0.tgz", 864 | "integrity": "sha512-kKfnnYkbTfrAdd0xICNFw7Atm8nKpLcLv9AZGEt+kczL/WQVai4e2V6ZN8U/O+iI6WrNuJjNNOyu4zfhl9D3Hg==", 865 | "dev": true 866 | } 867 | }, 868 | "version": "0.0.2" 869 | } 870 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "faker-ts", 3 | "main": "dist/faker-ts.js", 4 | "typings": "dist/faker-ts.d.ts", 5 | "bin": "dist/bin/faker-ts.js", 6 | "scripts": { 7 | "prepublishOnly": "npm run build", 8 | "test": "npm run build && mocha -t 5000 --require source-map-support/register dist/tests", 9 | "debug": "node --inspect-brk -r ts-node/register tests/server.ts", 10 | "run": "ts-node faker-ts.ts", 11 | "serve": "ts-node tests/server.ts", 12 | "build": "tsc -p .", 13 | "lint": "tslint --project tsconfig.json -c tslint.json --exclude '**/*.d.ts'" 14 | }, 15 | "dependencies": { 16 | "commander": "^2.20.0", 17 | "faker": "^4.1.0", 18 | "json-schema-faker": "^0.5.0-rc17", 19 | "typescript": "^3.5.2", 20 | "typescript-json-schema": "^0.38.3" 21 | }, 22 | "devDependencies": { 23 | "@types/chai": "^4.1.7", 24 | "@types/faker": "^4.1.5", 25 | "@types/koa": "^2.0.48", 26 | "@types/mocha": "^5.2.7", 27 | "@types/node": "^12.0.10", 28 | "chai": "^4.2.0", 29 | "koa": "^2.7.0", 30 | "koa-router": "^7.4.0", 31 | "mocha": "^6.1.4", 32 | "ts-node": "^8.3.0", 33 | "tslint": "^5.18.0" 34 | }, 35 | "version": "0.0.2" 36 | } 37 | -------------------------------------------------------------------------------- /tests/getApiFiles.ts: -------------------------------------------------------------------------------- 1 | import * as fs from 'fs'; 2 | import path from 'path'; 3 | 4 | export const getApiFiles = () => { 5 | const dir = path.resolve(__dirname, 'mocks'); 6 | 7 | return fs 8 | .readdirSync(dir) 9 | .filter( 10 | (fileName) => 11 | fileName.length >= 3 && fileName.substr(fileName.length - 3, 3) === '.ts', 12 | ) 13 | .map((vo) => path.join(dir, vo)); 14 | }; 15 | -------------------------------------------------------------------------------- /tests/koaServer.ts: -------------------------------------------------------------------------------- 1 | import Koa from 'koa'; 2 | import Router from 'koa-router'; 3 | import * as ts from 'typescript'; 4 | import { tsMockService } from '../lib/tsMock'; 5 | 6 | export function createServer(files: string[], jsonCompilerOptions?: ts.CompilerOptions, basePath?: string) { 7 | const app = new Koa(); 8 | const router = new Router(); 9 | 10 | const mocker = tsMockService(files, jsonCompilerOptions, basePath); 11 | 12 | app.use(async (ctx, next) => { 13 | try { 14 | await next(); 15 | } catch (error) { 16 | ctx.body = { msg: error.message }; 17 | } 18 | }); 19 | 20 | router.get('/mocks/:symbol', async (ctx) => { 21 | ctx.body = mocker.generateMock(ctx.params.symbol); 22 | }); 23 | 24 | router.get('/schemas/:symbol', async (ctx) => { 25 | ctx.body = mocker.generateSchema(ctx.params.symbol); 26 | }); 27 | 28 | router.get('/schemas', async (ctx) => { 29 | ctx.body = mocker.generateSchema(); 30 | }); 31 | 32 | router.get('/symbols', async (ctx) => { 33 | ctx.body = mocker.generator.getMainFileSymbols(mocker.program); 34 | }); 35 | 36 | app 37 | .use(router.routes()) 38 | .use(router.allowedMethods()); 39 | 40 | return app; 41 | } 42 | -------------------------------------------------------------------------------- /tests/mocks/api2.ts: -------------------------------------------------------------------------------- 1 | export enum Type { 2 | b, 3 | a = 'hahah', 4 | } 5 | 6 | export enum Type2 { 7 | b, 8 | a = 'hahah', 9 | } 10 | 11 | export interface IProps { 12 | /** 13 | * @minimum 1 14 | * @maximum 4 15 | * @type integer 16 | */ 17 | num: number; 18 | /** 19 | * @examples ["hello", "world"] 20 | */ 21 | title: string; 22 | /** 23 | * @description 类型 24 | */ 25 | type: 'a' | '12' | Type; 26 | } 27 | 28 | export interface IUser { 29 | id: string; 30 | nickname: string; 31 | } 32 | -------------------------------------------------------------------------------- /tests/mocks/my-file.ts: -------------------------------------------------------------------------------- 1 | export * from './api2'; 2 | -------------------------------------------------------------------------------- /tests/server.ts: -------------------------------------------------------------------------------- 1 | import { getApiFiles } from './getApiFiles'; 2 | import { createServer } from './koaServer'; 3 | 4 | createServer(getApiFiles()).listen(3000); 5 | -------------------------------------------------------------------------------- /tests/tsMock.test.ts: -------------------------------------------------------------------------------- 1 | import { assert } from 'chai'; 2 | import { tsMock, tsMockService } from '../lib/tsMock'; 3 | import { getApiFiles } from './getApiFiles'; 4 | 5 | // TODO: more unit test 6 | describe('tsMock', () => { 7 | const files = getApiFiles(); 8 | const mockData = tsMock(files).generateMock('IFoo'); 9 | assert.equal(mockData.a, 123); 10 | }); 11 | describe('tsMockService', () => { 12 | const files = getApiFiles(); 13 | 14 | const mocker = tsMockService(files); 15 | const mockData = mocker.generateMock('IFoo'); 16 | assert.equal(mockData.a, 123); 17 | }); 18 | -------------------------------------------------------------------------------- /tests/tt.ts: -------------------------------------------------------------------------------- 1 | import jsf from 'json-schema-faker'; 2 | import * as ts from 'typescript'; 3 | import { generateSchema } from 'typescript-json-schema'; 4 | 5 | export function tsMock(symbol, file: string, compilerOptions: ts.CompilerOptions) { 6 | const program = ts.createProgram([file], compilerOptions); 7 | const schema = generateSchema(program, symbol); 8 | return jsf.generate(schema, []); 9 | } 10 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "module": "commonjs", 5 | "moduleResolution": "node", 6 | "outDir": "dist", 7 | "isolatedModules": false, 8 | "esModuleInterop": true, 9 | "experimentalDecorators": true, 10 | "emitDecoratorMetadata": true, 11 | "declaration": true, 12 | "noImplicitAny": false, 13 | "suppressImplicitAnyIndexErrors": true, 14 | "strictNullChecks": true, 15 | "noImplicitReturns": true, 16 | "noFallthroughCasesInSwitch": true, 17 | "noUnusedLocals": true, 18 | "noUnusedParameters": true, 19 | "removeComments": true, 20 | "noLib": false, 21 | "preserveConstEnums": true, 22 | "sourceMap": true, 23 | "watch": false, 24 | "typeRoots" : ["node_modules/@types"] 25 | }, 26 | "include": [ 27 | "**/*.ts", 28 | "node_modules/@types/**/*.d.ts", 29 | "json-schema-faker.d.ts" 30 | ], 31 | "exclude": [ 32 | "node_modules", 33 | "example", 34 | "test/programs", 35 | "dist" 36 | ], 37 | "compileOnSave": true, 38 | "buildOnSave": false 39 | } 40 | -------------------------------------------------------------------------------- /tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "defaultSeverity": "error", 3 | "extends": [ 4 | "tslint:recommended" 5 | ], 6 | "jsRules": {}, 7 | "rules": { 8 | "quotemark": [true, "single", "jsx-double"], 9 | "no-console": [false], 10 | "object-literal-sort-keys": false 11 | }, 12 | "rulesDirectory": [] 13 | } 14 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/code-frame@^7.0.0": 6 | version "7.0.0" 7 | resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" 8 | integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA== 9 | dependencies: 10 | "@babel/highlight" "^7.0.0" 11 | 12 | "@babel/highlight@^7.0.0": 13 | version "7.0.0" 14 | resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" 15 | integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw== 16 | dependencies: 17 | chalk "^2.0.0" 18 | esutils "^2.0.2" 19 | js-tokens "^4.0.0" 20 | 21 | "@types/accepts@*": 22 | version "1.3.5" 23 | resolved "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz#c34bec115cfc746e04fe5a059df4ce7e7b391575" 24 | integrity sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ== 25 | dependencies: 26 | "@types/node" "*" 27 | 28 | "@types/body-parser@*": 29 | version "1.17.0" 30 | resolved "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.17.0.tgz#9f5c9d9bd04bb54be32d5eb9fc0d8c974e6cf58c" 31 | integrity sha512-a2+YeUjPkztKJu5aIF2yArYFQQp8d51wZ7DavSHjFuY1mqVgidGyzEQ41JIVNy82fXj8yPgy2vJmfIywgESW6w== 32 | dependencies: 33 | "@types/connect" "*" 34 | "@types/node" "*" 35 | 36 | "@types/chai@^4.1.7": 37 | version "4.1.7" 38 | resolved "https://registry.npmjs.org/@types/chai/-/chai-4.1.7.tgz#1b8e33b61a8c09cbe1f85133071baa0dbf9fa71a" 39 | integrity sha512-2Y8uPt0/jwjhQ6EiluT0XCri1Dbplr0ZxfFXUz+ye13gaqE8u5gL5ppao1JrUYr9cIip5S6MvQzBS7Kke7U9VA== 40 | 41 | "@types/connect@*": 42 | version "3.4.32" 43 | resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.32.tgz#aa0e9616b9435ccad02bc52b5b454ffc2c70ba28" 44 | integrity sha512-4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg== 45 | dependencies: 46 | "@types/node" "*" 47 | 48 | "@types/cookies@*": 49 | version "0.7.2" 50 | resolved "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.2.tgz#5e0560d46ed9998082dce799af1058dd6a49780a" 51 | integrity sha512-jnihWgshWystcJKrz8C9hV+Ot9lqOUyAh2RF+o3BEo6K6AS2l4zYCb9GYaBuZ3C6Il59uIGqpE3HvCun4KKeJA== 52 | dependencies: 53 | "@types/connect" "*" 54 | "@types/express" "*" 55 | "@types/keygrip" "*" 56 | "@types/node" "*" 57 | 58 | "@types/express-serve-static-core@*": 59 | version "4.16.7" 60 | resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.16.7.tgz#50ba6f8a691c08a3dd9fa7fba25ef3133d298049" 61 | integrity sha512-847KvL8Q1y3TtFLRTXcVakErLJQgdpFSaq+k043xefz9raEf0C7HalpSY7OW5PyjCnY8P7bPW5t/Co9qqp+USg== 62 | dependencies: 63 | "@types/node" "*" 64 | "@types/range-parser" "*" 65 | 66 | "@types/express@*": 67 | version "4.17.0" 68 | resolved "https://registry.npmjs.org/@types/express/-/express-4.17.0.tgz#49eaedb209582a86f12ed9b725160f12d04ef287" 69 | integrity sha512-CjaMu57cjgjuZbh9DpkloeGxV45CnMGlVd+XpG7Gm9QgVrd7KFq+X4HY0vM+2v0bczS48Wg7bvnMY5TN+Xmcfw== 70 | dependencies: 71 | "@types/body-parser" "*" 72 | "@types/express-serve-static-core" "*" 73 | "@types/serve-static" "*" 74 | 75 | "@types/faker@^4.1.5": 76 | version "4.1.5" 77 | resolved "https://registry.npmjs.org/@types/faker/-/faker-4.1.5.tgz#8f620f9c9a67150aa0a32b4e8a407da43fca61d4" 78 | integrity sha512-YSDqoBEWYGdNk53xSkkb6REaUaVSlIjxIAGjj/nbLzlZOit7kUU+nA2zC2qQkIVO4MQ+3zl4Sz7aw+kbpHHHUQ== 79 | 80 | "@types/http-assert@*": 81 | version "1.4.0" 82 | resolved "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.4.0.tgz#41d173466e396e99a14d75f7160cc997f2f9ed8b" 83 | integrity sha512-TZDqvFW4nQwL9DVSNJIJu4lPLttKgzRF58COa7Vs42Ki/MrhIqUbeIw0MWn4kGLiZLXB7oCBibm7nkSjPkzfKQ== 84 | 85 | "@types/keygrip@*": 86 | version "1.0.1" 87 | resolved "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.1.tgz#ff540462d2fb4d0a88441ceaf27d287b01c3d878" 88 | integrity sha1-/1QEYtL7TQqIRBzq8n0oewHD2Hg= 89 | 90 | "@types/koa-compose@*": 91 | version "3.2.4" 92 | resolved "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.4.tgz#76a461634a59c3e13449831708bb9b355fb1548e" 93 | integrity sha512-ioou0rxkuWL+yBQYsHUQAzRTfVxAg8Y2VfMftU+Y3RA03/MzuFL0x/M2sXXj3PkfnENbHsjeHR1aMdezLYpTeA== 94 | dependencies: 95 | "@types/koa" "*" 96 | 97 | "@types/koa@*", "@types/koa@^2.0.48": 98 | version "2.0.48" 99 | resolved "https://registry.npmjs.org/@types/koa/-/koa-2.0.48.tgz#29162783029d3e5df8b58c55f6bf0d35f78fc39f" 100 | integrity sha512-CiIUYhHlOFJhSCTmsFoFkV2t9ij1JwW26nt0W9XZoWTvmAw6zTE0+k3IAoGICtjzIfhZpZcO323NHmI1LGmdDw== 101 | dependencies: 102 | "@types/accepts" "*" 103 | "@types/cookies" "*" 104 | "@types/http-assert" "*" 105 | "@types/keygrip" "*" 106 | "@types/koa-compose" "*" 107 | "@types/node" "*" 108 | 109 | "@types/mime@*": 110 | version "2.0.1" 111 | resolved "https://registry.npmjs.org/@types/mime/-/mime-2.0.1.tgz#dc488842312a7f075149312905b5e3c0b054c79d" 112 | integrity sha512-FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw== 113 | 114 | "@types/mocha@^5.2.7": 115 | version "5.2.7" 116 | resolved "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz#315d570ccb56c53452ff8638738df60726d5b6ea" 117 | integrity sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ== 118 | 119 | "@types/node@*", "@types/node@^12.0.10": 120 | version "12.0.10" 121 | resolved "https://registry.npmjs.org/@types/node/-/node-12.0.10.tgz#51babf9c7deadd5343620055fc8aff7995c8b031" 122 | integrity sha512-LcsGbPomWsad6wmMNv7nBLw7YYYyfdYcz6xryKYQhx89c3XXan+8Q6AJ43G5XDIaklaVkK3mE4fCb0SBvMiPSQ== 123 | 124 | "@types/range-parser@*": 125 | version "1.2.3" 126 | resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c" 127 | integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA== 128 | 129 | "@types/serve-static@*": 130 | version "1.13.2" 131 | resolved "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.2.tgz#f5ac4d7a6420a99a6a45af4719f4dcd8cd907a48" 132 | integrity sha512-/BZ4QRLpH/bNYgZgwhKEh+5AsboDBcUdlBYgzoLX0fpj3Y2gp6EApyOlM3bK53wQS/OE1SrdSYBAbux2D1528Q== 133 | dependencies: 134 | "@types/express-serve-static-core" "*" 135 | "@types/mime" "*" 136 | 137 | accepts@^1.3.5: 138 | version "1.3.7" 139 | resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" 140 | integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== 141 | dependencies: 142 | mime-types "~2.1.24" 143 | negotiator "0.6.2" 144 | 145 | ansi-colors@3.2.3: 146 | version "3.2.3" 147 | resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813" 148 | integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw== 149 | 150 | ansi-regex@^2.0.0: 151 | version "2.1.1" 152 | resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 153 | integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= 154 | 155 | ansi-regex@^3.0.0: 156 | version "3.0.0" 157 | resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 158 | integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= 159 | 160 | ansi-regex@^4.1.0: 161 | version "4.1.0" 162 | resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" 163 | integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== 164 | 165 | ansi-styles@^3.2.0, ansi-styles@^3.2.1: 166 | version "3.2.1" 167 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 168 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 169 | dependencies: 170 | color-convert "^1.9.0" 171 | 172 | any-promise@^1.1.0: 173 | version "1.3.0" 174 | resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" 175 | integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= 176 | 177 | arg@^4.1.0: 178 | version "4.1.0" 179 | resolved "https://registry.npmjs.org/arg/-/arg-4.1.0.tgz#583c518199419e0037abb74062c37f8519e575f0" 180 | integrity sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg== 181 | 182 | argparse@^1.0.7: 183 | version "1.0.10" 184 | resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 185 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== 186 | dependencies: 187 | sprintf-js "~1.0.2" 188 | 189 | assertion-error@^1.1.0: 190 | version "1.1.0" 191 | resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" 192 | integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== 193 | 194 | balanced-match@^1.0.0: 195 | version "1.0.0" 196 | resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 197 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= 198 | 199 | brace-expansion@^1.1.7: 200 | version "1.1.11" 201 | resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 202 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 203 | dependencies: 204 | balanced-match "^1.0.0" 205 | concat-map "0.0.1" 206 | 207 | browser-stdout@1.3.1: 208 | version "1.3.1" 209 | resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" 210 | integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== 211 | 212 | buffer-from@^1.0.0: 213 | version "1.1.1" 214 | resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" 215 | integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== 216 | 217 | builtin-modules@^1.1.1: 218 | version "1.1.1" 219 | resolved "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" 220 | integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= 221 | 222 | cache-content-type@^1.0.0: 223 | version "1.0.1" 224 | resolved "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz#035cde2b08ee2129f4a8315ea8f00a00dba1453c" 225 | integrity sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA== 226 | dependencies: 227 | mime-types "^2.1.18" 228 | ylru "^1.2.0" 229 | 230 | call-me-maybe@^1.0.1: 231 | version "1.0.1" 232 | resolved "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" 233 | integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= 234 | 235 | camelcase@^5.0.0: 236 | version "5.3.1" 237 | resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" 238 | integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== 239 | 240 | chai@^4.2.0: 241 | version "4.2.0" 242 | resolved "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz#760aa72cf20e3795e84b12877ce0e83737aa29e5" 243 | integrity sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw== 244 | dependencies: 245 | assertion-error "^1.1.0" 246 | check-error "^1.0.2" 247 | deep-eql "^3.0.1" 248 | get-func-name "^2.0.0" 249 | pathval "^1.1.0" 250 | type-detect "^4.0.5" 251 | 252 | chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.0: 253 | version "2.4.2" 254 | resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 255 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 256 | dependencies: 257 | ansi-styles "^3.2.1" 258 | escape-string-regexp "^1.0.5" 259 | supports-color "^5.3.0" 260 | 261 | check-error@^1.0.2: 262 | version "1.0.2" 263 | resolved "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" 264 | integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= 265 | 266 | cliui@^4.0.0: 267 | version "4.1.0" 268 | resolved "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" 269 | integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== 270 | dependencies: 271 | string-width "^2.1.1" 272 | strip-ansi "^4.0.0" 273 | wrap-ansi "^2.0.0" 274 | 275 | cliui@^5.0.0: 276 | version "5.0.0" 277 | resolved "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" 278 | integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== 279 | dependencies: 280 | string-width "^3.1.0" 281 | strip-ansi "^5.2.0" 282 | wrap-ansi "^5.1.0" 283 | 284 | co@^4.6.0: 285 | version "4.6.0" 286 | resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 287 | integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= 288 | 289 | code-point-at@^1.0.0: 290 | version "1.1.0" 291 | resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 292 | integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= 293 | 294 | color-convert@^1.9.0: 295 | version "1.9.3" 296 | resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 297 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 298 | dependencies: 299 | color-name "1.1.3" 300 | 301 | color-name@1.1.3: 302 | version "1.1.3" 303 | resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 304 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 305 | 306 | commander@^2.12.1, commander@^2.20.0: 307 | version "2.20.0" 308 | resolved "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" 309 | integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== 310 | 311 | concat-map@0.0.1: 312 | version "0.0.1" 313 | resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 314 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 315 | 316 | content-disposition@~0.5.2: 317 | version "0.5.3" 318 | resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" 319 | integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== 320 | dependencies: 321 | safe-buffer "5.1.2" 322 | 323 | content-type@^1.0.4: 324 | version "1.0.4" 325 | resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" 326 | integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== 327 | 328 | cookies@~0.7.1: 329 | version "0.7.3" 330 | resolved "https://registry.npmjs.org/cookies/-/cookies-0.7.3.tgz#7912ce21fbf2e8c2da70cf1c3f351aecf59dadfa" 331 | integrity sha512-+gixgxYSgQLTaTIilDHAdlNPZDENDQernEMiIcZpYYP14zgHsCt4Ce1FEjFtcp6GefhozebB6orvhAAWx/IS0A== 332 | dependencies: 333 | depd "~1.1.2" 334 | keygrip "~1.0.3" 335 | 336 | cross-spawn@^6.0.0: 337 | version "6.0.5" 338 | resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" 339 | integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== 340 | dependencies: 341 | nice-try "^1.0.4" 342 | path-key "^2.0.1" 343 | semver "^5.5.0" 344 | shebang-command "^1.2.0" 345 | which "^1.2.9" 346 | 347 | debug@3.2.6, debug@^3.1.0: 348 | version "3.2.6" 349 | resolved "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" 350 | integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== 351 | dependencies: 352 | ms "^2.1.1" 353 | 354 | debug@~3.1.0: 355 | version "3.1.0" 356 | resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" 357 | integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== 358 | dependencies: 359 | ms "2.0.0" 360 | 361 | decamelize@^1.2.0: 362 | version "1.2.0" 363 | resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 364 | integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= 365 | 366 | deep-eql@^3.0.1: 367 | version "3.0.1" 368 | resolved "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" 369 | integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== 370 | dependencies: 371 | type-detect "^4.0.0" 372 | 373 | deep-equal@~1.0.1: 374 | version "1.0.1" 375 | resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" 376 | integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= 377 | 378 | deep-is@~0.1.3: 379 | version "0.1.3" 380 | resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 381 | integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= 382 | 383 | define-properties@^1.1.2: 384 | version "1.1.3" 385 | resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" 386 | integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== 387 | dependencies: 388 | object-keys "^1.0.12" 389 | 390 | delegates@^1.0.0: 391 | version "1.0.0" 392 | resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" 393 | integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= 394 | 395 | depd@^1.1.2, depd@~1.1.2: 396 | version "1.1.2" 397 | resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" 398 | integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= 399 | 400 | destroy@^1.0.4: 401 | version "1.0.4" 402 | resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" 403 | integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= 404 | 405 | diff@3.5.0, diff@^3.2.0: 406 | version "3.5.0" 407 | resolved "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" 408 | integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== 409 | 410 | diff@^4.0.1: 411 | version "4.0.1" 412 | resolved "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz#0c667cb467ebbb5cea7f14f135cc2dba7780a8ff" 413 | integrity sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q== 414 | 415 | drange@^1.0.2: 416 | version "1.1.1" 417 | resolved "https://registry.npmjs.org/drange/-/drange-1.1.1.tgz#b2aecec2aab82fcef11dbbd7b9e32b83f8f6c0b8" 418 | integrity sha512-pYxfDYpued//QpnLIm4Avk7rsNtAtQkUES2cwAYSvD/wd2pKD71gN2Ebj3e7klzXwjocvE8c5vx/1fxwpqmSxA== 419 | 420 | ee-first@1.1.1: 421 | version "1.1.1" 422 | resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 423 | integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= 424 | 425 | emoji-regex@^7.0.1: 426 | version "7.0.3" 427 | resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" 428 | integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== 429 | 430 | end-of-stream@^1.1.0: 431 | version "1.4.1" 432 | resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" 433 | integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== 434 | dependencies: 435 | once "^1.4.0" 436 | 437 | error-inject@^1.0.0: 438 | version "1.0.0" 439 | resolved "https://registry.npmjs.org/error-inject/-/error-inject-1.0.0.tgz#e2b3d91b54aed672f309d950d154850fa11d4f37" 440 | integrity sha1-4rPZG1Su1nLzCdlQ0VSFD6EdTzc= 441 | 442 | es-abstract@^1.5.1: 443 | version "1.13.0" 444 | resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" 445 | integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg== 446 | dependencies: 447 | es-to-primitive "^1.2.0" 448 | function-bind "^1.1.1" 449 | has "^1.0.3" 450 | is-callable "^1.1.4" 451 | is-regex "^1.0.4" 452 | object-keys "^1.0.12" 453 | 454 | es-to-primitive@^1.2.0: 455 | version "1.2.0" 456 | resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" 457 | integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== 458 | dependencies: 459 | is-callable "^1.1.4" 460 | is-date-object "^1.0.1" 461 | is-symbol "^1.0.2" 462 | 463 | escape-html@^1.0.3: 464 | version "1.0.3" 465 | resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 466 | integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= 467 | 468 | escape-string-regexp@1.0.5, escape-string-regexp@^1.0.5: 469 | version "1.0.5" 470 | resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 471 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 472 | 473 | escodegen@^1.8.1: 474 | version "1.11.1" 475 | resolved "https://registry.npmjs.org/escodegen/-/escodegen-1.11.1.tgz#c485ff8d6b4cdb89e27f4a856e91f118401ca510" 476 | integrity sha512-JwiqFD9KdGVVpeuRa68yU3zZnBEOcPs0nKW7wZzXky8Z7tffdYUHbe11bPCV5jYlK6DVdKLWLm0f5I/QlL0Kmw== 477 | dependencies: 478 | esprima "^3.1.3" 479 | estraverse "^4.2.0" 480 | esutils "^2.0.2" 481 | optionator "^0.8.1" 482 | optionalDependencies: 483 | source-map "~0.6.1" 484 | 485 | esprima@1.2.2: 486 | version "1.2.2" 487 | resolved "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz#76a0fd66fcfe154fd292667dc264019750b1657b" 488 | integrity sha1-dqD9Zvz+FU/SkmZ9wmQBl1CxZXs= 489 | 490 | esprima@^3.1.3: 491 | version "3.1.3" 492 | resolved "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" 493 | integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= 494 | 495 | esprima@^4.0.0: 496 | version "4.0.1" 497 | resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 498 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== 499 | 500 | estraverse@^4.2.0: 501 | version "4.2.0" 502 | resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" 503 | integrity sha1-De4/7TH81GlhjOc0IJn8GvoL2xM= 504 | 505 | esutils@^2.0.2: 506 | version "2.0.2" 507 | resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 508 | integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs= 509 | 510 | execa@^1.0.0: 511 | version "1.0.0" 512 | resolved "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" 513 | integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== 514 | dependencies: 515 | cross-spawn "^6.0.0" 516 | get-stream "^4.0.0" 517 | is-stream "^1.1.0" 518 | npm-run-path "^2.0.0" 519 | p-finally "^1.0.0" 520 | signal-exit "^3.0.0" 521 | strip-eof "^1.0.0" 522 | 523 | faker@^4.1.0: 524 | version "4.1.0" 525 | resolved "https://registry.npmjs.org/faker/-/faker-4.1.0.tgz#1e45bbbecc6774b3c195fad2835109c6d748cc3f" 526 | integrity sha1-HkW7vsxndLPBlfrSg1EJxtdIzD8= 527 | 528 | fast-levenshtein@~2.0.4: 529 | version "2.0.6" 530 | resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 531 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= 532 | 533 | find-up@3.0.0, find-up@^3.0.0: 534 | version "3.0.0" 535 | resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" 536 | integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== 537 | dependencies: 538 | locate-path "^3.0.0" 539 | 540 | flat@^4.1.0: 541 | version "4.1.0" 542 | resolved "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz#090bec8b05e39cba309747f1d588f04dbaf98db2" 543 | integrity sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw== 544 | dependencies: 545 | is-buffer "~2.0.3" 546 | 547 | format-util@^1.0.3: 548 | version "1.0.3" 549 | resolved "https://registry.npmjs.org/format-util/-/format-util-1.0.3.tgz#032dca4a116262a12c43f4c3ec8566416c5b2d95" 550 | integrity sha1-Ay3KShFiYqEsQ/TD7IVmQWxbLZU= 551 | 552 | fresh@~0.5.2: 553 | version "0.5.2" 554 | resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 555 | integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= 556 | 557 | fs.realpath@^1.0.0: 558 | version "1.0.0" 559 | resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 560 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 561 | 562 | function-bind@^1.1.1: 563 | version "1.1.1" 564 | resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 565 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 566 | 567 | get-caller-file@^1.0.1: 568 | version "1.0.3" 569 | resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" 570 | integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== 571 | 572 | get-caller-file@^2.0.1: 573 | version "2.0.5" 574 | resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" 575 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== 576 | 577 | get-func-name@^2.0.0: 578 | version "2.0.0" 579 | resolved "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" 580 | integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= 581 | 582 | get-stream@^4.0.0: 583 | version "4.1.0" 584 | resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" 585 | integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== 586 | dependencies: 587 | pump "^3.0.0" 588 | 589 | glob@7.1.3: 590 | version "7.1.3" 591 | resolved "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" 592 | integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== 593 | dependencies: 594 | fs.realpath "^1.0.0" 595 | inflight "^1.0.4" 596 | inherits "2" 597 | minimatch "^3.0.4" 598 | once "^1.3.0" 599 | path-is-absolute "^1.0.0" 600 | 601 | glob@^7.1.1, glob@~7.1.4: 602 | version "7.1.4" 603 | resolved "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" 604 | integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== 605 | dependencies: 606 | fs.realpath "^1.0.0" 607 | inflight "^1.0.4" 608 | inherits "2" 609 | minimatch "^3.0.4" 610 | once "^1.3.0" 611 | path-is-absolute "^1.0.0" 612 | 613 | growl@1.10.5: 614 | version "1.10.5" 615 | resolved "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" 616 | integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== 617 | 618 | has-flag@^3.0.0: 619 | version "3.0.0" 620 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 621 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 622 | 623 | has-symbols@^1.0.0: 624 | version "1.0.0" 625 | resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" 626 | integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= 627 | 628 | has@^1.0.1, has@^1.0.3: 629 | version "1.0.3" 630 | resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 631 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 632 | dependencies: 633 | function-bind "^1.1.1" 634 | 635 | he@1.2.0: 636 | version "1.2.0" 637 | resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" 638 | integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== 639 | 640 | http-assert@^1.3.0: 641 | version "1.4.1" 642 | resolved "https://registry.npmjs.org/http-assert/-/http-assert-1.4.1.tgz#c5f725d677aa7e873ef736199b89686cceb37878" 643 | integrity sha512-rdw7q6GTlibqVVbXr0CKelfV5iY8G2HqEUkhSk297BMbSpSL8crXC+9rjKoMcZZEsksX30le6f/4ul4E28gegw== 644 | dependencies: 645 | deep-equal "~1.0.1" 646 | http-errors "~1.7.2" 647 | 648 | http-errors@^1.3.1, http-errors@^1.6.3, http-errors@~1.7.2: 649 | version "1.7.3" 650 | resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" 651 | integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== 652 | dependencies: 653 | depd "~1.1.2" 654 | inherits "2.0.4" 655 | setprototypeof "1.1.1" 656 | statuses ">= 1.5.0 < 2" 657 | toidentifier "1.0.0" 658 | 659 | inflight@^1.0.4: 660 | version "1.0.6" 661 | resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 662 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 663 | dependencies: 664 | once "^1.3.0" 665 | wrappy "1" 666 | 667 | inherits@2, inherits@2.0.4: 668 | version "2.0.4" 669 | resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 670 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 671 | 672 | invert-kv@^2.0.0: 673 | version "2.0.0" 674 | resolved "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" 675 | integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== 676 | 677 | is-buffer@~2.0.3: 678 | version "2.0.3" 679 | resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz#4ecf3fcf749cbd1e472689e109ac66261a25e725" 680 | integrity sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw== 681 | 682 | is-callable@^1.1.4: 683 | version "1.1.4" 684 | resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" 685 | integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== 686 | 687 | is-date-object@^1.0.1: 688 | version "1.0.1" 689 | resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" 690 | integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= 691 | 692 | is-fullwidth-code-point@^1.0.0: 693 | version "1.0.0" 694 | resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 695 | integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= 696 | dependencies: 697 | number-is-nan "^1.0.0" 698 | 699 | is-fullwidth-code-point@^2.0.0: 700 | version "2.0.0" 701 | resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 702 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= 703 | 704 | is-generator-function@^1.0.7: 705 | version "1.0.7" 706 | resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.7.tgz#d2132e529bb0000a7f80794d4bdf5cd5e5813522" 707 | integrity sha512-YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw== 708 | 709 | is-regex@^1.0.4: 710 | version "1.0.4" 711 | resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" 712 | integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= 713 | dependencies: 714 | has "^1.0.1" 715 | 716 | is-stream@^1.1.0: 717 | version "1.1.0" 718 | resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 719 | integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= 720 | 721 | is-symbol@^1.0.2: 722 | version "1.0.2" 723 | resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" 724 | integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== 725 | dependencies: 726 | has-symbols "^1.0.0" 727 | 728 | isarray@0.0.1: 729 | version "0.0.1" 730 | resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" 731 | integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= 732 | 733 | isexe@^2.0.0: 734 | version "2.0.0" 735 | resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 736 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 737 | 738 | js-tokens@^4.0.0: 739 | version "4.0.0" 740 | resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 741 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 742 | 743 | js-yaml@3.13.1, js-yaml@^3.12.1, js-yaml@^3.13.1: 744 | version "3.13.1" 745 | resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" 746 | integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== 747 | dependencies: 748 | argparse "^1.0.7" 749 | esprima "^4.0.0" 750 | 751 | json-schema-faker@^0.5.0-rc17: 752 | version "0.5.0-rc17" 753 | resolved "https://registry.npmjs.org/json-schema-faker/-/json-schema-faker-0.5.0-rc17.tgz#d9c78ef0e2a891077a08c9660b7bfa3419e722d2" 754 | integrity sha512-ZQSLPpnsGiMBuPOHi09cAzhsiIeOcs5im2GAQ2P6XKyWOuetO8eYdYCP/kW7VVU891Ucan0/dl8GYbRA6pf9gw== 755 | dependencies: 756 | json-schema-ref-parser "^6.0.2" 757 | jsonpath "^1.0.1" 758 | randexp "^0.5.3" 759 | 760 | json-schema-ref-parser@^6.0.2: 761 | version "6.1.0" 762 | resolved "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-6.1.0.tgz#30af34aeab5bee0431da805dac0eb21b574bf63d" 763 | integrity sha512-pXe9H1m6IgIpXmE5JSb8epilNTGsmTb2iPohAXpOdhqGFbQjNeHHsZxU+C8w6T81GZxSPFLeUoqDJmzxx5IGuw== 764 | dependencies: 765 | call-me-maybe "^1.0.1" 766 | js-yaml "^3.12.1" 767 | ono "^4.0.11" 768 | 769 | json-stable-stringify@^1.0.1: 770 | version "1.0.1" 771 | resolved "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" 772 | integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= 773 | dependencies: 774 | jsonify "~0.0.0" 775 | 776 | jsonify@~0.0.0: 777 | version "0.0.0" 778 | resolved "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" 779 | integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= 780 | 781 | jsonpath@^1.0.1: 782 | version "1.0.2" 783 | resolved "https://registry.npmjs.org/jsonpath/-/jsonpath-1.0.2.tgz#e6aae681d03e9a77b4651d5d96eac5fc63b1fd13" 784 | integrity sha512-rmzlgFZiQPc6q4HDyK8s9Qb4oxBnI5sF61y/Co5PV0lc3q2bIuRsNdueVbhoSHdKM4fxeimphOAtfz47yjCfeA== 785 | dependencies: 786 | esprima "1.2.2" 787 | static-eval "2.0.2" 788 | underscore "1.7.0" 789 | 790 | keygrip@~1.0.3: 791 | version "1.0.3" 792 | resolved "https://registry.npmjs.org/keygrip/-/keygrip-1.0.3.tgz#399d709f0aed2bab0a059e0cdd3a5023a053e1dc" 793 | integrity sha512-/PpesirAIfaklxUzp4Yb7xBper9MwP6hNRA6BGGUFCgbJ+BM5CKBtsoxinNXkLHAr+GXS1/lSlF2rP7cv5Fl+g== 794 | 795 | koa-compose@^3.0.0: 796 | version "3.2.1" 797 | resolved "https://registry.npmjs.org/koa-compose/-/koa-compose-3.2.1.tgz#a85ccb40b7d986d8e5a345b3a1ace8eabcf54de7" 798 | integrity sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec= 799 | dependencies: 800 | any-promise "^1.1.0" 801 | 802 | koa-compose@^4.1.0: 803 | version "4.1.0" 804 | resolved "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz#507306b9371901db41121c812e923d0d67d3e877" 805 | integrity sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw== 806 | 807 | koa-convert@^1.2.0: 808 | version "1.2.0" 809 | resolved "https://registry.npmjs.org/koa-convert/-/koa-convert-1.2.0.tgz#da40875df49de0539098d1700b50820cebcd21d0" 810 | integrity sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA= 811 | dependencies: 812 | co "^4.6.0" 813 | koa-compose "^3.0.0" 814 | 815 | koa-is-json@^1.0.0: 816 | version "1.0.0" 817 | resolved "https://registry.npmjs.org/koa-is-json/-/koa-is-json-1.0.0.tgz#273c07edcdcb8df6a2c1ab7d59ee76491451ec14" 818 | integrity sha1-JzwH7c3Ljfaiwat9We52SRRR7BQ= 819 | 820 | koa-router@^7.4.0: 821 | version "7.4.0" 822 | resolved "https://registry.npmjs.org/koa-router/-/koa-router-7.4.0.tgz#aee1f7adc02d5cb31d7d67465c9eacc825e8c5e0" 823 | integrity sha512-IWhaDXeAnfDBEpWS6hkGdZ1ablgr6Q6pGdXCyK38RbzuH4LkUOpPqPw+3f8l8aTDrQmBQ7xJc0bs2yV4dzcO+g== 824 | dependencies: 825 | debug "^3.1.0" 826 | http-errors "^1.3.1" 827 | koa-compose "^3.0.0" 828 | methods "^1.0.1" 829 | path-to-regexp "^1.1.1" 830 | urijs "^1.19.0" 831 | 832 | koa@^2.7.0: 833 | version "2.7.0" 834 | resolved "https://registry.npmjs.org/koa/-/koa-2.7.0.tgz#7e00843506942b9d82c6cc33749f657c6e5e7adf" 835 | integrity sha512-7ojD05s2Q+hFudF8tDLZ1CpCdVZw8JQELWSkcfG9bdtoTDzMmkRF6BQBU7JzIzCCOY3xd3tftiy/loHBUYaY2Q== 836 | dependencies: 837 | accepts "^1.3.5" 838 | cache-content-type "^1.0.0" 839 | content-disposition "~0.5.2" 840 | content-type "^1.0.4" 841 | cookies "~0.7.1" 842 | debug "~3.1.0" 843 | delegates "^1.0.0" 844 | depd "^1.1.2" 845 | destroy "^1.0.4" 846 | error-inject "^1.0.0" 847 | escape-html "^1.0.3" 848 | fresh "~0.5.2" 849 | http-assert "^1.3.0" 850 | http-errors "^1.6.3" 851 | is-generator-function "^1.0.7" 852 | koa-compose "^4.1.0" 853 | koa-convert "^1.2.0" 854 | koa-is-json "^1.0.0" 855 | on-finished "^2.3.0" 856 | only "~0.0.2" 857 | parseurl "^1.3.2" 858 | statuses "^1.5.0" 859 | type-is "^1.6.16" 860 | vary "^1.1.2" 861 | 862 | lcid@^2.0.0: 863 | version "2.0.0" 864 | resolved "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" 865 | integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== 866 | dependencies: 867 | invert-kv "^2.0.0" 868 | 869 | levn@~0.3.0: 870 | version "0.3.0" 871 | resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" 872 | integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= 873 | dependencies: 874 | prelude-ls "~1.1.2" 875 | type-check "~0.3.2" 876 | 877 | locate-path@^3.0.0: 878 | version "3.0.0" 879 | resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" 880 | integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== 881 | dependencies: 882 | p-locate "^3.0.0" 883 | path-exists "^3.0.0" 884 | 885 | lodash@^4.17.11: 886 | version "4.17.19" 887 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" 888 | integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== 889 | 890 | log-symbols@2.2.0: 891 | version "2.2.0" 892 | resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" 893 | integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== 894 | dependencies: 895 | chalk "^2.0.1" 896 | 897 | make-error@^1.1.1: 898 | version "1.3.5" 899 | resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8" 900 | integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g== 901 | 902 | map-age-cleaner@^0.1.1: 903 | version "0.1.3" 904 | resolved "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" 905 | integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== 906 | dependencies: 907 | p-defer "^1.0.0" 908 | 909 | media-typer@0.3.0: 910 | version "0.3.0" 911 | resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 912 | integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= 913 | 914 | mem@^4.0.0: 915 | version "4.3.0" 916 | resolved "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" 917 | integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== 918 | dependencies: 919 | map-age-cleaner "^0.1.1" 920 | mimic-fn "^2.0.0" 921 | p-is-promise "^2.0.0" 922 | 923 | methods@^1.0.1: 924 | version "1.1.2" 925 | resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 926 | integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= 927 | 928 | mime-db@1.40.0: 929 | version "1.40.0" 930 | resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" 931 | integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== 932 | 933 | mime-types@^2.1.18, mime-types@~2.1.24: 934 | version "2.1.24" 935 | resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" 936 | integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== 937 | dependencies: 938 | mime-db "1.40.0" 939 | 940 | mimic-fn@^2.0.0: 941 | version "2.1.0" 942 | resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" 943 | integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== 944 | 945 | minimatch@3.0.4, minimatch@^3.0.4: 946 | version "3.0.4" 947 | resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 948 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 949 | dependencies: 950 | brace-expansion "^1.1.7" 951 | 952 | minimist@0.0.8: 953 | version "0.0.8" 954 | resolved "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 955 | integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= 956 | 957 | mkdirp@0.5.1, mkdirp@^0.5.1: 958 | version "0.5.1" 959 | resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 960 | integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= 961 | dependencies: 962 | minimist "0.0.8" 963 | 964 | mocha@^6.1.4: 965 | version "6.1.4" 966 | resolved "https://registry.npmjs.org/mocha/-/mocha-6.1.4.tgz#e35fada242d5434a7e163d555c705f6875951640" 967 | integrity sha512-PN8CIy4RXsIoxoFJzS4QNnCH4psUCPWc4/rPrst/ecSJJbLBkubMiyGCP2Kj/9YnWbotFqAoeXyXMucj7gwCFg== 968 | dependencies: 969 | ansi-colors "3.2.3" 970 | browser-stdout "1.3.1" 971 | debug "3.2.6" 972 | diff "3.5.0" 973 | escape-string-regexp "1.0.5" 974 | find-up "3.0.0" 975 | glob "7.1.3" 976 | growl "1.10.5" 977 | he "1.2.0" 978 | js-yaml "3.13.1" 979 | log-symbols "2.2.0" 980 | minimatch "3.0.4" 981 | mkdirp "0.5.1" 982 | ms "2.1.1" 983 | node-environment-flags "1.0.5" 984 | object.assign "4.1.0" 985 | strip-json-comments "2.0.1" 986 | supports-color "6.0.0" 987 | which "1.3.1" 988 | wide-align "1.1.3" 989 | yargs "13.2.2" 990 | yargs-parser "13.0.0" 991 | yargs-unparser "1.5.0" 992 | 993 | ms@2.0.0: 994 | version "2.0.0" 995 | resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 996 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 997 | 998 | ms@2.1.1: 999 | version "2.1.1" 1000 | resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" 1001 | integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== 1002 | 1003 | ms@^2.1.1: 1004 | version "2.1.2" 1005 | resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 1006 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1007 | 1008 | negotiator@0.6.2: 1009 | version "0.6.2" 1010 | resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" 1011 | integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== 1012 | 1013 | nice-try@^1.0.4: 1014 | version "1.0.5" 1015 | resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" 1016 | integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== 1017 | 1018 | node-environment-flags@1.0.5: 1019 | version "1.0.5" 1020 | resolved "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz#fa930275f5bf5dae188d6192b24b4c8bbac3d76a" 1021 | integrity sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ== 1022 | dependencies: 1023 | object.getownpropertydescriptors "^2.0.3" 1024 | semver "^5.7.0" 1025 | 1026 | npm-run-path@^2.0.0: 1027 | version "2.0.2" 1028 | resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" 1029 | integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= 1030 | dependencies: 1031 | path-key "^2.0.0" 1032 | 1033 | number-is-nan@^1.0.0: 1034 | version "1.0.1" 1035 | resolved "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 1036 | integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= 1037 | 1038 | object-keys@^1.0.11, object-keys@^1.0.12: 1039 | version "1.1.1" 1040 | resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" 1041 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== 1042 | 1043 | object.assign@4.1.0: 1044 | version "4.1.0" 1045 | resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" 1046 | integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== 1047 | dependencies: 1048 | define-properties "^1.1.2" 1049 | function-bind "^1.1.1" 1050 | has-symbols "^1.0.0" 1051 | object-keys "^1.0.11" 1052 | 1053 | object.getownpropertydescriptors@^2.0.3: 1054 | version "2.0.3" 1055 | resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" 1056 | integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY= 1057 | dependencies: 1058 | define-properties "^1.1.2" 1059 | es-abstract "^1.5.1" 1060 | 1061 | on-finished@^2.3.0: 1062 | version "2.3.0" 1063 | resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" 1064 | integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= 1065 | dependencies: 1066 | ee-first "1.1.1" 1067 | 1068 | once@^1.3.0, once@^1.3.1, once@^1.4.0: 1069 | version "1.4.0" 1070 | resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1071 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 1072 | dependencies: 1073 | wrappy "1" 1074 | 1075 | only@~0.0.2: 1076 | version "0.0.2" 1077 | resolved "https://registry.npmjs.org/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4" 1078 | integrity sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q= 1079 | 1080 | ono@^4.0.11: 1081 | version "4.0.11" 1082 | resolved "https://registry.npmjs.org/ono/-/ono-4.0.11.tgz#c7f4209b3e396e8a44ef43b9cedc7f5d791d221d" 1083 | integrity sha512-jQ31cORBFE6td25deYeD80wxKBMj+zBmHTrVxnc6CKhx8gho6ipmWM5zj/oeoqioZ99yqBls9Z/9Nss7J26G2g== 1084 | dependencies: 1085 | format-util "^1.0.3" 1086 | 1087 | optionator@^0.8.1: 1088 | version "0.8.2" 1089 | resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" 1090 | integrity sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q= 1091 | dependencies: 1092 | deep-is "~0.1.3" 1093 | fast-levenshtein "~2.0.4" 1094 | levn "~0.3.0" 1095 | prelude-ls "~1.1.2" 1096 | type-check "~0.3.2" 1097 | wordwrap "~1.0.0" 1098 | 1099 | os-locale@^3.0.0, os-locale@^3.1.0: 1100 | version "3.1.0" 1101 | resolved "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" 1102 | integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== 1103 | dependencies: 1104 | execa "^1.0.0" 1105 | lcid "^2.0.0" 1106 | mem "^4.0.0" 1107 | 1108 | p-defer@^1.0.0: 1109 | version "1.0.0" 1110 | resolved "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" 1111 | integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= 1112 | 1113 | p-finally@^1.0.0: 1114 | version "1.0.0" 1115 | resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 1116 | integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= 1117 | 1118 | p-is-promise@^2.0.0: 1119 | version "2.1.0" 1120 | resolved "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" 1121 | integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== 1122 | 1123 | p-limit@^2.0.0: 1124 | version "2.2.0" 1125 | resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz#417c9941e6027a9abcba5092dd2904e255b5fbc2" 1126 | integrity sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ== 1127 | dependencies: 1128 | p-try "^2.0.0" 1129 | 1130 | p-locate@^3.0.0: 1131 | version "3.0.0" 1132 | resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" 1133 | integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== 1134 | dependencies: 1135 | p-limit "^2.0.0" 1136 | 1137 | p-try@^2.0.0: 1138 | version "2.2.0" 1139 | resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" 1140 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== 1141 | 1142 | parseurl@^1.3.2: 1143 | version "1.3.3" 1144 | resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" 1145 | integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== 1146 | 1147 | path-exists@^3.0.0: 1148 | version "3.0.0" 1149 | resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 1150 | integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= 1151 | 1152 | path-is-absolute@^1.0.0: 1153 | version "1.0.1" 1154 | resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1155 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 1156 | 1157 | path-key@^2.0.0, path-key@^2.0.1: 1158 | version "2.0.1" 1159 | resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 1160 | integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= 1161 | 1162 | path-parse@^1.0.6: 1163 | version "1.0.6" 1164 | resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" 1165 | integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== 1166 | 1167 | path-to-regexp@^1.1.1: 1168 | version "1.7.0" 1169 | resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" 1170 | integrity sha1-Wf3g9DW62suhA6hOnTvGTpa5k30= 1171 | dependencies: 1172 | isarray "0.0.1" 1173 | 1174 | pathval@^1.1.0: 1175 | version "1.1.0" 1176 | resolved "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" 1177 | integrity sha1-uULm1L3mUwBe9rcTYd74cn0GReA= 1178 | 1179 | prelude-ls@~1.1.2: 1180 | version "1.1.2" 1181 | resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 1182 | integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= 1183 | 1184 | pump@^3.0.0: 1185 | version "3.0.0" 1186 | resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" 1187 | integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== 1188 | dependencies: 1189 | end-of-stream "^1.1.0" 1190 | once "^1.3.1" 1191 | 1192 | randexp@^0.5.3: 1193 | version "0.5.3" 1194 | resolved "https://registry.npmjs.org/randexp/-/randexp-0.5.3.tgz#f31c2de3148b30bdeb84b7c3f59b0ebb9fec3738" 1195 | integrity sha512-U+5l2KrcMNOUPYvazA3h5ekF80FHTUG+87SEAmHZmolh1M+i/WyTCxVzmi+tidIa1tM4BSe8g2Y/D3loWDjj+w== 1196 | dependencies: 1197 | drange "^1.0.2" 1198 | ret "^0.2.0" 1199 | 1200 | require-directory@^2.1.1: 1201 | version "2.1.1" 1202 | resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 1203 | integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= 1204 | 1205 | require-main-filename@^1.0.1: 1206 | version "1.0.1" 1207 | resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" 1208 | integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= 1209 | 1210 | require-main-filename@^2.0.0: 1211 | version "2.0.0" 1212 | resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" 1213 | integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== 1214 | 1215 | resolve@^1.3.2: 1216 | version "1.11.1" 1217 | resolved "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz#ea10d8110376982fef578df8fc30b9ac30a07a3e" 1218 | integrity sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw== 1219 | dependencies: 1220 | path-parse "^1.0.6" 1221 | 1222 | ret@^0.2.0: 1223 | version "0.2.2" 1224 | resolved "https://registry.npmjs.org/ret/-/ret-0.2.2.tgz#b6861782a1f4762dce43402a71eb7a283f44573c" 1225 | integrity sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ== 1226 | 1227 | safe-buffer@5.1.2: 1228 | version "5.1.2" 1229 | resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 1230 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 1231 | 1232 | semver@^5.3.0, semver@^5.5.0, semver@^5.7.0: 1233 | version "5.7.0" 1234 | resolved "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" 1235 | integrity sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA== 1236 | 1237 | set-blocking@^2.0.0: 1238 | version "2.0.0" 1239 | resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 1240 | integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= 1241 | 1242 | setprototypeof@1.1.1: 1243 | version "1.1.1" 1244 | resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" 1245 | integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== 1246 | 1247 | shebang-command@^1.2.0: 1248 | version "1.2.0" 1249 | resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 1250 | integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= 1251 | dependencies: 1252 | shebang-regex "^1.0.0" 1253 | 1254 | shebang-regex@^1.0.0: 1255 | version "1.0.0" 1256 | resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 1257 | integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= 1258 | 1259 | signal-exit@^3.0.0: 1260 | version "3.0.2" 1261 | resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 1262 | integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= 1263 | 1264 | source-map-support@^0.5.6: 1265 | version "0.5.12" 1266 | resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599" 1267 | integrity sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ== 1268 | dependencies: 1269 | buffer-from "^1.0.0" 1270 | source-map "^0.6.0" 1271 | 1272 | source-map@^0.6.0, source-map@~0.6.1: 1273 | version "0.6.1" 1274 | resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 1275 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 1276 | 1277 | sprintf-js@~1.0.2: 1278 | version "1.0.3" 1279 | resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 1280 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= 1281 | 1282 | static-eval@2.0.2: 1283 | version "2.0.2" 1284 | resolved "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz#2d1759306b1befa688938454c546b7871f806a42" 1285 | integrity sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg== 1286 | dependencies: 1287 | escodegen "^1.8.1" 1288 | 1289 | "statuses@>= 1.5.0 < 2", statuses@^1.5.0: 1290 | version "1.5.0" 1291 | resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" 1292 | integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= 1293 | 1294 | string-width@^1.0.1: 1295 | version "1.0.2" 1296 | resolved "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 1297 | integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= 1298 | dependencies: 1299 | code-point-at "^1.0.0" 1300 | is-fullwidth-code-point "^1.0.0" 1301 | strip-ansi "^3.0.0" 1302 | 1303 | "string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1: 1304 | version "2.1.1" 1305 | resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 1306 | integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== 1307 | dependencies: 1308 | is-fullwidth-code-point "^2.0.0" 1309 | strip-ansi "^4.0.0" 1310 | 1311 | string-width@^3.0.0, string-width@^3.1.0: 1312 | version "3.1.0" 1313 | resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" 1314 | integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== 1315 | dependencies: 1316 | emoji-regex "^7.0.1" 1317 | is-fullwidth-code-point "^2.0.0" 1318 | strip-ansi "^5.1.0" 1319 | 1320 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 1321 | version "3.0.1" 1322 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 1323 | integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= 1324 | dependencies: 1325 | ansi-regex "^2.0.0" 1326 | 1327 | strip-ansi@^4.0.0: 1328 | version "4.0.0" 1329 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 1330 | integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= 1331 | dependencies: 1332 | ansi-regex "^3.0.0" 1333 | 1334 | strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: 1335 | version "5.2.0" 1336 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" 1337 | integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== 1338 | dependencies: 1339 | ansi-regex "^4.1.0" 1340 | 1341 | strip-eof@^1.0.0: 1342 | version "1.0.0" 1343 | resolved "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 1344 | integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= 1345 | 1346 | strip-json-comments@2.0.1: 1347 | version "2.0.1" 1348 | resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 1349 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= 1350 | 1351 | supports-color@6.0.0: 1352 | version "6.0.0" 1353 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz#76cfe742cf1f41bb9b1c29ad03068c05b4c0e40a" 1354 | integrity sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg== 1355 | dependencies: 1356 | has-flag "^3.0.0" 1357 | 1358 | supports-color@^5.3.0: 1359 | version "5.5.0" 1360 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1361 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1362 | dependencies: 1363 | has-flag "^3.0.0" 1364 | 1365 | toidentifier@1.0.0: 1366 | version "1.0.0" 1367 | resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" 1368 | integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== 1369 | 1370 | ts-node@^8.3.0: 1371 | version "8.3.0" 1372 | resolved "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz#e4059618411371924a1fb5f3b125915f324efb57" 1373 | integrity sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ== 1374 | dependencies: 1375 | arg "^4.1.0" 1376 | diff "^4.0.1" 1377 | make-error "^1.1.1" 1378 | source-map-support "^0.5.6" 1379 | yn "^3.0.0" 1380 | 1381 | tslib@^1.8.0, tslib@^1.8.1: 1382 | version "1.10.0" 1383 | resolved "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" 1384 | integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== 1385 | 1386 | tslint@^5.18.0: 1387 | version "5.18.0" 1388 | resolved "https://registry.npmjs.org/tslint/-/tslint-5.18.0.tgz#f61a6ddcf372344ac5e41708095bbf043a147ac6" 1389 | integrity sha512-Q3kXkuDEijQ37nXZZLKErssQVnwCV/+23gFEMROi8IlbaBG6tXqLPQJ5Wjcyt/yHPKBC+hD5SzuGaMora+ZS6w== 1390 | dependencies: 1391 | "@babel/code-frame" "^7.0.0" 1392 | builtin-modules "^1.1.1" 1393 | chalk "^2.3.0" 1394 | commander "^2.12.1" 1395 | diff "^3.2.0" 1396 | glob "^7.1.1" 1397 | js-yaml "^3.13.1" 1398 | minimatch "^3.0.4" 1399 | mkdirp "^0.5.1" 1400 | resolve "^1.3.2" 1401 | semver "^5.3.0" 1402 | tslib "^1.8.0" 1403 | tsutils "^2.29.0" 1404 | 1405 | tsutils@^2.29.0: 1406 | version "2.29.0" 1407 | resolved "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" 1408 | integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== 1409 | dependencies: 1410 | tslib "^1.8.1" 1411 | 1412 | type-check@~0.3.2: 1413 | version "0.3.2" 1414 | resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" 1415 | integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= 1416 | dependencies: 1417 | prelude-ls "~1.1.2" 1418 | 1419 | type-detect@^4.0.0, type-detect@^4.0.5: 1420 | version "4.0.8" 1421 | resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" 1422 | integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== 1423 | 1424 | type-is@^1.6.16: 1425 | version "1.6.18" 1426 | resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" 1427 | integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== 1428 | dependencies: 1429 | media-typer "0.3.0" 1430 | mime-types "~2.1.24" 1431 | 1432 | typescript-json-schema@^0.38.3: 1433 | version "0.38.3" 1434 | resolved "https://registry.npmjs.org/typescript-json-schema/-/typescript-json-schema-0.38.3.tgz#90faca22860a656680ebcde102c8510b6b349c65" 1435 | integrity sha512-+13qUoBUQwOXqxUoYQWtLA9PEM7ojfv8r+hYc2ebeqqVwVM4+yI5JSlsYRBlJKKewc9q1FHqrMR6L6d9TNX9Dw== 1436 | dependencies: 1437 | glob "~7.1.4" 1438 | json-stable-stringify "^1.0.1" 1439 | typescript "^3.5.1" 1440 | yargs "^13.2.4" 1441 | 1442 | typescript@^3.5.1, typescript@^3.5.2: 1443 | version "3.5.2" 1444 | resolved "https://registry.npmjs.org/typescript/-/typescript-3.5.2.tgz#a09e1dc69bc9551cadf17dba10ee42cf55e5d56c" 1445 | integrity sha512-7KxJovlYhTX5RaRbUdkAXN1KUZ8PwWlTzQdHV6xNqvuFOs7+WBo10TQUqT19Q/Jz2hk5v9TQDIhyLhhJY4p5AA== 1446 | 1447 | underscore@1.7.0: 1448 | version "1.7.0" 1449 | resolved "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209" 1450 | integrity sha1-a7rwh3UA02vjTsqlhODbn+8DUgk= 1451 | 1452 | urijs@^1.19.0: 1453 | version "1.19.1" 1454 | resolved "https://registry.npmjs.org/urijs/-/urijs-1.19.1.tgz#5b0ff530c0cbde8386f6342235ba5ca6e995d25a" 1455 | integrity sha512-xVrGVi94ueCJNrBSTjWqjvtgvl3cyOTThp2zaMaFNGp3F542TR6sM3f2o8RqZl+AwteClSVmoCyt0ka4RjQOQg== 1456 | 1457 | vary@^1.1.2: 1458 | version "1.1.2" 1459 | resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 1460 | integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= 1461 | 1462 | which-module@^2.0.0: 1463 | version "2.0.0" 1464 | resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" 1465 | integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= 1466 | 1467 | which@1.3.1, which@^1.2.9: 1468 | version "1.3.1" 1469 | resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 1470 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== 1471 | dependencies: 1472 | isexe "^2.0.0" 1473 | 1474 | wide-align@1.1.3: 1475 | version "1.1.3" 1476 | resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" 1477 | integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== 1478 | dependencies: 1479 | string-width "^1.0.2 || 2" 1480 | 1481 | wordwrap@~1.0.0: 1482 | version "1.0.0" 1483 | resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" 1484 | integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= 1485 | 1486 | wrap-ansi@^2.0.0: 1487 | version "2.1.0" 1488 | resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" 1489 | integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= 1490 | dependencies: 1491 | string-width "^1.0.1" 1492 | strip-ansi "^3.0.1" 1493 | 1494 | wrap-ansi@^5.1.0: 1495 | version "5.1.0" 1496 | resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" 1497 | integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== 1498 | dependencies: 1499 | ansi-styles "^3.2.0" 1500 | string-width "^3.0.0" 1501 | strip-ansi "^5.0.0" 1502 | 1503 | wrappy@1: 1504 | version "1.0.2" 1505 | resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1506 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 1507 | 1508 | "y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: 1509 | version "4.0.0" 1510 | resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" 1511 | integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== 1512 | 1513 | yargs-parser@13.0.0: 1514 | version "13.0.0" 1515 | resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz#3fc44f3e76a8bdb1cc3602e860108602e5ccde8b" 1516 | integrity sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw== 1517 | dependencies: 1518 | camelcase "^5.0.0" 1519 | decamelize "^1.2.0" 1520 | 1521 | yargs-parser@^11.1.1: 1522 | version "11.1.1" 1523 | resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" 1524 | integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== 1525 | dependencies: 1526 | camelcase "^5.0.0" 1527 | decamelize "^1.2.0" 1528 | 1529 | yargs-parser@^13.0.0, yargs-parser@^13.1.0: 1530 | version "13.1.1" 1531 | resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" 1532 | integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== 1533 | dependencies: 1534 | camelcase "^5.0.0" 1535 | decamelize "^1.2.0" 1536 | 1537 | yargs-unparser@1.5.0: 1538 | version "1.5.0" 1539 | resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.5.0.tgz#f2bb2a7e83cbc87bb95c8e572828a06c9add6e0d" 1540 | integrity sha512-HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw== 1541 | dependencies: 1542 | flat "^4.1.0" 1543 | lodash "^4.17.11" 1544 | yargs "^12.0.5" 1545 | 1546 | yargs@13.2.2: 1547 | version "13.2.2" 1548 | resolved "https://registry.npmjs.org/yargs/-/yargs-13.2.2.tgz#0c101f580ae95cea7f39d927e7770e3fdc97f993" 1549 | integrity sha512-WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA== 1550 | dependencies: 1551 | cliui "^4.0.0" 1552 | find-up "^3.0.0" 1553 | get-caller-file "^2.0.1" 1554 | os-locale "^3.1.0" 1555 | require-directory "^2.1.1" 1556 | require-main-filename "^2.0.0" 1557 | set-blocking "^2.0.0" 1558 | string-width "^3.0.0" 1559 | which-module "^2.0.0" 1560 | y18n "^4.0.0" 1561 | yargs-parser "^13.0.0" 1562 | 1563 | yargs@^12.0.5: 1564 | version "12.0.5" 1565 | resolved "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" 1566 | integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== 1567 | dependencies: 1568 | cliui "^4.0.0" 1569 | decamelize "^1.2.0" 1570 | find-up "^3.0.0" 1571 | get-caller-file "^1.0.1" 1572 | os-locale "^3.0.0" 1573 | require-directory "^2.1.1" 1574 | require-main-filename "^1.0.1" 1575 | set-blocking "^2.0.0" 1576 | string-width "^2.0.0" 1577 | which-module "^2.0.0" 1578 | y18n "^3.2.1 || ^4.0.0" 1579 | yargs-parser "^11.1.1" 1580 | 1581 | yargs@^13.2.4: 1582 | version "13.2.4" 1583 | resolved "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz#0b562b794016eb9651b98bd37acf364aa5d6dc83" 1584 | integrity sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg== 1585 | dependencies: 1586 | cliui "^5.0.0" 1587 | find-up "^3.0.0" 1588 | get-caller-file "^2.0.1" 1589 | os-locale "^3.1.0" 1590 | require-directory "^2.1.1" 1591 | require-main-filename "^2.0.0" 1592 | set-blocking "^2.0.0" 1593 | string-width "^3.0.0" 1594 | which-module "^2.0.0" 1595 | y18n "^4.0.0" 1596 | yargs-parser "^13.1.0" 1597 | 1598 | ylru@^1.2.0: 1599 | version "1.2.1" 1600 | resolved "https://registry.npmjs.org/ylru/-/ylru-1.2.1.tgz#f576b63341547989c1de7ba288760923b27fe84f" 1601 | integrity sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ== 1602 | 1603 | yn@^3.0.0: 1604 | version "3.1.0" 1605 | resolved "https://registry.npmjs.org/yn/-/yn-3.1.0.tgz#fcbe2db63610361afcc5eb9e0ac91e976d046114" 1606 | integrity sha512-kKfnnYkbTfrAdd0xICNFw7Atm8nKpLcLv9AZGEt+kczL/WQVai4e2V6ZN8U/O+iI6WrNuJjNNOyu4zfhl9D3Hg== 1607 | --------------------------------------------------------------------------------