├── .gitignore
├── .travis.yml
├── .vscode
└── settings.json
├── LICENSE
├── README.md
├── package.json
├── src
├── bin
│ └── vuedts.ts
├── lib
│ ├── api.ts
│ ├── config.ts
│ ├── file-util.ts
│ ├── generate.ts
│ ├── language-service.ts
│ ├── logger.ts
│ ├── normalize.ts
│ ├── resolve-tsconfig-paths.ts
│ ├── ts-file-map.ts
│ ├── type-roots.ts
│ └── watch.ts
├── tsconfig.json
└── types
│ └── vue-template-compiler.d.ts
├── test
├── expects
│ ├── import-other.vue.d.ts
│ ├── import.vue.d.ts
│ ├── src.vue.d.ts
│ ├── ts-class.vue.d.ts
│ └── ts-object.vue.d.ts
├── fixtures
│ ├── h.vue
│ ├── import-other-target.vue
│ ├── import-other.vue
│ ├── import.ts
│ ├── import.vue
│ ├── js.vue
│ ├── not-vue.ts
│ ├── src.ts
│ ├── src.vue
│ ├── template.vue
│ ├── ts-class.vue
│ ├── ts-import-ghost.vue
│ ├── ts-object.vue
│ └── tsx.vue
├── specs
│ ├── config.ts
│ ├── file-util.ts
│ ├── generate.ts
│ └── watch.ts
└── tsconfig.json
├── tsconfig.base.json
├── tslint.json
└── yarn.lock
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 |
3 | /dist/
4 |
5 | # Testing
6 | /test/fixtures/**/*.d.ts
7 | /test/.tmp/
8 |
9 | yarn-error.log
10 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js
2 | node_js:
3 | - "6"
4 | cache:
5 | directories:
6 | - $HOME/.npm
7 | - node_modules
8 | install:
9 | - npm i --cache-min 600000
10 | script:
11 | - npm run lint
12 | - npm run test
13 | - npm run build
14 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "typescript.tsdk": "node_modules/typescript/lib"
3 | }
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2019 katashin, kahirokunn
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in
11 | all copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
20 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # vuedts
2 |
3 | This repository is fork from https://github.com/ktsn/vuetype
4 | Because that repository has not maintained now.
5 |
6 | [](https://badge.fury.io/js/vuedts)
7 | [](https://travis-ci.org/kahirokunn/vuedts)
8 |
9 | Generate TypeScript declaration files for .vue files
10 |
11 | ## Sample Repository
12 |
13 | https://github.com/kahirokunn/book-management/pull/75
14 |
15 | ## Installation
16 |
17 | You can use `vuedts` command after exec one of following commands.
18 |
19 | ```bash
20 | $ npm install --global @kahirokunn/vuedts # npm
21 | $ yarn global add @kahirokunn/vuedts # yarn
22 | ```
23 |
24 | ## Usage
25 |
26 | Specify the directory that includes your `.vue` files as the 2nd argument of `vuedts` command. Note that the `.vue` files should have TypeScript code (in `
50 | ```
51 |
52 | You will acquire the following declaration file:
53 |
54 | ```ts
55 | import Vue from 'vue';
56 | export default class MyComp extends Vue {
57 | message: string;
58 | }
59 | ```
60 |
61 | ### Watch mode
62 |
63 | You can enable watch mode by adding `--watch` (shorthand `-w`) flag. In the watch mode, vuedts watches update of `.vue` files and generates declaration files when the `.vue` files are updated.
64 |
65 | ```bash
66 | vuedts --watch src/components
67 | ```
68 |
69 | ## License
70 |
71 | MIT
72 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@kahirokunn/vuedts",
3 | "version": "1.3.4",
4 | "author": "kahirokunn",
5 | "description": "Generate TypeScript declaration files for .vue files",
6 | "keywords": [
7 | "Vue",
8 | "TypeScript",
9 | "declaration",
10 | "type",
11 | "cli"
12 | ],
13 | "license": "MIT",
14 | "files": [
15 | "dist"
16 | ],
17 | "main": "dist/lib/api.js",
18 | "typings": "dist/lib/api.d.ts",
19 | "homepage": "https://github.com/kahirokunn/vuedts",
20 | "bugs": "https://github.com/kahirokunn/vuedts/issues",
21 | "repository": {
22 | "type": "git",
23 | "url": "https://github.com/kahirokunn/vuedts.git"
24 | },
25 | "bin": {
26 | "vuedts": "dist/bin/vuedts.js"
27 | },
28 | "scripts": {
29 | "prepublishOnly": "yarn lint && yarn clean && yarn build",
30 | "clean": "rimraf dist",
31 | "dev": "tsc -p src -w",
32 | "build": "tsc -p src",
33 | "lint": "tslint \"src/**/*.ts\" && tslint \"test/specs/**/*.ts\"",
34 | "lint:fix": "tslint --fix \"src/**/*.ts\" && tslint \"test/specs/**/*.ts\"",
35 | "test": "rimraf test/fixtures/*.d.ts && mocha --require espower-typescript/guess test/specs/**/*.ts",
36 | "clean:test": "rimraf test/fixtures/*.d.ts",
37 | "test:debug": "npm t -- --inspect --debug-brk --recursive"
38 | },
39 | "devDependencies": {
40 | "@types/commander": "^2.12.2",
41 | "@types/glob": "^7.1.3",
42 | "@types/memory-fs": "^0.3.2",
43 | "@types/mocha": "^8.0.0",
44 | "@types/node": "^14.0.24",
45 | "@types/power-assert": "^1.5.3",
46 | "@types/promise.allsettled": "^1.0.3",
47 | "@types/rimraf": "^3.0.0",
48 | "espower-typescript": "^9.0.2",
49 | "memory-fs": "^0.5.0",
50 | "mocha": "^8.0.1",
51 | "power-assert": "^1.6.1",
52 | "rimraf": "^3.0.2",
53 | "tslint": "^6.1.2",
54 | "tslint-config-ktsn": "^2.1.0",
55 | "typescript": "^3.9.7",
56 | "vue": "^2.6.11",
57 | "vue-class-component": "^7.2.4",
58 | "vue-template-compiler": "^2.6.11"
59 | },
60 | "dependencies": {
61 | "@types/glob-to-regexp": "^0.4.0",
62 | "@types/throttle-debounce": "^2.1.0",
63 | "chalk": "^4.1.0",
64 | "chokidar": "^3.4.1",
65 | "commander": "^6.0.0",
66 | "glob": "^7.1.6",
67 | "glob-to-regexp": "^0.4.1",
68 | "promise.allsettled": "^1.0.2",
69 | "throttle-debounce": "^2.2.1"
70 | },
71 | "peerDependencies": {
72 | "typescript": "^3.9.7",
73 | "vue-template-compiler": "^2.6.11"
74 | }
75 | }
76 |
--------------------------------------------------------------------------------
/src/bin/vuedts.ts:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env node
2 |
3 | import path = require('path')
4 | import program = require('commander')
5 | import { globSync, deepestSharedRoot } from '../lib/file-util'
6 | import { findConfig, readConfig } from '../lib/config'
7 | import { generate } from '../lib/generate'
8 | import { watch } from '../lib/watch'
9 |
10 | // tslint:disable-next-line
11 | const meta = require('../../package.json')
12 |
13 | program
14 | .version(meta.version)
15 | .usage('')
16 | .option('-w, --watch', 'watch file changes')
17 | .option('-c, --config ', 'pass your tsconfig.json path')
18 | .parse(process.argv)
19 |
20 | function getConfig(configPath?: string) {
21 | let config: ReturnType
22 | if (configPath) {
23 | configPath = path.resolve(configPath)
24 | config = readConfig(configPath)
25 | } else {
26 | const root = path.resolve(deepestSharedRoot(program.args))
27 | configPath = findConfig(root)
28 | if (configPath) {
29 | config = readConfig(configPath)
30 | }
31 | }
32 |
33 | if (configPath && config) {
34 | console.log(`use this tsconfig.json: ${configPath}`)
35 | } else {
36 | console.log(`tsconfig.json not found in your project`)
37 | }
38 |
39 | const base = {
40 | allowNonTsExtensions: true,
41 | emitDeclarationOnly: true,
42 | declaration: true,
43 | experimentalDecorators: true,
44 | noImplicitAny: false,
45 | noUnusedLocals: false,
46 | noUnusedParameters: false,
47 | noEmitOnError: false
48 | }
49 |
50 | if (!config) {
51 | return {
52 | strict: false,
53 | ...base
54 | }
55 | }
56 |
57 | delete config.options.noEmit
58 |
59 | return {
60 | ...config.options,
61 | ...base
62 | }
63 | }
64 |
65 | if (program.args.length === 0) {
66 | program.help()
67 | } else {
68 | const options = getConfig(program['config'])
69 | const files = globSync(program.args.map(arg => path.join(arg, '**/*.vue')))
70 | const targets = [...program.args, ...files]
71 |
72 | if (program['watch']) {
73 | watch(targets, options)
74 | } else {
75 | generate(targets, options)
76 | }
77 | }
78 |
--------------------------------------------------------------------------------
/src/lib/api.ts:
--------------------------------------------------------------------------------
1 | import * as ts from 'typescript'
2 | import { generate as _generate } from './generate'
3 | import { watch as _watch } from './watch'
4 | import { readConfig } from './config'
5 |
6 | export function generate (filenames: string[], configPath: string): Promise {
7 | const config = readConfig(configPath)
8 | return _generate(filenames, config ? config.options : {})
9 | }
10 |
11 | export function watch(dirs: [string, ...string[]], configPath: string): void {
12 | const config = readConfig(configPath)
13 | _watch(dirs, config ? config.options : {})
14 | }
15 |
--------------------------------------------------------------------------------
/src/lib/config.ts:
--------------------------------------------------------------------------------
1 | import path = require('path')
2 | import ts = require('typescript')
3 | import { exists } from './file-util'
4 |
5 | export function readConfig (
6 | configPath: string,
7 | _parseConfigHost: ts.ParseConfigHost = ts.sys // for test
8 | ): ts.ParsedCommandLine | undefined {
9 | const result = ts.readConfigFile(configPath, _parseConfigHost.readFile)
10 |
11 | if (result.error) {
12 | return undefined
13 | }
14 |
15 | return ts.parseJsonConfigFileContent(
16 | result.config,
17 | _parseConfigHost,
18 | path.dirname(configPath),
19 | undefined,
20 | configPath
21 | )
22 | }
23 |
24 | export function findConfig (
25 | baseDir: string,
26 | _exists: (filePath: string) => boolean = exists // for test
27 | ): string | undefined {
28 | const configFileName = 'tsconfig.json'
29 |
30 | function loop (dir: string): string | undefined {
31 | const parentPath = path.dirname(dir)
32 | // It is root directory if parent and current dirname are the same
33 | if (dir === parentPath) {
34 | return undefined
35 | }
36 |
37 | const configPath = path.join(dir, configFileName)
38 | if (_exists(configPath)) {
39 | return configPath
40 | }
41 |
42 | return loop(parentPath)
43 | }
44 | return loop(baseDir)
45 | }
46 |
--------------------------------------------------------------------------------
/src/lib/file-util.ts:
--------------------------------------------------------------------------------
1 | import assert = require('assert')
2 | import path = require('path')
3 | import fs = require('fs')
4 | import glob = require('glob')
5 |
6 | export function readFileSync (filePath: string): string | undefined {
7 | try {
8 | return fs.readFileSync(filePath, 'utf8')
9 | } catch (err) {
10 | return undefined
11 | }
12 | }
13 |
14 | export function readFile (filePath: string): Promise {
15 | return exec(fs.readFile, filePath, 'utf8')
16 | }
17 |
18 | export function writeFile (filePath: string, data: string): Promise {
19 | return exec(fs.writeFile, filePath, data)
20 | }
21 |
22 | export function unlink (filePath: string): Promise {
23 | return exec(fs.unlink, filePath)
24 | }
25 |
26 | export function exists (filePath: string): boolean {
27 | return fs.existsSync(filePath)
28 | }
29 |
30 | export function globSync (patterns: string | string[]): string[] {
31 | if (typeof patterns === 'string') {
32 | patterns = [patterns]
33 | }
34 |
35 | return patterns.reduce((acc, pattern) => {
36 | return acc.concat(glob.sync(pattern))
37 | }, [] as string[])
38 | }
39 |
40 | export function deepestSharedRoot (pathNames: string[]): string {
41 | assert(pathNames.length >= 1)
42 |
43 | let root: string[] = pathNames[0].split(path.sep)
44 | pathNames.slice(1).forEach(pathName => {
45 | const dirs = pathName.split(path.sep)
46 | dirs.forEach((dir, i) => {
47 | if (root[i] !== dir) {
48 | root = root.slice(0, i)
49 | }
50 | })
51 | })
52 | return root.join(path.sep)
53 | }
54 |
55 |
56 | function exec (fn: Function, ...args: any[]): Promise {
57 | return new Promise((resolve, reject) => {
58 | fn.apply(undefined, args.concat((err: any, res: any) => {
59 | if (err) reject(err)
60 | resolve(res)
61 | }))
62 | })
63 | }
64 |
--------------------------------------------------------------------------------
/src/lib/generate.ts:
--------------------------------------------------------------------------------
1 | import path = require('path')
2 | import ts = require('typescript')
3 | import allSettled = require('promise.allsettled')
4 | import { LanguageService } from './language-service'
5 | import { writeFile } from './file-util'
6 | import { logEmitted, logError } from './logger'
7 | import { getTypeRootsDts } from './type-roots'
8 |
9 | export async function generate (filenames: string[], options: ts.CompilerOptions): Promise {
10 | const vueFiles = filenames
11 | .filter(file => /\.vue$/.test(file))
12 | .map(file => path.resolve(file))
13 |
14 | // Should not emit if some errors are occurred
15 | const service = new LanguageService([
16 | ...getTypeRootsDts(options),
17 | ...vueFiles
18 | ], options)
19 |
20 | await allSettled(
21 | vueFiles.map(file => new Promise((resolve, reject) => {
22 | const dts = service.getDts(file)
23 | const dtsPath = `${file}${ts.Extension.Dts}`
24 |
25 | if (dts.errors.length > 0) {
26 | logError(dtsPath, dts.errors)
27 | return
28 | }
29 | const { result } = dts
30 |
31 | if (result === null) return
32 |
33 | return setImmediate(() => {
34 | writeFile(dtsPath, result)
35 | .then(() => {
36 | logEmitted(dtsPath)
37 | resolve()
38 | })
39 | .catch(e => {
40 | logError(dtsPath, [e.message])
41 | reject()
42 | })
43 | })
44 | }))
45 | )
46 | }
47 |
--------------------------------------------------------------------------------
/src/lib/language-service.ts:
--------------------------------------------------------------------------------
1 | import ts = require('typescript')
2 | import { TsFileMap } from './ts-file-map'
3 | import { resolveAlias } from './resolve-tsconfig-paths'
4 | import { normalize } from './normalize'
5 |
6 | export interface Result {
7 | result: T | null
8 | errors: string[]
9 | }
10 |
11 | export class LanguageService {
12 | private files = new TsFileMap()
13 | private tsService: ts.LanguageService
14 |
15 | constructor (rootFileNames: string[], options: ts.CompilerOptions) {
16 | rootFileNames.forEach(file => {
17 | this.files.updateFile(file)
18 | })
19 |
20 | const serviceHost = this.makeServiceHost(options)
21 | this.tsService = ts.createLanguageService(serviceHost, ts.createDocumentRegistry(true, process.cwd()))
22 | }
23 |
24 | updateFile (fileName: string): void {
25 | this.files.updateFile(fileName)
26 | }
27 |
28 | getHostVueFilePaths (fileName: string): string[] {
29 | return this.files.getHostVueFilePaths(fileName)
30 | }
31 |
32 | getDts (fileName: string): Result {
33 | fileName = normalize(fileName)
34 |
35 | // Unsupported files or not found
36 | if (!this.files.canEmit(fileName)) {
37 | return {
38 | result: null,
39 | errors: []
40 | }
41 | }
42 |
43 | const output = this.tsService.getEmitOutput(fileName, true, true)
44 | const errors = this.collectErrorMessages(fileName)
45 |
46 | if (errors.length === 0 && !output.emitSkipped) {
47 | const result = output.outputFiles
48 | .filter(file => /\.d\.tsx?$/.test(file.name))[0].text
49 |
50 | return {
51 | result,
52 | errors: []
53 | }
54 | }
55 |
56 | return {
57 | result: null,
58 | errors
59 | }
60 | }
61 |
62 | private makeServiceHost (options: ts.CompilerOptions): ts.LanguageServiceHost {
63 | return {
64 | getScriptFileNames: () => this.files.fileNames,
65 | getScriptVersion: fileName => this.files.getVersion(fileName),
66 | getScriptSnapshot: fileName => {
67 | const src = this.files.getSrc(fileName)
68 | return src && ts.ScriptSnapshot.fromString(src)
69 | },
70 | getCurrentDirectory: () => process.cwd(),
71 | getCompilationSettings: () => options,
72 | getDefaultLibFileName: options => ts.getDefaultLibFilePath(options),
73 | resolveModuleNames: (moduleNames, containingFile, _, __, options) => {
74 | return moduleNames.map(name => {
75 | if (/\.vue$/.test(name)) {
76 | return {
77 | resolvedFileName: normalize(resolveAlias(options, containingFile, name)),
78 | extension: ts.Extension.Tsx
79 | }
80 | }
81 | return ts.resolveModuleName(name, containingFile, options, ts.sys).resolvedModule
82 | })
83 | }
84 | } as ts.LanguageServiceHost
85 | }
86 |
87 | private collectErrorMessages (fileName: string): string[] {
88 | const allDiagnostics = this.tsService.getCompilerOptionsDiagnostics()
89 | .concat(this.tsService.getSyntacticDiagnostics(fileName))
90 | .concat(this.tsService.getSemanticDiagnostics(fileName))
91 |
92 | return allDiagnostics.map(diagnostic => {
93 | const message = ts.flattenDiagnosticMessageText(diagnostic.messageText, '\n')
94 |
95 | if (diagnostic.file && diagnostic.start) {
96 | const { line, character } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start)
97 | return `[${line + 1},${character + 1}] ${message}`
98 | }
99 | return message
100 | })
101 | }
102 | }
103 |
--------------------------------------------------------------------------------
/src/lib/logger.ts:
--------------------------------------------------------------------------------
1 | import * as chalk from 'chalk'
2 |
3 | export function logEmitted (filePath: string): void {
4 | console.log(chalk.green('Emitted: ') + filePath)
5 | }
6 |
7 | export function logRemoved (filePath: string): void {
8 | console.log(chalk.green('Removed: ') + filePath)
9 | }
10 |
11 | export function logError (filePath: string, messages: string[]): void {
12 | const errors = [
13 | chalk.red('Emit Failed: ') + filePath,
14 | ...messages.map(m => ' ' + chalk.red('Error: ') + m)
15 | ]
16 | console.error(errors.join('\n'))
17 | }
18 |
--------------------------------------------------------------------------------
/src/lib/normalize.ts:
--------------------------------------------------------------------------------
1 | import ts = require('typescript')
2 |
3 | // .ts suffix is needed since the compiler skips compile
4 | // if the file name seems to be not supported types
5 | export function normalize(fileName: string): string {
6 | if (/\.vue$/.test(fileName)) {
7 | return `${fileName}${ts.Extension.Tsx}`
8 | }
9 | return fileName
10 | }
11 |
--------------------------------------------------------------------------------
/src/lib/resolve-tsconfig-paths.ts:
--------------------------------------------------------------------------------
1 | import ts = require('typescript')
2 | import path = require('path')
3 | import globToRegExp = require('glob-to-regexp')
4 |
5 | function isAlias(glob: string, moduleName: string): boolean {
6 | return globToRegExp(glob).test(moduleName)
7 | }
8 |
9 | export function resolveAlias(options: ts.CompilerOptions, containingFile: string, moduleName: string) {
10 | if (!(options.paths && options.baseUrl)) {
11 | return path.resolve(path.dirname(containingFile), moduleName)
12 | }
13 |
14 | let baseUrl = options.baseUrl
15 | if (!/\/$/.test(baseUrl)) {
16 | baseUrl = `${baseUrl}/`
17 | }
18 |
19 | for (const glob in options.paths) {
20 | if (isAlias(glob, moduleName)) {
21 | const before = glob.replace('*', '')
22 | const after = options.paths[glob][0].replace('*', '')
23 | return `${baseUrl}${after}${moduleName.replace(before, '')}`
24 | }
25 | }
26 |
27 | return path.resolve(path.dirname(containingFile), moduleName)
28 | }
29 |
--------------------------------------------------------------------------------
/src/lib/ts-file-map.ts:
--------------------------------------------------------------------------------
1 | import path = require('path')
2 | import { normalize } from './normalize'
3 | import vueCompiler = require('vue-template-compiler')
4 | import { readFileSync } from './file-util'
5 |
6 | export interface TsFile {
7 | rawFileName: string
8 | srcPath: string | undefined
9 | version: number
10 | text: string | undefined
11 | }
12 |
13 | function hasExtension(path: string) {
14 | const blocks = path.split('/')
15 | return /\./.test(blocks[blocks.length - 1])
16 | }
17 |
18 | export class TsFileMap {
19 | private files = new Map()
20 |
21 | get fileNames (): string[] {
22 | return Array.from(this.files.keys()).filter(file => isSupportedFile(file))
23 | }
24 |
25 | /**
26 | * If the file does not exists or it is unsupported type,
27 | * we does not try emit output or the compiler throws an error
28 | */
29 | canEmit (fileName: string): boolean {
30 | const file = this.getFile(fileName)
31 | return file != null && !!file.text
32 | }
33 |
34 | getSrc (fileName: string): string | undefined {
35 | let file = this.getFile(fileName)
36 |
37 | // If it does not processed yet,
38 | // register it into map with returning file data
39 | if (!file) {
40 | file = this.loadFile(fileName)
41 | this.registerFile(file)
42 | }
43 |
44 | return file.text
45 | }
46 |
47 | /**
48 | * Collect host vue file paths of input ts file.
49 | * If the input is a vue file, just return it.
50 | */
51 | getHostVueFilePaths (fileName: string): string[] {
52 | if (/\.vue$/.test(fileName)) {
53 | return [fileName]
54 | }
55 |
56 | const entries = Array.from(this.files.entries())
57 | return entries
58 | .filter(([key, file]) => {
59 | return !/\.vue$/.test(key)
60 | && file.srcPath === fileName
61 | })
62 | .map(([_, file]) => file.rawFileName)
63 | }
64 |
65 | getVersion (fileName: string): string | undefined {
66 | const file = this.getFile(fileName)
67 | return file && file.version.toString()
68 | }
69 |
70 | updateFile (fileName: string): void {
71 | const file = this.loadFile(fileName)
72 | this.registerFile(file)
73 | }
74 |
75 | /**
76 | * Load a TS file that specified by the argument
77 | * If .vue file is specified, it extract and retain TS code part only.
78 | */
79 | private loadFile (fileName: string): TsFile {
80 | const rawFileName = getRawFileName(fileName)
81 | const file = this.getFile(fileName) || {
82 | rawFileName,
83 | srcPath: undefined,
84 | version: 0,
85 | text: undefined
86 | }
87 |
88 | let src = readFileSync(hasExtension(fileName) ? rawFileName : `${rawFileName}.vue`)
89 | if (src && isVueFile(rawFileName)) {
90 | const extracted = extractCode(src, fileName)
91 | src = extracted.content
92 | file.srcPath = extracted.srcPath
93 | }
94 |
95 | if (src !== file.text) {
96 | file.version += 1
97 | file.text = src
98 | }
99 |
100 | return file
101 | }
102 |
103 | /**
104 | * Just returns a file object
105 | *
106 | * Returns undefined
107 | * - Not loaded yet
108 | * Return TsFile but file.text is undefined
109 | * - Loaded but not found or unsupported
110 | */
111 | private getFile (fileName: string): TsFile | undefined {
112 | return this.files.get(fileName)
113 | }
114 |
115 | private registerFile (file: TsFile): void {
116 | const { rawFileName } = file
117 |
118 | if (isVueFile(rawFileName)) {
119 | // To ensure the compiler can process .vue file,
120 | // we need to add .ts suffix to file name
121 | this.files.set(normalize(rawFileName), file)
122 | }
123 |
124 | this.files.set(rawFileName, file)
125 | }
126 | }
127 |
128 | /**
129 | * Extract TS code from single file component
130 | * If there are no TS code, return undefined
131 | */
132 | function extractCode (
133 | src: string,
134 | fileName: string
135 | ): {
136 | content: string | undefined,
137 | srcPath: string | undefined
138 | } {
139 | const script = vueCompiler.parseComponent(src, { pad: true }).script
140 |
141 | if (script == null || !['ts', 'tsx', 'js', 'jsx', undefined].includes(script.lang)) {
142 | return {
143 | content: 'export default {}',
144 | srcPath: undefined
145 | }
146 | }
147 |
148 | // Load an external TS file if it referred via src attribute.
149 | if (script.src && isSupportedFile(script.src)) {
150 | const srcPath = path.resolve(path.dirname(fileName), script.src)
151 | return {
152 | content: readFileSync(srcPath),
153 | srcPath
154 | }
155 | }
156 |
157 | return {
158 | content: script.content,
159 | srcPath: undefined
160 | }
161 | }
162 |
163 | function isSupportedFile (fileName: string): boolean {
164 | return /\.(tsx?|jsx?|d.ts)$/.test(fileName)
165 | }
166 |
167 | function isVueFile (fileName: string): boolean {
168 | return /\.vue(?:\.tsx?)?$/.test(fileName)
169 | }
170 |
171 | // If fileName is already suffixed by `.tsx?` remove it
172 | function getRawFileName (fileName: string): string {
173 | const [_, ext] = /\.vue(\.tsx)?$/.exec(fileName) || []
174 | return ext ? fileName.slice(0, -ext.length) : fileName
175 | }
176 |
--------------------------------------------------------------------------------
/src/lib/type-roots.ts:
--------------------------------------------------------------------------------
1 | import ts = require('typescript')
2 | import { globSync } from '../lib/file-util'
3 |
4 | export function getTypeRootsDts(options: ts.CompilerOptions) {
5 | const targets = options.typeRoots ? [
6 | ...options.typeRoots,
7 | ...globSync(options.typeRoots.map(root => `${root}${root[root.length - 1] === '/' ? '' : '/'}**/*.d.ts`))
8 | ] : []
9 | return targets
10 | }
11 |
--------------------------------------------------------------------------------
/src/lib/watch.ts:
--------------------------------------------------------------------------------
1 | import ts = require('typescript')
2 | import chokidar = require('chokidar')
3 | import { writeFile, unlink } from './file-util'
4 | import { LanguageService } from './language-service'
5 | import { logEmitted, logRemoved, logError } from './logger'
6 | import { getTypeRootsDts } from './type-roots'
7 | import { throttle } from 'throttle-debounce'
8 |
9 | const queue: Array<() => {}> = []
10 |
11 | const runAll = throttle(500, () => {
12 | while (queue.length) {
13 | setImmediate(queue.pop() as () => {})
14 | }
15 | })
16 |
17 | export function watch (
18 | dirs: string[],
19 | options: ts.CompilerOptions = {},
20 | usePolling: boolean = false
21 | ): chokidar.FSWatcher {
22 | const targets = [
23 | ...getTypeRootsDts(options),
24 | ...dirs
25 | ]
26 |
27 | const watcher = chokidar.watch(targets, {
28 | usePolling
29 | })
30 |
31 | const service = new LanguageService(targets, options)
32 |
33 | watcher
34 | .on('add', rawFile => {
35 | service.getHostVueFilePaths(rawFile).map(file => {
36 | service.updateFile(file)
37 | queue.push(() => saveDts(file, service))
38 | runAll()
39 | })
40 | })
41 | .on('change', rawFile => {
42 | service.getHostVueFilePaths(rawFile).map(file => {
43 | service.updateFile(file)
44 | queue.push(() => saveDts(file, service))
45 | runAll()
46 | })
47 | })
48 | .on('unlink', rawFile => {
49 | service.getHostVueFilePaths(rawFile).map(file => {
50 | service.updateFile(file)
51 | removeDts(file)
52 | })
53 | })
54 |
55 | return watcher
56 | }
57 |
58 | async function saveDts(fileName: string, service: LanguageService): Promise {
59 | const dts = service.getDts(fileName)
60 | const dtsName = `${fileName}${ts.Extension.Dts}`
61 |
62 | if (dts.errors.length > 0) {
63 | logError(dtsName, dts.errors)
64 | return
65 | }
66 |
67 | if (dts.result === null) return
68 |
69 | try {
70 | await writeFile(dtsName, dts.result)
71 | logEmitted(dtsName)
72 | } catch (e) {
73 | logError(dtsName, [e.message])
74 | }
75 | }
76 |
77 | async function removeDts (fileName: string): Promise {
78 | const dtsName = `${fileName}${ts.Extension.Dts}`
79 | try {
80 | await unlink(dtsName)
81 | logRemoved(dtsName)
82 | } catch (e) {
83 | logError(dtsName, [e.message])
84 | }
85 | }
86 |
--------------------------------------------------------------------------------
/src/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.base.json",
3 | "compilerOptions": {
4 | "outDir": "../dist",
5 | "declaration": true
6 | },
7 | "include": [
8 | "**/*.ts"
9 | ]
10 | }
11 |
--------------------------------------------------------------------------------
/src/types/vue-template-compiler.d.ts:
--------------------------------------------------------------------------------
1 | declare module 'vue-template-compiler' {
2 | interface CompilerOptions {
3 | pad?: boolean
4 | }
5 |
6 | interface SFCBlock {
7 | type: string
8 | content: string
9 | start?: number
10 | end?: number
11 | lang?: string
12 | src?: string
13 | scoped?: boolean
14 | module?: string | boolean
15 | }
16 |
17 | interface SFCDescriptor {
18 | template: SFCBlock | null | undefined
19 | script: SFCBlock | null | undefined
20 | styles: SFCBlock[]
21 | }
22 |
23 | interface TemplateCompiler {
24 | parseComponent (file: string, options?: CompilerOptions): SFCDescriptor
25 | }
26 |
27 | const compiler: TemplateCompiler
28 | export = compiler
29 | }
30 |
--------------------------------------------------------------------------------
/test/expects/import-other.vue.d.ts:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | declare const _default: import("vue/types/vue").ExtendedVue>;
5 | export default _default;
6 |
--------------------------------------------------------------------------------
/test/expects/import.vue.d.ts:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | export default class TsClass extends Vue {
3 | foo: number;
4 | }
5 |
--------------------------------------------------------------------------------
/test/expects/src.vue.d.ts:
--------------------------------------------------------------------------------
1 | declare const _default: {
2 | data(): {
3 | foo: string;
4 | };
5 | };
6 | export default _default;
7 |
--------------------------------------------------------------------------------
/test/expects/ts-class.vue.d.ts:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | export default class TsClass extends Vue {
3 | foo: string;
4 | }
5 |
--------------------------------------------------------------------------------
/test/expects/ts-object.vue.d.ts:
--------------------------------------------------------------------------------
1 | declare const _default: {
2 | data(): {
3 | foo: string;
4 | };
5 | };
6 | export default _default;
7 |
--------------------------------------------------------------------------------
/test/fixtures/h.vue:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/test/fixtures/import-other-target.vue:
--------------------------------------------------------------------------------
1 |
2 | Hi
3 |
4 |
5 |
9 |
--------------------------------------------------------------------------------
/test/fixtures/import-other.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
21 |
--------------------------------------------------------------------------------
/test/fixtures/import.ts:
--------------------------------------------------------------------------------
1 | export function foo (bar: string): number {
2 | return Number(bar)
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/import.vue:
--------------------------------------------------------------------------------
1 |
2 | {{ foo }}
3 |
4 |
5 |
15 |
16 |
--------------------------------------------------------------------------------
/test/fixtures/js.vue:
--------------------------------------------------------------------------------
1 |
2 | {{ foo }}
3 |
4 |
5 |
14 |
15 |
--------------------------------------------------------------------------------
/test/fixtures/not-vue.ts:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import Component from 'vue-class-component'
3 |
4 | export default class TsClass extends Vue {
5 | foo = 'Hello'
6 | }
7 |
--------------------------------------------------------------------------------
/test/fixtures/src.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | data () {
3 | return {
4 | foo: 'Hello'
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/test/fixtures/src.vue:
--------------------------------------------------------------------------------
1 |
2 | {{ foo }}
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/test/fixtures/template.vue:
--------------------------------------------------------------------------------
1 |
2 | no script
3 |
4 |
--------------------------------------------------------------------------------
/test/fixtures/ts-class.vue:
--------------------------------------------------------------------------------
1 |
2 | {{ foo }}
3 |
4 |
5 |
14 |
15 |
--------------------------------------------------------------------------------
/test/fixtures/ts-import-ghost.vue:
--------------------------------------------------------------------------------
1 |
2 | {{ foo }}
3 |
4 |
5 |
8 |
9 |
14 |
--------------------------------------------------------------------------------
/test/fixtures/ts-object.vue:
--------------------------------------------------------------------------------
1 |
2 | {{ foo }}
3 |
4 |
5 |
14 |
15 |
--------------------------------------------------------------------------------
/test/fixtures/tsx.vue:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/test/specs/config.ts:
--------------------------------------------------------------------------------
1 | import assert = require('power-assert')
2 | import path = require('path')
3 | import glob = require('glob')
4 | import MemoryFs = require('memory-fs')
5 | import ts = require('typescript')
6 | import { findConfig, readConfig } from '../../src/lib/config'
7 |
8 | const fs = new MemoryFs()
9 | const ScriptTarget = ts.ScriptTarget
10 | const ModuleKind = ts.ModuleKind
11 |
12 | const host: ts.ParseConfigHost = {
13 | useCaseSensitiveFileNames: false,
14 |
15 | readDirectory (rootDir: string, extensions: string[], excludes: string[], includes: string[]): string[] {
16 | return fs.readdirSync(rootDir).map(file => path.join(rootDir, file))
17 | },
18 |
19 | fileExists (path: string): boolean {
20 | return fs.existsSync(path)
21 | },
22 |
23 | readFile (path: string): string {
24 | return fs.readFileSync(path, 'utf8')
25 | }
26 | }
27 |
28 | const exists = (fileName: string) => fs.existsSync(fileName)
29 |
30 | const root = path.resolve('/')
31 | const pathTo = (...parts: string[]) => path.join(root, 'path', 'to', ...parts)
32 |
33 | describe('tsconfig detection', () => {
34 | beforeEach(clear)
35 |
36 | it('should find tsconfig.json on a directory', () => {
37 | const tsconfig = pathTo('tsconfig.json')
38 | mock(tsconfig, {})
39 |
40 | const pathname = findConfig(pathTo(), exists)
41 | assert(pathname === tsconfig)
42 | })
43 |
44 | it('should find tsconfig.json on the closest ancestor', () => {
45 | mock(pathTo('tsconfig.json'), {})
46 | mock(pathTo('b', 'tsconfig.json'), {})
47 | mock(pathTo('c', 'tsconfig.json'), {})
48 | mock(pathTo('b', 'src', 'test.ts'), {})
49 |
50 | const pathname = findConfig(pathTo('b', 'src'), exists)
51 | assert(pathname === pathTo('b', 'tsconfig.json'))
52 | })
53 |
54 | it('returns undefined if config is not found', () => {
55 | const pathname = findConfig(pathTo('src'), exists)
56 | assert(pathname === undefined)
57 | })
58 |
59 | it('read tsconfig.json', () => {
60 | mock(pathTo('tsconfig.json'), {
61 | compilerOptions: {
62 | target: 'es5',
63 | module: 'es2015',
64 | moduleResolution: 'node',
65 | experimentalDecorators: true
66 | }
67 | })
68 | const data = readConfig(pathTo('tsconfig.json'), host)
69 | assert.ok(data)
70 |
71 | const options = data!.options
72 | assert(options.target === ts.ScriptTarget.ES5)
73 | assert(options.module === ts.ModuleKind.ES2015)
74 | assert(options.moduleResolution === ts.ModuleResolutionKind.NodeJs)
75 | assert(options.experimentalDecorators === true)
76 | })
77 |
78 | it('returns undefined if the config file is not found', () => {
79 | const data = readConfig(pathTo('tsconfig.json'), host)
80 | assert.ifError(data)
81 | })
82 | })
83 |
84 | function mock (fileName: string, data: any): void {
85 | fs.mkdirpSync(path.resolve(fileName, '..'))
86 | fs.writeFileSync(fileName, JSON.stringify(data))
87 | }
88 |
89 | function clear (): void {
90 | if (root === '/' || fs.existsSync(root)) {
91 | fs.readdirSync(root).forEach(dir => {
92 | fs.rmdirSync(path.join(root, dir))
93 | })
94 | }
95 | }
96 |
--------------------------------------------------------------------------------
/test/specs/file-util.ts:
--------------------------------------------------------------------------------
1 | import assert = require('power-assert')
2 | import path = require('path')
3 | import { deepestSharedRoot } from '../../src/lib/file-util'
4 |
5 | describe('file-util', () => {
6 | it('detects deepest shared root', () => {
7 | const actual = deepestSharedRoot([
8 | path.join('foo', 'bar', 'baz'),
9 | path.join('foo', 'bar', 'foo'),
10 | path.join('foo', 'bar', 'baz')
11 | ])
12 |
13 | assert(actual === path.join('foo', 'bar'))
14 | })
15 | })
16 |
--------------------------------------------------------------------------------
/test/specs/generate.ts:
--------------------------------------------------------------------------------
1 | import path = require('path')
2 | import fs = require('fs')
3 | import assert = require('power-assert')
4 | import ts = require('typescript')
5 | import { generate } from '../../src/lib/generate'
6 |
7 | const testDir = path.resolve(__dirname, '..')
8 | const fixtures = (...parts: string[]) => path.join(testDir, 'fixtures', ...parts)
9 | const expects = (...parts: string[]) => path.join(testDir, 'expects', ...parts)
10 |
11 | const compilerOptions: ts.CompilerOptions = {
12 | jsx: ts.JsxEmit.Preserve,
13 | jsxFactory: 'h',
14 | emitDeclarationOnly: true,
15 | declaration: true,
16 | experimentalDecorators: true
17 | }
18 |
19 | function gen(fileName: string, options: ts.CompilerOptions): Promise {
20 | return generate([fileName], options)
21 | }
22 |
23 | function test(a: string, b: string) {
24 | const aStr = normalize(fs.readFileSync(a, 'utf8'))
25 | const bStr = normalize(fs.readFileSync(b, 'utf8'))
26 | assert.equal(aStr, bStr)
27 | }
28 |
29 | function notExists(fileName: string) {
30 | assert.ok(!fs.existsSync(fileName))
31 | }
32 |
33 | function exists(fileName: string) {
34 | assert.ok(fs.existsSync(fileName))
35 | }
36 |
37 | describe('generate', () => {
38 | it('should emit d.ts for class component in sfc', () => {
39 | return gen(fixtures('ts-class.vue'), compilerOptions).then(() => {
40 | test(fixtures('ts-class.vue.d.ts'), expects('ts-class.vue.d.ts'))
41 | })
42 | })
43 |
44 | it('should emit d.ts for component options in sfc', () => {
45 | return gen(fixtures('ts-object.vue'), {}).then(() => {
46 | test(fixtures('ts-object.vue.d.ts'), expects('ts-object.vue.d.ts'))
47 | })
48 | })
49 |
50 | it('should emit d.ts for js', () => {
51 | return gen(fixtures('js.vue'), {}).then(() => {
52 | exists(fixtures('js.vue.d.ts'))
53 | })
54 | })
55 |
56 | it('should not emit d.ts for normal ts', () => {
57 | return gen(fixtures('not-vue.ts'), {}).then(() => {
58 | notExists(fixtures('not-vue.d.ts'))
59 | })
60 | })
61 |
62 | it('should emit d.ts with imported ts types', () => {
63 | return gen(fixtures('import.vue'), compilerOptions).then(() => {
64 | test(fixtures('import.vue.d.ts'), expects('import.vue.d.ts'))
65 | })
66 | })
67 |
68 | it('should emit d.ts of ts file referred via src attribute', () => {
69 | return gen(fixtures('src.vue'), compilerOptions).then(() => {
70 | test(fixtures('src.vue.d.ts'), expects('src.vue.d.ts'))
71 | })
72 | })
73 |
74 | it('should be able to import other vue files', () => {
75 | return gen(fixtures('import-other.vue'), compilerOptions).then(() => {
76 | test(fixtures('import-other.vue.d.ts'), expects('import-other.vue.d.ts'))
77 | })
78 | })
79 | })
80 |
81 | function normalize (str: string): string {
82 | return str.trim().replace(/\r\n/g, '\n')
83 | }
84 |
--------------------------------------------------------------------------------
/test/specs/watch.ts:
--------------------------------------------------------------------------------
1 | import assert = require('power-assert')
2 | import path = require('path')
3 | import fs = require('fs')
4 | import rimraf = require('rimraf')
5 | import chokidar = require('chokidar')
6 | import ts = require('typescript')
7 | import { watch } from '../../src/lib/watch'
8 |
9 | const p = (_path: string) => path.resolve(__dirname, '../.tmp', _path)
10 | const vueFileName = 'test.vue' as const
11 | const dFileName = `${vueFileName}${ts.Extension.Dts}`
12 |
13 | describe('watch', () => {
14 | let vueFileWatcher: chokidar.FSWatcher
15 | let distFileWatcher: chokidar.FSWatcher
16 |
17 | beforeEach(done => {
18 | fs.mkdir(p('./'), () => {
19 | vueFileWatcher = watch([p('./**')], {
20 | jsx: ts.JsxEmit.Preserve,
21 | jsxFactory: 'h',
22 | emitDeclarationOnly: true,
23 | declaration: true,
24 | experimentalDecorators: true
25 | }, true).on('ready', done)
26 | distFileWatcher = chokidar.watch([p(`./**${ts.Extension.Dts}`)], {
27 | usePolling: true
28 | })
29 | })
30 | })
31 |
32 | afterEach((done) => {
33 | Promise.all([
34 | vueFileWatcher.close(),
35 | distFileWatcher.close()
36 | ]).then(() => rimraf(p('./'), done))
37 | })
38 |
39 | it('generates d.ts if .vue file is added', done => {
40 | distFileWatcher.on('add', once(() => {
41 | test(p(dFileName), 'export declare const test: string;')
42 | done()
43 | }))
44 |
45 | fs.writeFileSync(p(vueFileName), vue('export const test: string = ""'))
46 | })
47 |
48 | it('updates d.ts if .vue file is updated', done => {
49 | distFileWatcher.on('add', once(() => {
50 | test(p(dFileName), 'export declare const test: string;')
51 | fs.writeFileSync(p(vueFileName), vue('export const foo: number = 1'))
52 | }))
53 |
54 | distFileWatcher.on('change', once(() => {
55 | test(p(dFileName), 'export declare const foo: number;')
56 | done()
57 | }))
58 |
59 | fs.writeFileSync(p(vueFileName), vue('export const test: string = ""'))
60 | })
61 |
62 | it('removes d.ts if corresponding .vue file is removed', done => {
63 | distFileWatcher.on('add', once(() => {
64 | assert.ok(fs.existsSync(p(dFileName)))
65 | fs.unlinkSync(p(vueFileName))
66 | }))
67 |
68 | distFileWatcher.on('unlink', once(() => {
69 | assert.equal(fs.existsSync(p(dFileName)), false)
70 | done()
71 | }))
72 |
73 | fs.writeFileSync(p(vueFileName), vue('export const test: string = ""'))
74 | })
75 |
76 | it('allows re-add .vue file', done => {
77 | fs.writeFileSync(p(vueFileName), vue('export declare let a: string'))
78 | fs.unlinkSync(p(vueFileName))
79 |
80 | distFileWatcher.on('add', once(() => {
81 | test(p(dFileName), 'export declare let b: boolean;')
82 | done()
83 | }))
84 |
85 | fs.writeFileSync(p(vueFileName), vue('export declare let b: boolean'))
86 | })
87 |
88 | it('watches addition of derived ts file via .vue file', done => {
89 | fs.writeFileSync(p(vueFileName), vue('', { src: 'test-src.ts' }))
90 |
91 | distFileWatcher.on('add', once(() => {
92 | test(p(dFileName), 'export declare const test: string;')
93 | done()
94 | }))
95 |
96 | fs.writeFileSync(p('test-src.ts'), 'export const test: string = ""')
97 | })
98 |
99 | it('watches changes of derived ts file via .vue file', done => {
100 | const src = 'test-src.ts'
101 |
102 | distFileWatcher.on('add', once(() => {
103 | test(p(dFileName), 'export declare const b: string;')
104 | fs.writeFileSync(p(src), 'export const a: number = 123')
105 | test(p(src), 'export const a: number = 123')
106 | }))
107 |
108 | distFileWatcher.on('change', once(() => {
109 | test(p(src), 'export const a: number = 123')
110 | test(p(dFileName), 'export declare const a: number;')
111 | done()
112 | }))
113 |
114 | fs.writeFileSync(p(vueFileName), vue('', { src }))
115 | fs.writeFileSync(p(src), 'export const b: string = ""')
116 | })
117 | })
118 |
119 | function once (fn: () => void): (p: string) => void {
120 | let done = false
121 | return () => {
122 | if (done) return
123 | fn()
124 | done = true
125 | }
126 | }
127 |
128 | function test (file: string, expected: string) {
129 | const data = fs.readFileSync(file, 'utf8')
130 | const [a, b] = [data.trim(), expected.trim()]
131 | assert.equal(a, b)
132 | }
133 |
134 | function vue (code: string, attrs: Record = {}): string {
135 | const attrsStr = Object.keys(attrs)
136 | .map(key => {
137 | return `${key}="${attrs[key]}"`
138 | })
139 | .join(' ')
140 |
141 | return ''
142 | }
143 |
--------------------------------------------------------------------------------
/test/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.base.json",
3 | "compilerOptions": {
4 | "outDir": "../.tmp",
5 | "experimentalDecorators": true,
6 | "sourceMap": true
7 | },
8 | "include": [
9 | "**/*.{ts,tsx}",
10 | "../src/**/*.{ts.tsx}"
11 | ]
12 | }
13 |
--------------------------------------------------------------------------------
/tsconfig.base.json:
--------------------------------------------------------------------------------
1 | {
2 | "compileOnSave": false,
3 | "compilerOptions": {
4 | "jsx": "preserve",
5 | "jsxFactory": "h",
6 | "target": "es5",
7 | "module": "commonjs",
8 | "moduleResolution": "node",
9 | "lib": [
10 | "es2015",
11 | "dom"
12 | ],
13 | "strict": true
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/tslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "tslint-config-ktsn"
3 | }
4 |
--------------------------------------------------------------------------------
/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.5.5"
7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d"
8 | integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==
9 | dependencies:
10 | "@babel/highlight" "^7.0.0"
11 |
12 | "@babel/highlight@^7.0.0":
13 | version "7.5.0"
14 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540"
15 | integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==
16 | dependencies:
17 | chalk "^2.0.0"
18 | esutils "^2.0.2"
19 | js-tokens "^4.0.0"
20 |
21 | "@types/color-name@^1.1.1":
22 | version "1.1.1"
23 | resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0"
24 | integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==
25 |
26 | "@types/commander@^2.12.2":
27 | version "2.12.2"
28 | resolved "https://registry.yarnpkg.com/@types/commander/-/commander-2.12.2.tgz#183041a23842d4281478fa5d23c5ca78e6fd08ae"
29 | integrity sha512-0QEFiR8ljcHp9bAbWxecjVRuAMr16ivPiGOw6KFQBVrVd0RQIcM3xKdRisH2EDWgVWujiYtHwhSkSUoAAGzH7Q==
30 | dependencies:
31 | commander "*"
32 |
33 | "@types/empower@*":
34 | version "1.2.30"
35 | resolved "https://registry.yarnpkg.com/@types/empower/-/empower-1.2.30.tgz#c7cfc14b3a61e54c74c674c1fbc91ba2df0d1392"
36 | integrity sha1-x8/BSzph5Ux0xnTB+8kbot8NE5I=
37 |
38 | "@types/events@*":
39 | version "3.0.0"
40 | resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7"
41 | integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==
42 |
43 | "@types/glob-to-regexp@^0.4.0":
44 | version "0.4.0"
45 | resolved "https://registry.yarnpkg.com/@types/glob-to-regexp/-/glob-to-regexp-0.4.0.tgz#a295047724f4554be8192b4c779c5e44920a2fdc"
46 | integrity sha512-unszpTzAknG612PxqtoNUkLM0T3rIAXT8oE9Dyhhbl4eew91jLqcgJZOu5j7GztHg09R8LWCMocRU1ohDFY7Pw==
47 |
48 | "@types/glob@*":
49 | version "7.1.1"
50 | resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575"
51 | integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==
52 | dependencies:
53 | "@types/events" "*"
54 | "@types/minimatch" "*"
55 | "@types/node" "*"
56 |
57 | "@types/glob@^7.1.3":
58 | version "7.1.3"
59 | resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183"
60 | integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==
61 | dependencies:
62 | "@types/minimatch" "*"
63 | "@types/node" "*"
64 |
65 | "@types/memory-fs@^0.3.2":
66 | version "0.3.2"
67 | resolved "https://registry.yarnpkg.com/@types/memory-fs/-/memory-fs-0.3.2.tgz#5d4753f9b390cb077c8c8af97bc96463399ceccd"
68 | integrity sha512-j5AcZo7dbMxHoOimcHEIh0JZe5e1b8q8AqGSpZJrYc7xOgCIP79cIjTdx5jSDLtySnQDwkDTqwlC7Xw7uXw7qg==
69 | dependencies:
70 | "@types/node" "*"
71 |
72 | "@types/minimatch@*":
73 | version "3.0.3"
74 | resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"
75 | integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==
76 |
77 | "@types/mocha@^8.0.0":
78 | version "8.0.0"
79 | resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-8.0.0.tgz#b0ba1c5b4cb3880c51a6b488ad007a657d1be888"
80 | integrity sha512-jWeYcTo3sCH/rMgsdYXDTO85GNRyTCII5dayMIu/ZO4zbEot1E3iNGaOwpLReLUHjeNQFkgeNNVYlY4dX6azQQ==
81 |
82 | "@types/node@*":
83 | version "12.12.14"
84 | resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.14.tgz#1c1d6e3c75dba466e0326948d56e8bd72a1903d2"
85 | integrity sha512-u/SJDyXwuihpwjXy7hOOghagLEV1KdAST6syfnOk6QZAMzZuWZqXy5aYYZbh8Jdpd4escVFP0MvftHNDb9pruA==
86 |
87 | "@types/node@^14.0.24":
88 | version "14.0.24"
89 | resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.24.tgz#b0f86f58564fa02a28b68f8b55d4cdec42e3b9d6"
90 | integrity sha512-btt/oNOiDWcSuI721MdL8VQGnjsKjlTMdrKyTcLCKeQp/n4AAMFJ961wMbp+09y8WuGPClDEv07RIItdXKIXAA==
91 |
92 | "@types/power-assert-formatter@*":
93 | version "1.4.28"
94 | resolved "https://registry.yarnpkg.com/@types/power-assert-formatter/-/power-assert-formatter-1.4.28.tgz#25b8fddb6322259c6b91c35338d39b0f8e524252"
95 | integrity sha1-Jbj922MiJZxrkcNTONObD45SQlI=
96 |
97 | "@types/power-assert@^1.5.3":
98 | version "1.5.3"
99 | resolved "https://registry.yarnpkg.com/@types/power-assert/-/power-assert-1.5.3.tgz#9e415f8d5703375c3d5d7bf912ca7ac334faf0c6"
100 | integrity sha512-PzV9RX7RRUBYLxp52ipXo9dSvBnqVR09mcvGt3hXuzoJt0EUpPPv0X3btjCQqrhQ1xLbyt0dfPiGfRfrZB4G0A==
101 | dependencies:
102 | "@types/empower" "*"
103 | "@types/power-assert-formatter" "*"
104 |
105 | "@types/promise.allsettled@^1.0.3":
106 | version "1.0.3"
107 | resolved "https://registry.yarnpkg.com/@types/promise.allsettled/-/promise.allsettled-1.0.3.tgz#6f3166618226a570b98c8250fc78687a912e56d5"
108 | integrity sha512-b/IFHHTkYkTqu41IH9UtpICwqrpKj2oNlb4KHPzFQDMiz+h1BgAeATeO0/XTph4+UkH9W2U0E4B4j64KWOovag==
109 |
110 | "@types/rimraf@^3.0.0":
111 | version "3.0.0"
112 | resolved "https://registry.yarnpkg.com/@types/rimraf/-/rimraf-3.0.0.tgz#b9d03f090ece263671898d57bb7bb007023ac19f"
113 | integrity sha512-7WhJ0MdpFgYQPXlF4Dx+DhgvlPCfz/x5mHaeDQAKhcenvQP1KCpLQ18JklAqeGMYSAT2PxLpzd0g2/HE7fj7hQ==
114 | dependencies:
115 | "@types/glob" "*"
116 | "@types/node" "*"
117 |
118 | "@types/throttle-debounce@^2.1.0":
119 | version "2.1.0"
120 | resolved "https://registry.yarnpkg.com/@types/throttle-debounce/-/throttle-debounce-2.1.0.tgz#1c3df624bfc4b62f992d3012b84c56d41eab3776"
121 | integrity sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ==
122 |
123 | acorn-es7-plugin@^1.0.10, acorn-es7-plugin@^1.0.12:
124 | version "1.1.7"
125 | resolved "https://registry.yarnpkg.com/acorn-es7-plugin/-/acorn-es7-plugin-1.1.7.tgz#f2ee1f3228a90eead1245f9ab1922eb2e71d336b"
126 | integrity sha1-8u4fMiipDurRJF+asZIusucdM2s=
127 |
128 | acorn@^5.0.0:
129 | version "5.7.3"
130 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279"
131 | integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==
132 |
133 | amdefine@>=0.0.4:
134 | version "1.0.1"
135 | resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
136 | integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=
137 |
138 | ansi-colors@4.1.1:
139 | version "4.1.1"
140 | resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
141 | integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
142 |
143 | ansi-regex@^3.0.0:
144 | version "3.0.0"
145 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
146 | integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
147 |
148 | ansi-regex@^4.1.0:
149 | version "4.1.0"
150 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
151 | integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
152 |
153 | ansi-styles@^3.2.0, ansi-styles@^3.2.1:
154 | version "3.2.1"
155 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
156 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
157 | dependencies:
158 | color-convert "^1.9.0"
159 |
160 | ansi-styles@^4.1.0:
161 | version "4.2.0"
162 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.0.tgz#5681f0dcf7ae5880a7841d8831c4724ed9cc0172"
163 | integrity sha512-7kFQgnEaMdRtwf6uSfUnVr9gSGC7faurn+J/Mv90/W+iTtN0405/nLdopfMWwchyxhbGYl6TC4Sccn9TUkGAgg==
164 | dependencies:
165 | "@types/color-name" "^1.1.1"
166 | color-convert "^2.0.1"
167 |
168 | anymatch@~3.1.1:
169 | version "3.1.1"
170 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142"
171 | integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==
172 | dependencies:
173 | normalize-path "^3.0.0"
174 | picomatch "^2.0.4"
175 |
176 | arg@^4.1.0:
177 | version "4.1.2"
178 | resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.2.tgz#e70c90579e02c63d80e3ad4e31d8bfdb8bd50064"
179 | integrity sha512-+ytCkGcBtHZ3V2r2Z06AncYO8jz46UEamcspGoU8lHcEbpn6J77QK0vdWvChsclg/tM5XIJC5tnjmPp7Eq6Obg==
180 |
181 | argparse@^1.0.7:
182 | version "1.0.10"
183 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
184 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
185 | dependencies:
186 | sprintf-js "~1.0.2"
187 |
188 | array-filter@^1.0.0:
189 | version "1.0.0"
190 | resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-1.0.0.tgz#baf79e62e6ef4c2a4c0b831232daffec251f9d83"
191 | integrity sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=
192 |
193 | array-find@^1.0.0:
194 | version "1.0.0"
195 | resolved "https://registry.yarnpkg.com/array-find/-/array-find-1.0.0.tgz#6c8e286d11ed768327f8e62ecee87353ca3e78b8"
196 | integrity sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg=
197 |
198 | array.prototype.map@^1.0.1:
199 | version "1.0.2"
200 | resolved "https://registry.yarnpkg.com/array.prototype.map/-/array.prototype.map-1.0.2.tgz#9a4159f416458a23e9483078de1106b2ef68f8ec"
201 | integrity sha512-Az3OYxgsa1g7xDYp86l0nnN4bcmuEITGe1rbdEBVkrqkzMgDcbdQ2R7r41pNzti+4NMces3H8gMmuioZUilLgw==
202 | dependencies:
203 | define-properties "^1.1.3"
204 | es-abstract "^1.17.0-next.1"
205 | es-array-method-boxes-properly "^1.0.0"
206 | is-string "^1.0.4"
207 |
208 | balanced-match@^1.0.0:
209 | version "1.0.0"
210 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
211 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
212 |
213 | binary-extensions@^2.0.0:
214 | version "2.0.0"
215 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c"
216 | integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==
217 |
218 | brace-expansion@^1.1.7:
219 | version "1.1.11"
220 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
221 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
222 | dependencies:
223 | balanced-match "^1.0.0"
224 | concat-map "0.0.1"
225 |
226 | braces@~3.0.2:
227 | version "3.0.2"
228 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
229 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
230 | dependencies:
231 | fill-range "^7.0.1"
232 |
233 | browser-stdout@1.3.1:
234 | version "1.3.1"
235 | resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60"
236 | integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==
237 |
238 | buffer-from@^1.0.0:
239 | version "1.1.1"
240 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
241 | integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
242 |
243 | builtin-modules@^1.1.1:
244 | version "1.1.1"
245 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
246 | integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=
247 |
248 | call-matcher@^1.0.0:
249 | version "1.1.0"
250 | resolved "https://registry.yarnpkg.com/call-matcher/-/call-matcher-1.1.0.tgz#23b2c1bc7a8394c8be28609d77ddbd5786680432"
251 | integrity sha512-IoQLeNwwf9KTNbtSA7aEBb1yfDbdnzwjCetjkC8io5oGeOmK2CBNdg0xr+tadRYKO0p7uQyZzvon0kXlZbvGrw==
252 | dependencies:
253 | core-js "^2.0.0"
254 | deep-equal "^1.0.0"
255 | espurify "^1.6.0"
256 | estraverse "^4.0.0"
257 |
258 | call-signature@0.0.2:
259 | version "0.0.2"
260 | resolved "https://registry.yarnpkg.com/call-signature/-/call-signature-0.0.2.tgz#a84abc825a55ef4cb2b028bd74e205a65b9a4996"
261 | integrity sha1-qEq8glpV70yysCi9dOIFpluaSZY=
262 |
263 | camelcase@^5.0.0:
264 | version "5.3.1"
265 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
266 | integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
267 |
268 | chalk@^2.0.0, chalk@^2.3.0, chalk@^2.4.2:
269 | version "2.4.2"
270 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
271 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
272 | dependencies:
273 | ansi-styles "^3.2.1"
274 | escape-string-regexp "^1.0.5"
275 | supports-color "^5.3.0"
276 |
277 | chalk@^4.1.0:
278 | version "4.1.0"
279 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a"
280 | integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==
281 | dependencies:
282 | ansi-styles "^4.1.0"
283 | supports-color "^7.1.0"
284 |
285 | chokidar@3.3.1:
286 | version "3.3.1"
287 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.1.tgz#c84e5b3d18d9a4d77558fef466b1bf16bbeb3450"
288 | integrity sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==
289 | dependencies:
290 | anymatch "~3.1.1"
291 | braces "~3.0.2"
292 | glob-parent "~5.1.0"
293 | is-binary-path "~2.1.0"
294 | is-glob "~4.0.1"
295 | normalize-path "~3.0.0"
296 | readdirp "~3.3.0"
297 | optionalDependencies:
298 | fsevents "~2.1.2"
299 |
300 | chokidar@^3.4.1:
301 | version "3.4.1"
302 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.1.tgz#e905bdecf10eaa0a0b1db0c664481cc4cbc22ba1"
303 | integrity sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g==
304 | dependencies:
305 | anymatch "~3.1.1"
306 | braces "~3.0.2"
307 | glob-parent "~5.1.0"
308 | is-binary-path "~2.1.0"
309 | is-glob "~4.0.1"
310 | normalize-path "~3.0.0"
311 | readdirp "~3.4.0"
312 | optionalDependencies:
313 | fsevents "~2.1.2"
314 |
315 | cliui@^5.0.0:
316 | version "5.0.0"
317 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5"
318 | integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==
319 | dependencies:
320 | string-width "^3.1.0"
321 | strip-ansi "^5.2.0"
322 | wrap-ansi "^5.1.0"
323 |
324 | color-convert@^1.9.0:
325 | version "1.9.3"
326 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
327 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
328 | dependencies:
329 | color-name "1.1.3"
330 |
331 | color-convert@^2.0.1:
332 | version "2.0.1"
333 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
334 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
335 | dependencies:
336 | color-name "~1.1.4"
337 |
338 | color-name@1.1.3:
339 | version "1.1.3"
340 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
341 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
342 |
343 | color-name@~1.1.4:
344 | version "1.1.4"
345 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
346 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
347 |
348 | commander@*:
349 | version "4.0.1"
350 | resolved "https://registry.yarnpkg.com/commander/-/commander-4.0.1.tgz#b67622721785993182e807f4883633e6401ba53c"
351 | integrity sha512-IPF4ouhCP+qdlcmCedhxX4xiGBPyigb8v5NeUp+0LyhwLgxMqyp3S0vl7TAPfS/hiP7FC3caI/PB9lTmP8r1NA==
352 |
353 | commander@^2.12.1:
354 | version "2.20.3"
355 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
356 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
357 |
358 | commander@^6.0.0:
359 | version "6.0.0"
360 | resolved "https://registry.yarnpkg.com/commander/-/commander-6.0.0.tgz#2b270da94f8fb9014455312f829a1129dbf8887e"
361 | integrity sha512-s7EA+hDtTYNhuXkTlhqew4txMZVdszBmKWSPEMxGr8ru8JXR7bLUFIAtPhcSuFdJQ0ILMxnJi8GkQL0yvDy/YA==
362 |
363 | concat-map@0.0.1:
364 | version "0.0.1"
365 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
366 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
367 |
368 | convert-source-map@^1.1.1:
369 | version "1.7.0"
370 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
371 | integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==
372 | dependencies:
373 | safe-buffer "~5.1.1"
374 |
375 | core-js@^2.0.0:
376 | version "2.6.10"
377 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.10.tgz#8a5b8391f8cc7013da703411ce5b585706300d7f"
378 | integrity sha512-I39t74+4t+zau64EN1fE5v2W31Adtc/REhzWN+gWRRXg6WH5qAsZm62DHpQ1+Yhe4047T55jvzz7MUqF/dBBlA==
379 |
380 | core-util-is@~1.0.0:
381 | version "1.0.2"
382 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
383 | integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
384 |
385 | d@1, d@^1.0.1:
386 | version "1.0.1"
387 | resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a"
388 | integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==
389 | dependencies:
390 | es5-ext "^0.10.50"
391 | type "^1.0.1"
392 |
393 | de-indent@^1.0.2:
394 | version "1.0.2"
395 | resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"
396 | integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=
397 |
398 | debug@3.2.6:
399 | version "3.2.6"
400 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
401 | integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==
402 | dependencies:
403 | ms "^2.1.1"
404 |
405 | decamelize@^1.2.0:
406 | version "1.2.0"
407 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
408 | integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
409 |
410 | deep-equal@^1.0.0:
411 | version "1.1.1"
412 | resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a"
413 | integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==
414 | dependencies:
415 | is-arguments "^1.0.4"
416 | is-date-object "^1.0.1"
417 | is-regex "^1.0.4"
418 | object-is "^1.0.1"
419 | object-keys "^1.1.1"
420 | regexp.prototype.flags "^1.2.0"
421 |
422 | deep-is@~0.1.3:
423 | version "0.1.3"
424 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
425 | integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
426 |
427 | define-properties@^1.1.2, define-properties@^1.1.3:
428 | version "1.1.3"
429 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
430 | integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
431 | dependencies:
432 | object-keys "^1.0.12"
433 |
434 | diff-match-patch@^1.0.0:
435 | version "1.0.4"
436 | resolved "https://registry.yarnpkg.com/diff-match-patch/-/diff-match-patch-1.0.4.tgz#6ac4b55237463761c4daf0dc603eb869124744b1"
437 | integrity sha512-Uv3SW8bmH9nAtHKaKSanOQmj2DnlH65fUpcrMdfdaOxUG02QQ4YGZ8AE7kKOMisF7UqvOlGKVYWRvezdncW9lg==
438 |
439 | diff@4.0.2:
440 | version "4.0.2"
441 | resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
442 | integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
443 |
444 | diff@^4.0.1:
445 | version "4.0.1"
446 | resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.1.tgz#0c667cb467ebbb5cea7f14f135cc2dba7780a8ff"
447 | integrity sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==
448 |
449 | doctrine@^0.7.2:
450 | version "0.7.2"
451 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-0.7.2.tgz#7cb860359ba3be90e040b26b729ce4bfa654c523"
452 | integrity sha1-fLhgNZujvpDgQLJrcpzkv6ZUxSM=
453 | dependencies:
454 | esutils "^1.1.6"
455 | isarray "0.0.1"
456 |
457 | eastasianwidth@^0.2.0:
458 | version "0.2.0"
459 | resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
460 | integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
461 |
462 | emoji-regex@^7.0.1:
463 | version "7.0.3"
464 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
465 | integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
466 |
467 | empower-assert@^1.0.0:
468 | version "1.1.0"
469 | resolved "https://registry.yarnpkg.com/empower-assert/-/empower-assert-1.1.0.tgz#8d327fbe69a88af90dda98d1bfc9829d2a24fd62"
470 | integrity sha512-Ylck0Q6p8y/LpNzYeBccaxAPm2ZyuqBgErgZpO9KT0HuQWF0sJckBKCLmgS1/DEXEiyBi9XtYh3clZm5cAdARw==
471 | dependencies:
472 | estraverse "^4.2.0"
473 |
474 | empower-core@^1.2.0:
475 | version "1.2.0"
476 | resolved "https://registry.yarnpkg.com/empower-core/-/empower-core-1.2.0.tgz#ce3fb2484d5187fa29c23fba8344b0b2fdf5601c"
477 | integrity sha512-g6+K6Geyc1o6FdXs9HwrXleCFan7d66G5xSCfSF7x1mJDCes6t0om9lFQG3zOrzh3Bkb/45N0cZ5Gqsf7YrzGQ==
478 | dependencies:
479 | call-signature "0.0.2"
480 | core-js "^2.0.0"
481 |
482 | empower@^1.3.1:
483 | version "1.3.1"
484 | resolved "https://registry.yarnpkg.com/empower/-/empower-1.3.1.tgz#768979cbbb36d71d8f5edaab663deacb9dab916c"
485 | integrity sha512-uB6/ViBaawOO/uujFADTK3SqdYlxYNn+N4usK9MRKZ4Hbn/1QSy8k2PezxCA2/+JGbF8vd/eOfghZ90oOSDZCA==
486 | dependencies:
487 | core-js "^2.0.0"
488 | empower-core "^1.2.0"
489 |
490 | errno@^0.1.3:
491 | version "0.1.7"
492 | resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618"
493 | integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==
494 | dependencies:
495 | prr "~1.0.1"
496 |
497 | es-abstract@^1.17.0-next.1, es-abstract@^1.17.4:
498 | version "1.17.4"
499 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.4.tgz#e3aedf19706b20e7c2594c35fc0d57605a79e184"
500 | integrity sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==
501 | dependencies:
502 | es-to-primitive "^1.2.1"
503 | function-bind "^1.1.1"
504 | has "^1.0.3"
505 | has-symbols "^1.0.1"
506 | is-callable "^1.1.5"
507 | is-regex "^1.0.5"
508 | object-inspect "^1.7.0"
509 | object-keys "^1.1.1"
510 | object.assign "^4.1.0"
511 | string.prototype.trimleft "^2.1.1"
512 | string.prototype.trimright "^2.1.1"
513 |
514 | es-array-method-boxes-properly@^1.0.0:
515 | version "1.0.0"
516 | resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e"
517 | integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==
518 |
519 | es-get-iterator@^1.0.2:
520 | version "1.1.0"
521 | resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.0.tgz#bb98ad9d6d63b31aacdc8f89d5d0ee57bcb5b4c8"
522 | integrity sha512-UfrmHuWQlNMTs35e1ypnvikg6jCz3SK8v8ImvmDsh36fCVUR1MqoFDiyn0/k52C8NqO3YsO8Oe0azeesNuqSsQ==
523 | dependencies:
524 | es-abstract "^1.17.4"
525 | has-symbols "^1.0.1"
526 | is-arguments "^1.0.4"
527 | is-map "^2.0.1"
528 | is-set "^2.0.1"
529 | is-string "^1.0.5"
530 | isarray "^2.0.5"
531 |
532 | es-to-primitive@^1.2.1:
533 | version "1.2.1"
534 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
535 | integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
536 | dependencies:
537 | is-callable "^1.1.4"
538 | is-date-object "^1.0.1"
539 | is-symbol "^1.0.2"
540 |
541 | es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@~0.10.14:
542 | version "0.10.53"
543 | resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1"
544 | integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==
545 | dependencies:
546 | es6-iterator "~2.0.3"
547 | es6-symbol "~3.1.3"
548 | next-tick "~1.0.0"
549 |
550 | es6-iterator@^2.0.3, es6-iterator@~2.0.1, es6-iterator@~2.0.3:
551 | version "2.0.3"
552 | resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7"
553 | integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c=
554 | dependencies:
555 | d "1"
556 | es5-ext "^0.10.35"
557 | es6-symbol "^3.1.1"
558 |
559 | es6-map@^0.1.3:
560 | version "0.1.5"
561 | resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0"
562 | integrity sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=
563 | dependencies:
564 | d "1"
565 | es5-ext "~0.10.14"
566 | es6-iterator "~2.0.1"
567 | es6-set "~0.1.5"
568 | es6-symbol "~3.1.1"
569 | event-emitter "~0.3.5"
570 |
571 | es6-set@~0.1.5:
572 | version "0.1.5"
573 | resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1"
574 | integrity sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=
575 | dependencies:
576 | d "1"
577 | es5-ext "~0.10.14"
578 | es6-iterator "~2.0.1"
579 | es6-symbol "3.1.1"
580 | event-emitter "~0.3.5"
581 |
582 | es6-symbol@3.1.1:
583 | version "3.1.1"
584 | resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77"
585 | integrity sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=
586 | dependencies:
587 | d "1"
588 | es5-ext "~0.10.14"
589 |
590 | es6-symbol@^3.1.1, es6-symbol@~3.1.1, es6-symbol@~3.1.3:
591 | version "3.1.3"
592 | resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18"
593 | integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==
594 | dependencies:
595 | d "^1.0.1"
596 | ext "^1.1.2"
597 |
598 | es6-weak-map@^2.0.1:
599 | version "2.0.3"
600 | resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53"
601 | integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==
602 | dependencies:
603 | d "1"
604 | es5-ext "^0.10.46"
605 | es6-iterator "^2.0.3"
606 | es6-symbol "^3.1.1"
607 |
608 | escallmatch@^1.5.0:
609 | version "1.5.0"
610 | resolved "https://registry.yarnpkg.com/escallmatch/-/escallmatch-1.5.0.tgz#50099d86e8091b092df8ddfbc3f9a6fb05a024d0"
611 | integrity sha1-UAmdhugJGwkt+N37w/mm+wWgJNA=
612 | dependencies:
613 | call-matcher "^1.0.0"
614 | esprima "^2.0.0"
615 |
616 | escape-string-regexp@1.0.5, escape-string-regexp@^1.0.5:
617 | version "1.0.5"
618 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
619 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
620 |
621 | escodegen@^1.10.0, escodegen@^1.7.0:
622 | version "1.12.0"
623 | resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.12.0.tgz#f763daf840af172bb3a2b6dd7219c0e17f7ff541"
624 | integrity sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg==
625 | dependencies:
626 | esprima "^3.1.3"
627 | estraverse "^4.2.0"
628 | esutils "^2.0.2"
629 | optionator "^0.8.1"
630 | optionalDependencies:
631 | source-map "~0.6.1"
632 |
633 | escope@^3.3.0:
634 | version "3.6.0"
635 | resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3"
636 | integrity sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=
637 | dependencies:
638 | es6-map "^0.1.3"
639 | es6-weak-map "^2.0.1"
640 | esrecurse "^4.1.0"
641 | estraverse "^4.1.1"
642 |
643 | espower-location-detector@^1.0.0:
644 | version "1.0.0"
645 | resolved "https://registry.yarnpkg.com/espower-location-detector/-/espower-location-detector-1.0.0.tgz#a17b7ecc59d30e179e2bef73fb4137704cb331b5"
646 | integrity sha1-oXt+zFnTDheeK+9z+0E3cEyzMbU=
647 | dependencies:
648 | is-url "^1.2.1"
649 | path-is-absolute "^1.0.0"
650 | source-map "^0.5.0"
651 | xtend "^4.0.0"
652 |
653 | espower-source@^2.3.0:
654 | version "2.3.0"
655 | resolved "https://registry.yarnpkg.com/espower-source/-/espower-source-2.3.0.tgz#43e93b2c18af50018bdb1bea7a1271f4a1c125f4"
656 | integrity sha512-Wc4kC4zUAEV7Qt31JRPoBUc5jjowHRylml2L2VaDQ1XEbnqQofGWx+gPR03TZAPokAMl5dqyL36h3ITyMXy3iA==
657 | dependencies:
658 | acorn "^5.0.0"
659 | acorn-es7-plugin "^1.0.10"
660 | convert-source-map "^1.1.1"
661 | empower-assert "^1.0.0"
662 | escodegen "^1.10.0"
663 | espower "^2.1.1"
664 | estraverse "^4.0.0"
665 | merge-estraverse-visitors "^1.0.0"
666 | multi-stage-sourcemap "^0.2.1"
667 | path-is-absolute "^1.0.0"
668 | xtend "^4.0.0"
669 |
670 | espower-typescript@^9.0.2:
671 | version "9.0.2"
672 | resolved "https://registry.yarnpkg.com/espower-typescript/-/espower-typescript-9.0.2.tgz#43148b49d94147d477e54c6a7f7ae2ace086d893"
673 | integrity sha512-d8A0Sz67iOHhsMw3Qk1Jwr/G4ZNSm+o0anl+/rQ2SxfnvL3+Y6vSzPUnSgT++OR9zGlHFG9f7a3jmJO/UIr3HA==
674 | dependencies:
675 | espower-source "^2.3.0"
676 | minimatch "^3.0.3"
677 | source-map-support "^0.5.9"
678 | ts-node "^8.0.3"
679 |
680 | espower@^2.1.1:
681 | version "2.1.2"
682 | resolved "https://registry.yarnpkg.com/espower/-/espower-2.1.2.tgz#824f88788f9fedf4cf0f928f5e11bb907ce9b918"
683 | integrity sha512-2qa3aEFtcgPB782jTKDPu82hOdw8+zJsWdOn12Tey8XlexHTqsYUIdLC2B7cUECENXly0vZblH1CEZcqttPNjw==
684 | dependencies:
685 | array-find "^1.0.0"
686 | escallmatch "^1.5.0"
687 | escodegen "^1.7.0"
688 | escope "^3.3.0"
689 | espower-location-detector "^1.0.0"
690 | espurify "^1.3.0"
691 | estraverse "^4.1.0"
692 | source-map "^0.5.0"
693 | type-name "^2.0.0"
694 |
695 | esprima@^2.0.0:
696 | version "2.7.3"
697 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
698 | integrity sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=
699 |
700 | esprima@^3.1.3:
701 | version "3.1.3"
702 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
703 | integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=
704 |
705 | esprima@^4.0.0:
706 | version "4.0.1"
707 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
708 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
709 |
710 | espurify@^1.3.0, espurify@^1.6.0:
711 | version "1.8.1"
712 | resolved "https://registry.yarnpkg.com/espurify/-/espurify-1.8.1.tgz#5746c6c1ab42d302de10bd1d5bf7f0e8c0515056"
713 | integrity sha512-ZDko6eY/o+D/gHCWyHTU85mKDgYcS4FJj7S+YD6WIInm7GQ6AnOjmcL4+buFV/JOztVLELi/7MmuGU5NHta0Mg==
714 | dependencies:
715 | core-js "^2.0.0"
716 |
717 | esrecurse@^4.1.0:
718 | version "4.2.1"
719 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"
720 | integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==
721 | dependencies:
722 | estraverse "^4.1.0"
723 |
724 | estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
725 | version "4.3.0"
726 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
727 | integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
728 |
729 | esutils@^1.1.6:
730 | version "1.1.6"
731 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.1.6.tgz#c01ccaa9ae4b897c6d0c3e210ae52f3c7a844375"
732 | integrity sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U=
733 |
734 | esutils@^2.0.2:
735 | version "2.0.3"
736 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
737 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
738 |
739 | event-emitter@~0.3.5:
740 | version "0.3.5"
741 | resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39"
742 | integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=
743 | dependencies:
744 | d "1"
745 | es5-ext "~0.10.14"
746 |
747 | ext@^1.1.2:
748 | version "1.4.0"
749 | resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244"
750 | integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==
751 | dependencies:
752 | type "^2.0.0"
753 |
754 | fast-levenshtein@~2.0.6:
755 | version "2.0.6"
756 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
757 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
758 |
759 | fill-range@^7.0.1:
760 | version "7.0.1"
761 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
762 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
763 | dependencies:
764 | to-regex-range "^5.0.1"
765 |
766 | find-up@4.1.0:
767 | version "4.1.0"
768 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
769 | integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
770 | dependencies:
771 | locate-path "^5.0.0"
772 | path-exists "^4.0.0"
773 |
774 | find-up@^3.0.0:
775 | version "3.0.0"
776 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
777 | integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==
778 | dependencies:
779 | locate-path "^3.0.0"
780 |
781 | flat@^4.1.0:
782 | version "4.1.0"
783 | resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.0.tgz#090bec8b05e39cba309747f1d588f04dbaf98db2"
784 | integrity sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==
785 | dependencies:
786 | is-buffer "~2.0.3"
787 |
788 | fs.realpath@^1.0.0:
789 | version "1.0.0"
790 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
791 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
792 |
793 | fsevents@~2.1.2:
794 | version "2.1.2"
795 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805"
796 | integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==
797 |
798 | function-bind@^1.1.1:
799 | version "1.1.1"
800 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
801 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
802 |
803 | get-caller-file@^2.0.1:
804 | version "2.0.5"
805 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
806 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
807 |
808 | glob-parent@~5.1.0:
809 | version "5.1.0"
810 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2"
811 | integrity sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==
812 | dependencies:
813 | is-glob "^4.0.1"
814 |
815 | glob-to-regexp@^0.4.1:
816 | version "0.4.1"
817 | resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e"
818 | integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==
819 |
820 | glob@7.1.6, glob@^7.1.1, glob@^7.1.3, glob@^7.1.6:
821 | version "7.1.6"
822 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
823 | integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
824 | dependencies:
825 | fs.realpath "^1.0.0"
826 | inflight "^1.0.4"
827 | inherits "2"
828 | minimatch "^3.0.4"
829 | once "^1.3.0"
830 | path-is-absolute "^1.0.0"
831 |
832 | growl@1.10.5:
833 | version "1.10.5"
834 | resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e"
835 | integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==
836 |
837 | has-flag@^3.0.0:
838 | version "3.0.0"
839 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
840 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
841 |
842 | has-flag@^4.0.0:
843 | version "4.0.0"
844 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
845 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
846 |
847 | has-symbols@^1.0.0, has-symbols@^1.0.1:
848 | version "1.0.1"
849 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
850 | integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==
851 |
852 | has@^1.0.3:
853 | version "1.0.3"
854 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
855 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
856 | dependencies:
857 | function-bind "^1.1.1"
858 |
859 | he@1.2.0, he@^1.1.0:
860 | version "1.2.0"
861 | resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
862 | integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
863 |
864 | indexof@0.0.1:
865 | version "0.0.1"
866 | resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
867 | integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=
868 |
869 | inflight@^1.0.4:
870 | version "1.0.6"
871 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
872 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
873 | dependencies:
874 | once "^1.3.0"
875 | wrappy "1"
876 |
877 | inherits@2, inherits@~2.0.3:
878 | version "2.0.4"
879 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
880 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
881 |
882 | is-arguments@^1.0.4:
883 | version "1.0.4"
884 | resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3"
885 | integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==
886 |
887 | is-binary-path@~2.1.0:
888 | version "2.1.0"
889 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
890 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
891 | dependencies:
892 | binary-extensions "^2.0.0"
893 |
894 | is-buffer@~2.0.3:
895 | version "2.0.4"
896 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623"
897 | integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==
898 |
899 | is-callable@^1.1.4, is-callable@^1.1.5:
900 | version "1.1.5"
901 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab"
902 | integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==
903 |
904 | is-date-object@^1.0.1:
905 | version "1.0.2"
906 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e"
907 | integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==
908 |
909 | is-extglob@^2.1.1:
910 | version "2.1.1"
911 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
912 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
913 |
914 | is-fullwidth-code-point@^2.0.0:
915 | version "2.0.0"
916 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
917 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
918 |
919 | is-glob@^4.0.1, is-glob@~4.0.1:
920 | version "4.0.1"
921 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
922 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
923 | dependencies:
924 | is-extglob "^2.1.1"
925 |
926 | is-map@^2.0.1:
927 | version "2.0.1"
928 | resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.1.tgz#520dafc4307bb8ebc33b813de5ce7c9400d644a1"
929 | integrity sha512-T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw==
930 |
931 | is-number@^7.0.0:
932 | version "7.0.0"
933 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
934 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
935 |
936 | is-regex@^1.0.4, is-regex@^1.0.5:
937 | version "1.0.5"
938 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae"
939 | integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==
940 | dependencies:
941 | has "^1.0.3"
942 |
943 | is-set@^2.0.1:
944 | version "2.0.1"
945 | resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.1.tgz#d1604afdab1724986d30091575f54945da7e5f43"
946 | integrity sha512-eJEzOtVyenDs1TMzSQ3kU3K+E0GUS9sno+F0OBT97xsgcJsF9nXMBtkT9/kut5JEpM7oL7X/0qxR17K3mcwIAA==
947 |
948 | is-string@^1.0.4, is-string@^1.0.5:
949 | version "1.0.5"
950 | resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6"
951 | integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==
952 |
953 | is-symbol@^1.0.2:
954 | version "1.0.3"
955 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937"
956 | integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==
957 | dependencies:
958 | has-symbols "^1.0.1"
959 |
960 | is-url@^1.2.1:
961 | version "1.2.4"
962 | resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52"
963 | integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==
964 |
965 | isarray@0.0.1:
966 | version "0.0.1"
967 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
968 | integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=
969 |
970 | isarray@^2.0.5:
971 | version "2.0.5"
972 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723"
973 | integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==
974 |
975 | isarray@~1.0.0:
976 | version "1.0.0"
977 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
978 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
979 |
980 | isexe@^2.0.0:
981 | version "2.0.0"
982 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
983 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
984 |
985 | iterate-iterator@^1.0.1:
986 | version "1.0.1"
987 | resolved "https://registry.yarnpkg.com/iterate-iterator/-/iterate-iterator-1.0.1.tgz#1693a768c1ddd79c969051459453f082fe82e9f6"
988 | integrity sha512-3Q6tudGN05kbkDQDI4CqjaBf4qf85w6W6GnuZDtUVYwKgtC1q8yxYX7CZed7N+tLzQqS6roujWvszf13T+n9aw==
989 |
990 | iterate-value@^1.0.0:
991 | version "1.0.2"
992 | resolved "https://registry.yarnpkg.com/iterate-value/-/iterate-value-1.0.2.tgz#935115bd37d006a52046535ebc8d07e9c9337f57"
993 | integrity sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==
994 | dependencies:
995 | es-get-iterator "^1.0.2"
996 | iterate-iterator "^1.0.1"
997 |
998 | js-tokens@^4.0.0:
999 | version "4.0.0"
1000 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
1001 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
1002 |
1003 | js-yaml@3.13.1, js-yaml@^3.13.1:
1004 | version "3.13.1"
1005 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
1006 | integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
1007 | dependencies:
1008 | argparse "^1.0.7"
1009 | esprima "^4.0.0"
1010 |
1011 | levn@~0.3.0:
1012 | version "0.3.0"
1013 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
1014 | integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=
1015 | dependencies:
1016 | prelude-ls "~1.1.2"
1017 | type-check "~0.3.2"
1018 |
1019 | locate-path@^3.0.0:
1020 | version "3.0.0"
1021 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
1022 | integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==
1023 | dependencies:
1024 | p-locate "^3.0.0"
1025 | path-exists "^3.0.0"
1026 |
1027 | locate-path@^5.0.0:
1028 | version "5.0.0"
1029 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
1030 | integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
1031 | dependencies:
1032 | p-locate "^4.1.0"
1033 |
1034 | lodash@^4.17.15:
1035 | version "4.17.15"
1036 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
1037 | integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
1038 |
1039 | log-symbols@3.0.0:
1040 | version "3.0.0"
1041 | resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4"
1042 | integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==
1043 | dependencies:
1044 | chalk "^2.4.2"
1045 |
1046 | make-error@^1.1.1:
1047 | version "1.3.5"
1048 | resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8"
1049 | integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==
1050 |
1051 | memory-fs@^0.5.0:
1052 | version "0.5.0"
1053 | resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c"
1054 | integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==
1055 | dependencies:
1056 | errno "^0.1.3"
1057 | readable-stream "^2.0.1"
1058 |
1059 | merge-estraverse-visitors@^1.0.0:
1060 | version "1.0.0"
1061 | resolved "https://registry.yarnpkg.com/merge-estraverse-visitors/-/merge-estraverse-visitors-1.0.0.tgz#eb968338b5ded5ceed82cec0307decba2d8ea994"
1062 | integrity sha1-65aDOLXe1c7tgs7AMH3sui2OqZQ=
1063 | dependencies:
1064 | estraverse "^4.0.0"
1065 |
1066 | minimatch@3.0.4, minimatch@^3.0.3, minimatch@^3.0.4:
1067 | version "3.0.4"
1068 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
1069 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
1070 | dependencies:
1071 | brace-expansion "^1.1.7"
1072 |
1073 | minimist@^1.2.5:
1074 | version "1.2.5"
1075 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
1076 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
1077 |
1078 | mkdirp@^0.5.3:
1079 | version "0.5.5"
1080 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
1081 | integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
1082 | dependencies:
1083 | minimist "^1.2.5"
1084 |
1085 | mocha@^8.0.1:
1086 | version "8.0.1"
1087 | resolved "https://registry.yarnpkg.com/mocha/-/mocha-8.0.1.tgz#fe01f0530362df271aa8f99510447bc38b88d8ed"
1088 | integrity sha512-vefaXfdYI8+Yo8nPZQQi0QO2o+5q9UIMX1jZ1XMmK3+4+CQjc7+B0hPdUeglXiTlr8IHMVRo63IhO9Mzt6fxOg==
1089 | dependencies:
1090 | ansi-colors "4.1.1"
1091 | browser-stdout "1.3.1"
1092 | chokidar "3.3.1"
1093 | debug "3.2.6"
1094 | diff "4.0.2"
1095 | escape-string-regexp "1.0.5"
1096 | find-up "4.1.0"
1097 | glob "7.1.6"
1098 | growl "1.10.5"
1099 | he "1.2.0"
1100 | js-yaml "3.13.1"
1101 | log-symbols "3.0.0"
1102 | minimatch "3.0.4"
1103 | ms "2.1.2"
1104 | object.assign "4.1.0"
1105 | promise.allsettled "1.0.2"
1106 | serialize-javascript "3.0.0"
1107 | strip-json-comments "3.0.1"
1108 | supports-color "7.1.0"
1109 | which "2.0.2"
1110 | wide-align "1.1.3"
1111 | workerpool "6.0.0"
1112 | yargs "13.3.2"
1113 | yargs-parser "13.1.2"
1114 | yargs-unparser "1.6.0"
1115 |
1116 | ms@2.1.2, ms@^2.1.1:
1117 | version "2.1.2"
1118 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
1119 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
1120 |
1121 | multi-stage-sourcemap@^0.2.1:
1122 | version "0.2.1"
1123 | resolved "https://registry.yarnpkg.com/multi-stage-sourcemap/-/multi-stage-sourcemap-0.2.1.tgz#b09fc8586eaa17f81d575c4ad02e0f7a3f6b1105"
1124 | integrity sha1-sJ/IWG6qF/gdV1xK0C4Pej9rEQU=
1125 | dependencies:
1126 | source-map "^0.1.34"
1127 |
1128 | next-tick@~1.0.0:
1129 | version "1.0.0"
1130 | resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c"
1131 | integrity sha1-yobR/ogoFpsBICCOPchCS524NCw=
1132 |
1133 | normalize-path@^3.0.0, normalize-path@~3.0.0:
1134 | version "3.0.0"
1135 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
1136 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
1137 |
1138 | object-inspect@^1.7.0:
1139 | version "1.7.0"
1140 | resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67"
1141 | integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==
1142 |
1143 | object-is@^1.0.1:
1144 | version "1.0.1"
1145 | resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6"
1146 | integrity sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY=
1147 |
1148 | object-keys@^1.0.0, object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1:
1149 | version "1.1.1"
1150 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
1151 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
1152 |
1153 | object.assign@4.1.0, object.assign@^4.1.0:
1154 | version "4.1.0"
1155 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da"
1156 | integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==
1157 | dependencies:
1158 | define-properties "^1.1.2"
1159 | function-bind "^1.1.1"
1160 | has-symbols "^1.0.0"
1161 | object-keys "^1.0.11"
1162 |
1163 | once@^1.3.0:
1164 | version "1.4.0"
1165 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
1166 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
1167 | dependencies:
1168 | wrappy "1"
1169 |
1170 | optionator@^0.8.1:
1171 | version "0.8.3"
1172 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
1173 | integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==
1174 | dependencies:
1175 | deep-is "~0.1.3"
1176 | fast-levenshtein "~2.0.6"
1177 | levn "~0.3.0"
1178 | prelude-ls "~1.1.2"
1179 | type-check "~0.3.2"
1180 | word-wrap "~1.2.3"
1181 |
1182 | p-limit@^2.0.0:
1183 | version "2.2.1"
1184 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537"
1185 | integrity sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==
1186 | dependencies:
1187 | p-try "^2.0.0"
1188 |
1189 | p-limit@^2.2.0:
1190 | version "2.3.0"
1191 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
1192 | integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
1193 | dependencies:
1194 | p-try "^2.0.0"
1195 |
1196 | p-locate@^3.0.0:
1197 | version "3.0.0"
1198 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
1199 | integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==
1200 | dependencies:
1201 | p-limit "^2.0.0"
1202 |
1203 | p-locate@^4.1.0:
1204 | version "4.1.0"
1205 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
1206 | integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
1207 | dependencies:
1208 | p-limit "^2.2.0"
1209 |
1210 | p-try@^2.0.0:
1211 | version "2.2.0"
1212 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
1213 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
1214 |
1215 | path-exists@^3.0.0:
1216 | version "3.0.0"
1217 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
1218 | integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
1219 |
1220 | path-exists@^4.0.0:
1221 | version "4.0.0"
1222 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
1223 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
1224 |
1225 | path-is-absolute@^1.0.0:
1226 | version "1.0.1"
1227 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
1228 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
1229 |
1230 | path-parse@^1.0.6:
1231 | version "1.0.6"
1232 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
1233 | integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
1234 |
1235 | picomatch@^2.0.4, picomatch@^2.0.7:
1236 | version "2.2.1"
1237 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.1.tgz#21bac888b6ed8601f831ce7816e335bc779f0a4a"
1238 | integrity sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==
1239 |
1240 | picomatch@^2.2.1:
1241 | version "2.2.2"
1242 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
1243 | integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
1244 |
1245 | power-assert-context-formatter@^1.0.7:
1246 | version "1.2.0"
1247 | resolved "https://registry.yarnpkg.com/power-assert-context-formatter/-/power-assert-context-formatter-1.2.0.tgz#8fbe72692288ec5a7203cdf215c8b838a6061d2a"
1248 | integrity sha512-HLNEW8Bin+BFCpk/zbyKwkEu9W8/zThIStxGo7weYcFkKgMuGCHUJhvJeBGXDZf0Qm2xis4pbnnciGZiX0EpSg==
1249 | dependencies:
1250 | core-js "^2.0.0"
1251 | power-assert-context-traversal "^1.2.0"
1252 |
1253 | power-assert-context-reducer-ast@^1.0.7:
1254 | version "1.2.0"
1255 | resolved "https://registry.yarnpkg.com/power-assert-context-reducer-ast/-/power-assert-context-reducer-ast-1.2.0.tgz#c7ca1c9e39a6fb717f7ac5fe9e76e192bf525df3"
1256 | integrity sha512-EgOxmZ/Lb7tw4EwSKX7ZnfC0P/qRZFEG28dx/690qvhmOJ6hgThYFm5TUWANDLK5NiNKlPBi5WekVGd2+5wPrw==
1257 | dependencies:
1258 | acorn "^5.0.0"
1259 | acorn-es7-plugin "^1.0.12"
1260 | core-js "^2.0.0"
1261 | espurify "^1.6.0"
1262 | estraverse "^4.2.0"
1263 |
1264 | power-assert-context-traversal@^1.2.0:
1265 | version "1.2.0"
1266 | resolved "https://registry.yarnpkg.com/power-assert-context-traversal/-/power-assert-context-traversal-1.2.0.tgz#f6e71454baf640de5c1c9c270349f5c9ab0b2e94"
1267 | integrity sha512-NFoHU6g2umNajiP2l4qb0BRWD773Aw9uWdWYH9EQsVwIZnog5bd2YYLFCVvaxWpwNzWeEfZIon2xtyc63026pQ==
1268 | dependencies:
1269 | core-js "^2.0.0"
1270 | estraverse "^4.1.0"
1271 |
1272 | power-assert-formatter@^1.4.1:
1273 | version "1.4.1"
1274 | resolved "https://registry.yarnpkg.com/power-assert-formatter/-/power-assert-formatter-1.4.1.tgz#5dc125ed50a3dfb1dda26c19347f3bf58ec2884a"
1275 | integrity sha1-XcEl7VCj37HdomwZNH879Y7CiEo=
1276 | dependencies:
1277 | core-js "^2.0.0"
1278 | power-assert-context-formatter "^1.0.7"
1279 | power-assert-context-reducer-ast "^1.0.7"
1280 | power-assert-renderer-assertion "^1.0.7"
1281 | power-assert-renderer-comparison "^1.0.7"
1282 | power-assert-renderer-diagram "^1.0.7"
1283 | power-assert-renderer-file "^1.0.7"
1284 |
1285 | power-assert-renderer-assertion@^1.0.7:
1286 | version "1.2.0"
1287 | resolved "https://registry.yarnpkg.com/power-assert-renderer-assertion/-/power-assert-renderer-assertion-1.2.0.tgz#3db6ffcda106b37bc1e06432ad0d748a682b147a"
1288 | integrity sha512-3F7Q1ZLmV2ZCQv7aV7NJLNK9G7QsostrhOU7U0RhEQS/0vhEqrRg2jEJl1jtUL4ZyL2dXUlaaqrmPv5r9kRvIg==
1289 | dependencies:
1290 | power-assert-renderer-base "^1.1.1"
1291 | power-assert-util-string-width "^1.2.0"
1292 |
1293 | power-assert-renderer-base@^1.1.1:
1294 | version "1.1.1"
1295 | resolved "https://registry.yarnpkg.com/power-assert-renderer-base/-/power-assert-renderer-base-1.1.1.tgz#96a650c6fd05ee1bc1f66b54ad61442c8b3f63eb"
1296 | integrity sha1-lqZQxv0F7hvB9mtUrWFELIs/Y+s=
1297 |
1298 | power-assert-renderer-comparison@^1.0.7:
1299 | version "1.2.0"
1300 | resolved "https://registry.yarnpkg.com/power-assert-renderer-comparison/-/power-assert-renderer-comparison-1.2.0.tgz#e4f88113225a69be8aa586ead05aef99462c0495"
1301 | integrity sha512-7c3RKPDBKK4E3JqdPtYRE9cM8AyX4LC4yfTvvTYyx8zSqmT5kJnXwzR0yWQLOavACllZfwrAGQzFiXPc5sWa+g==
1302 | dependencies:
1303 | core-js "^2.0.0"
1304 | diff-match-patch "^1.0.0"
1305 | power-assert-renderer-base "^1.1.1"
1306 | stringifier "^1.3.0"
1307 | type-name "^2.0.1"
1308 |
1309 | power-assert-renderer-diagram@^1.0.7:
1310 | version "1.2.0"
1311 | resolved "https://registry.yarnpkg.com/power-assert-renderer-diagram/-/power-assert-renderer-diagram-1.2.0.tgz#37f66e8542e5677c5b58e6d72b01c0d9a30e2219"
1312 | integrity sha512-JZ6PC+DJPQqfU6dwSmpcoD7gNnb/5U77bU5KgNwPPa+i1Pxiz6UuDeM3EUBlhZ1HvH9tMjI60anqVyi5l2oNdg==
1313 | dependencies:
1314 | core-js "^2.0.0"
1315 | power-assert-renderer-base "^1.1.1"
1316 | power-assert-util-string-width "^1.2.0"
1317 | stringifier "^1.3.0"
1318 |
1319 | power-assert-renderer-file@^1.0.7:
1320 | version "1.2.0"
1321 | resolved "https://registry.yarnpkg.com/power-assert-renderer-file/-/power-assert-renderer-file-1.2.0.tgz#3f4bebd9e1455d75cf2ac541e7bb515a87d4ce4b"
1322 | integrity sha512-/oaVrRbeOtGoyyd7e4IdLP/jIIUFJdqJtsYzP9/88R39CMnfF/S/rUc8ZQalENfUfQ/wQHu+XZYRMaCEZmEesg==
1323 | dependencies:
1324 | power-assert-renderer-base "^1.1.1"
1325 |
1326 | power-assert-util-string-width@^1.2.0:
1327 | version "1.2.0"
1328 | resolved "https://registry.yarnpkg.com/power-assert-util-string-width/-/power-assert-util-string-width-1.2.0.tgz#6e06d5e3581bb876c5d377c53109fffa95bd91a0"
1329 | integrity sha512-lX90G0igAW0iyORTILZ/QjZWsa1MZ6VVY3L0K86e2eKun3S4LKPH4xZIl8fdeMYLfOjkaszbNSzf1uugLeAm2A==
1330 | dependencies:
1331 | eastasianwidth "^0.2.0"
1332 |
1333 | power-assert@^1.6.1:
1334 | version "1.6.1"
1335 | resolved "https://registry.yarnpkg.com/power-assert/-/power-assert-1.6.1.tgz#b28cbc02ae808afd1431d0cd5093a39ac5a5b1fe"
1336 | integrity sha512-VWkkZV6Y+W8qLX/PtJu2Ur2jDPIs0a5vbP0TpKeybNcIXmT4vcKoVkyTp5lnQvTpY/DxacAZ4RZisHRHLJcAZQ==
1337 | dependencies:
1338 | define-properties "^1.1.2"
1339 | empower "^1.3.1"
1340 | power-assert-formatter "^1.4.1"
1341 | universal-deep-strict-equal "^1.2.1"
1342 | xtend "^4.0.0"
1343 |
1344 | prelude-ls@~1.1.2:
1345 | version "1.1.2"
1346 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
1347 | integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
1348 |
1349 | process-nextick-args@~2.0.0:
1350 | version "2.0.1"
1351 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
1352 | integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
1353 |
1354 | promise.allsettled@1.0.2, promise.allsettled@^1.0.2:
1355 | version "1.0.2"
1356 | resolved "https://registry.yarnpkg.com/promise.allsettled/-/promise.allsettled-1.0.2.tgz#d66f78fbb600e83e863d893e98b3d4376a9c47c9"
1357 | integrity sha512-UpcYW5S1RaNKT6pd+s9jp9K9rlQge1UXKskec0j6Mmuq7UJCvlS2J2/s/yuPN8ehftf9HXMxWlKiPbGGUzpoRg==
1358 | dependencies:
1359 | array.prototype.map "^1.0.1"
1360 | define-properties "^1.1.3"
1361 | es-abstract "^1.17.0-next.1"
1362 | function-bind "^1.1.1"
1363 | iterate-value "^1.0.0"
1364 |
1365 | prr@~1.0.1:
1366 | version "1.0.1"
1367 | resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
1368 | integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY=
1369 |
1370 | readable-stream@^2.0.1:
1371 | version "2.3.6"
1372 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
1373 | integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==
1374 | dependencies:
1375 | core-util-is "~1.0.0"
1376 | inherits "~2.0.3"
1377 | isarray "~1.0.0"
1378 | process-nextick-args "~2.0.0"
1379 | safe-buffer "~5.1.1"
1380 | string_decoder "~1.1.1"
1381 | util-deprecate "~1.0.1"
1382 |
1383 | readdirp@~3.3.0:
1384 | version "3.3.0"
1385 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.3.0.tgz#984458d13a1e42e2e9f5841b129e162f369aff17"
1386 | integrity sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==
1387 | dependencies:
1388 | picomatch "^2.0.7"
1389 |
1390 | readdirp@~3.4.0:
1391 | version "3.4.0"
1392 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada"
1393 | integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==
1394 | dependencies:
1395 | picomatch "^2.2.1"
1396 |
1397 | regexp.prototype.flags@^1.2.0:
1398 | version "1.2.0"
1399 | resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz#6b30724e306a27833eeb171b66ac8890ba37e41c"
1400 | integrity sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA==
1401 | dependencies:
1402 | define-properties "^1.1.2"
1403 |
1404 | require-directory@^2.1.1:
1405 | version "2.1.1"
1406 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
1407 | integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
1408 |
1409 | require-main-filename@^2.0.0:
1410 | version "2.0.0"
1411 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
1412 | integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==
1413 |
1414 | resolve@^1.3.2:
1415 | version "1.13.1"
1416 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.13.1.tgz#be0aa4c06acd53083505abb35f4d66932ab35d16"
1417 | integrity sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w==
1418 | dependencies:
1419 | path-parse "^1.0.6"
1420 |
1421 | rimraf@^3.0.2:
1422 | version "3.0.2"
1423 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
1424 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
1425 | dependencies:
1426 | glob "^7.1.3"
1427 |
1428 | safe-buffer@~5.1.0, safe-buffer@~5.1.1:
1429 | version "5.1.2"
1430 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
1431 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
1432 |
1433 | semver@^5.3.0:
1434 | version "5.7.1"
1435 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
1436 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
1437 |
1438 | serialize-javascript@3.0.0:
1439 | version "3.0.0"
1440 | resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-3.0.0.tgz#492e489a2d77b7b804ad391a5f5d97870952548e"
1441 | integrity sha512-skZcHYw2vEX4bw90nAr2iTTsz6x2SrHEnfxgKYmZlvJYBEZrvbKtobJWlQ20zczKb3bsHHXXTYt48zBA7ni9cw==
1442 |
1443 | set-blocking@^2.0.0:
1444 | version "2.0.0"
1445 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
1446 | integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
1447 |
1448 | source-map-support@^0.5.6, source-map-support@^0.5.9:
1449 | version "0.5.16"
1450 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042"
1451 | integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==
1452 | dependencies:
1453 | buffer-from "^1.0.0"
1454 | source-map "^0.6.0"
1455 |
1456 | source-map@^0.1.34:
1457 | version "0.1.43"
1458 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346"
1459 | integrity sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=
1460 | dependencies:
1461 | amdefine ">=0.0.4"
1462 |
1463 | source-map@^0.5.0:
1464 | version "0.5.7"
1465 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
1466 | integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
1467 |
1468 | source-map@^0.6.0, source-map@~0.6.1:
1469 | version "0.6.1"
1470 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
1471 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
1472 |
1473 | sprintf-js@~1.0.2:
1474 | version "1.0.3"
1475 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
1476 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
1477 |
1478 | "string-width@^1.0.2 || 2":
1479 | version "2.1.1"
1480 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
1481 | integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
1482 | dependencies:
1483 | is-fullwidth-code-point "^2.0.0"
1484 | strip-ansi "^4.0.0"
1485 |
1486 | string-width@^3.0.0, string-width@^3.1.0:
1487 | version "3.1.0"
1488 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
1489 | integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==
1490 | dependencies:
1491 | emoji-regex "^7.0.1"
1492 | is-fullwidth-code-point "^2.0.0"
1493 | strip-ansi "^5.1.0"
1494 |
1495 | string.prototype.trimleft@^2.1.1:
1496 | version "2.1.1"
1497 | resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz#9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74"
1498 | integrity sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==
1499 | dependencies:
1500 | define-properties "^1.1.3"
1501 | function-bind "^1.1.1"
1502 |
1503 | string.prototype.trimright@^2.1.1:
1504 | version "2.1.1"
1505 | resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz#440314b15996c866ce8a0341894d45186200c5d9"
1506 | integrity sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==
1507 | dependencies:
1508 | define-properties "^1.1.3"
1509 | function-bind "^1.1.1"
1510 |
1511 | string_decoder@~1.1.1:
1512 | version "1.1.1"
1513 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
1514 | integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
1515 | dependencies:
1516 | safe-buffer "~5.1.0"
1517 |
1518 | stringifier@^1.3.0:
1519 | version "1.4.0"
1520 | resolved "https://registry.yarnpkg.com/stringifier/-/stringifier-1.4.0.tgz#d704581567f4526265d00ed8ecb354a02c3fec28"
1521 | integrity sha512-cNsMOqqrcbLcHTXEVmkw9y0fwDwkdgtZwlfyolzpQDoAE1xdNGhQhxBUfiDvvZIKl1hnUEgMv66nHwtMz3OjPw==
1522 | dependencies:
1523 | core-js "^2.0.0"
1524 | traverse "^0.6.6"
1525 | type-name "^2.0.1"
1526 |
1527 | strip-ansi@^4.0.0:
1528 | version "4.0.0"
1529 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
1530 | integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
1531 | dependencies:
1532 | ansi-regex "^3.0.0"
1533 |
1534 | strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0:
1535 | version "5.2.0"
1536 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
1537 | integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
1538 | dependencies:
1539 | ansi-regex "^4.1.0"
1540 |
1541 | strip-json-comments@3.0.1:
1542 | version "3.0.1"
1543 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7"
1544 | integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==
1545 |
1546 | supports-color@7.1.0, supports-color@^7.1.0:
1547 | version "7.1.0"
1548 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1"
1549 | integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==
1550 | dependencies:
1551 | has-flag "^4.0.0"
1552 |
1553 | supports-color@^5.3.0:
1554 | version "5.5.0"
1555 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
1556 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
1557 | dependencies:
1558 | has-flag "^3.0.0"
1559 |
1560 | throttle-debounce@^2.2.1:
1561 | version "2.2.1"
1562 | resolved "https://registry.yarnpkg.com/throttle-debounce/-/throttle-debounce-2.2.1.tgz#fbd933ae6793448816f7d5b3cae259d464c98137"
1563 | integrity sha512-i9hAVld1f+woAiyNGqWelpDD5W1tpMroL3NofTz9xzwq6acWBlO2dC8k5EFSZepU6oOINtV5Q3aSPoRg7o4+fA==
1564 |
1565 | to-regex-range@^5.0.1:
1566 | version "5.0.1"
1567 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
1568 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
1569 | dependencies:
1570 | is-number "^7.0.0"
1571 |
1572 | traverse@^0.6.6:
1573 | version "0.6.6"
1574 | resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137"
1575 | integrity sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=
1576 |
1577 | ts-node@^8.0.3:
1578 | version "8.5.4"
1579 | resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.5.4.tgz#a152add11fa19c221d0b48962c210cf467262ab2"
1580 | integrity sha512-izbVCRV68EasEPQ8MSIGBNK9dc/4sYJJKYA+IarMQct1RtEot6Xp0bXuClsbUSnKpg50ho+aOAx8en5c+y4OFw==
1581 | dependencies:
1582 | arg "^4.1.0"
1583 | diff "^4.0.1"
1584 | make-error "^1.1.1"
1585 | source-map-support "^0.5.6"
1586 | yn "^3.0.0"
1587 |
1588 | tslib@^1.0.0, tslib@^1.8.1:
1589 | version "1.10.0"
1590 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a"
1591 | integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==
1592 |
1593 | tslib@^1.10.0:
1594 | version "1.13.0"
1595 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043"
1596 | integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==
1597 |
1598 | tslint-config-ktsn@^2.1.0:
1599 | version "2.1.0"
1600 | resolved "https://registry.yarnpkg.com/tslint-config-ktsn/-/tslint-config-ktsn-2.1.0.tgz#364b6e74bb31b377aa4ab3faa019d8453afcae46"
1601 | integrity sha512-F30soq+HqFCvZlUPuz9BHihCbFBMom6uj7lWjNOOXiUhOVeyyyfZlaKHIq3Cq520j3G5gF3yhVB67jpk1ddt8Q==
1602 | dependencies:
1603 | tslint-eslint-rules "^4.1.1"
1604 |
1605 | tslint-eslint-rules@^4.1.1:
1606 | version "4.1.1"
1607 | resolved "https://registry.yarnpkg.com/tslint-eslint-rules/-/tslint-eslint-rules-4.1.1.tgz#7c30e7882f26bc276bff91d2384975c69daf88ba"
1608 | integrity sha1-fDDniC8mvCdr/5HSOEl1xp2viLo=
1609 | dependencies:
1610 | doctrine "^0.7.2"
1611 | tslib "^1.0.0"
1612 | tsutils "^1.4.0"
1613 |
1614 | tslint@^6.1.2:
1615 | version "6.1.2"
1616 | resolved "https://registry.yarnpkg.com/tslint/-/tslint-6.1.2.tgz#2433c248512cc5a7b2ab88ad44a6b1b34c6911cf"
1617 | integrity sha512-UyNrLdK3E0fQG/xWNqAFAC5ugtFyPO4JJR1KyyfQAyzR8W0fTRrC91A8Wej4BntFzcvETdCSDa/4PnNYJQLYiA==
1618 | dependencies:
1619 | "@babel/code-frame" "^7.0.0"
1620 | builtin-modules "^1.1.1"
1621 | chalk "^2.3.0"
1622 | commander "^2.12.1"
1623 | diff "^4.0.1"
1624 | glob "^7.1.1"
1625 | js-yaml "^3.13.1"
1626 | minimatch "^3.0.4"
1627 | mkdirp "^0.5.3"
1628 | resolve "^1.3.2"
1629 | semver "^5.3.0"
1630 | tslib "^1.10.0"
1631 | tsutils "^2.29.0"
1632 |
1633 | tsutils@^1.4.0:
1634 | version "1.9.1"
1635 | resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-1.9.1.tgz#b9f9ab44e55af9681831d5f28d0aeeaf5c750cb0"
1636 | integrity sha1-ufmrROVa+WgYMdXyjQrur1x1DLA=
1637 |
1638 | tsutils@^2.29.0:
1639 | version "2.29.0"
1640 | resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99"
1641 | integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==
1642 | dependencies:
1643 | tslib "^1.8.1"
1644 |
1645 | type-check@~0.3.2:
1646 | version "0.3.2"
1647 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
1648 | integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=
1649 | dependencies:
1650 | prelude-ls "~1.1.2"
1651 |
1652 | type-name@^2.0.0, type-name@^2.0.1:
1653 | version "2.0.2"
1654 | resolved "https://registry.yarnpkg.com/type-name/-/type-name-2.0.2.tgz#efe7d4123d8ac52afff7f40c7e4dec5266008fb4"
1655 | integrity sha1-7+fUEj2KxSr/9/QMfk3sUmYAj7Q=
1656 |
1657 | type@^1.0.1:
1658 | version "1.2.0"
1659 | resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0"
1660 | integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==
1661 |
1662 | type@^2.0.0:
1663 | version "2.0.0"
1664 | resolved "https://registry.yarnpkg.com/type/-/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3"
1665 | integrity sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==
1666 |
1667 | typescript@^3.9.7:
1668 | version "3.9.7"
1669 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz#98d600a5ebdc38f40cb277522f12dc800e9e25fa"
1670 | integrity sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==
1671 |
1672 | universal-deep-strict-equal@^1.2.1:
1673 | version "1.2.2"
1674 | resolved "https://registry.yarnpkg.com/universal-deep-strict-equal/-/universal-deep-strict-equal-1.2.2.tgz#0da4ac2f73cff7924c81fa4de018ca562ca2b0a7"
1675 | integrity sha1-DaSsL3PP95JMgfpN4BjKViyisKc=
1676 | dependencies:
1677 | array-filter "^1.0.0"
1678 | indexof "0.0.1"
1679 | object-keys "^1.0.0"
1680 |
1681 | util-deprecate@~1.0.1:
1682 | version "1.0.2"
1683 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
1684 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
1685 |
1686 | vue-class-component@^7.2.4:
1687 | version "7.2.4"
1688 | resolved "https://registry.yarnpkg.com/vue-class-component/-/vue-class-component-7.2.4.tgz#5c15cef356d7ce793aefef3b23cb5ac0df7ff62d"
1689 | integrity sha512-3LMd3yITe6wcHJ5Lyz85MSsNJrUUWeIBKnGO/YUV1ZwH2i4YmrE7t8T8eRLG45aqMlgi/BRFRyfNh3Us7k/v5Q==
1690 |
1691 | vue-template-compiler@^2.6.11:
1692 | version "2.6.11"
1693 | resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.11.tgz#c04704ef8f498b153130018993e56309d4698080"
1694 | integrity sha512-KIq15bvQDrcCjpGjrAhx4mUlyyHfdmTaoNfeoATHLAiWB+MU3cx4lOzMwrnUh9cCxy0Lt1T11hAFY6TQgroUAA==
1695 | dependencies:
1696 | de-indent "^1.0.2"
1697 | he "^1.1.0"
1698 |
1699 | vue@^2.6.11:
1700 | version "2.6.11"
1701 | resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.11.tgz#76594d877d4b12234406e84e35275c6d514125c5"
1702 | integrity sha512-VfPwgcGABbGAue9+sfrD4PuwFar7gPb1yl1UK1MwXoQPAw0BKSqWfoYCT/ThFrdEVWoI51dBuyCoiNU9bZDZxQ==
1703 |
1704 | which-module@^2.0.0:
1705 | version "2.0.0"
1706 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
1707 | integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
1708 |
1709 | which@2.0.2:
1710 | version "2.0.2"
1711 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
1712 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
1713 | dependencies:
1714 | isexe "^2.0.0"
1715 |
1716 | wide-align@1.1.3:
1717 | version "1.1.3"
1718 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
1719 | integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==
1720 | dependencies:
1721 | string-width "^1.0.2 || 2"
1722 |
1723 | word-wrap@~1.2.3:
1724 | version "1.2.3"
1725 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
1726 | integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
1727 |
1728 | workerpool@6.0.0:
1729 | version "6.0.0"
1730 | resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.0.0.tgz#85aad67fa1a2c8ef9386a1b43539900f61d03d58"
1731 | integrity sha512-fU2OcNA/GVAJLLyKUoHkAgIhKb0JoCpSjLC/G2vYKxUjVmQwGbRVeoPJ1a8U4pnVofz4AQV5Y/NEw8oKqxEBtA==
1732 |
1733 | wrap-ansi@^5.1.0:
1734 | version "5.1.0"
1735 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09"
1736 | integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==
1737 | dependencies:
1738 | ansi-styles "^3.2.0"
1739 | string-width "^3.0.0"
1740 | strip-ansi "^5.0.0"
1741 |
1742 | wrappy@1:
1743 | version "1.0.2"
1744 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
1745 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
1746 |
1747 | xtend@^4.0.0:
1748 | version "4.0.2"
1749 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
1750 | integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
1751 |
1752 | y18n@^4.0.0:
1753 | version "4.0.0"
1754 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
1755 | integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==
1756 |
1757 | yargs-parser@13.1.2, yargs-parser@^13.1.2:
1758 | version "13.1.2"
1759 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38"
1760 | integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==
1761 | dependencies:
1762 | camelcase "^5.0.0"
1763 | decamelize "^1.2.0"
1764 |
1765 | yargs-parser@^13.1.1:
1766 | version "13.1.1"
1767 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0"
1768 | integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==
1769 | dependencies:
1770 | camelcase "^5.0.0"
1771 | decamelize "^1.2.0"
1772 |
1773 | yargs-unparser@1.6.0:
1774 | version "1.6.0"
1775 | resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-1.6.0.tgz#ef25c2c769ff6bd09e4b0f9d7c605fb27846ea9f"
1776 | integrity sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==
1777 | dependencies:
1778 | flat "^4.1.0"
1779 | lodash "^4.17.15"
1780 | yargs "^13.3.0"
1781 |
1782 | yargs@13.3.2:
1783 | version "13.3.2"
1784 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd"
1785 | integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==
1786 | dependencies:
1787 | cliui "^5.0.0"
1788 | find-up "^3.0.0"
1789 | get-caller-file "^2.0.1"
1790 | require-directory "^2.1.1"
1791 | require-main-filename "^2.0.0"
1792 | set-blocking "^2.0.0"
1793 | string-width "^3.0.0"
1794 | which-module "^2.0.0"
1795 | y18n "^4.0.0"
1796 | yargs-parser "^13.1.2"
1797 |
1798 | yargs@^13.3.0:
1799 | version "13.3.0"
1800 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83"
1801 | integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==
1802 | dependencies:
1803 | cliui "^5.0.0"
1804 | find-up "^3.0.0"
1805 | get-caller-file "^2.0.1"
1806 | require-directory "^2.1.1"
1807 | require-main-filename "^2.0.0"
1808 | set-blocking "^2.0.0"
1809 | string-width "^3.0.0"
1810 | which-module "^2.0.0"
1811 | y18n "^4.0.0"
1812 | yargs-parser "^13.1.1"
1813 |
1814 | yn@^3.0.0:
1815 | version "3.1.1"
1816 | resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
1817 | integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
1818 |
--------------------------------------------------------------------------------