]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
build: use api-extractor for type rollup
authorEvan You <yyx990803@gmail.com>
Tue, 3 Sep 2019 16:16:22 +0000 (12:16 -0400)
committerEvan You <yyx990803@gmail.com>
Tue, 3 Sep 2019 16:16:22 +0000 (12:16 -0400)
29 files changed:
.gitignore
api-extractor.json [new file with mode: 0644]
package.json
packages/compiler-core/.npmignore [deleted file]
packages/compiler-core/api-extractor.json [new file with mode: 0644]
packages/compiler-core/package.json
packages/reactivity/.npmignore [deleted file]
packages/reactivity/api-extractor.json [new file with mode: 0644]
packages/reactivity/package.json
packages/runtime-core/.npmignore [deleted file]
packages/runtime-core/api-extractor.json [new file with mode: 0644]
packages/runtime-core/package.json
packages/runtime-core/src/index.ts
packages/runtime-dom/.npmignore [deleted file]
packages/runtime-dom/api-extractor.json [new file with mode: 0644]
packages/runtime-dom/package.json
packages/runtime-test/.npmignore [deleted file]
packages/runtime-test/api-extractor.json [new file with mode: 0644]
packages/runtime-test/package.json
packages/server-renderer/.npmignore [deleted file]
packages/server-renderer/api-extractor.json [new file with mode: 0644]
packages/server-renderer/package.json
packages/vue/.npmignore [deleted file]
packages/vue/api-extractor.json [new file with mode: 0644]
packages/vue/package.json
rollup.config.js
scripts/bootstrap.js
scripts/build.js
yarn.lock

index f026311f184156cdb2aa2d3149ab42c536947371..761e8b210b280c21e9e69d531205842669a7b960 100644 (file)
@@ -2,5 +2,6 @@ dist
 .DS_Store
 node_modules
 coverage
+temp
 explorations
 TODOs.md
diff --git a/api-extractor.json b/api-extractor.json
new file mode 100644 (file)
index 0000000..839eba1
--- /dev/null
@@ -0,0 +1,45 @@
+{
+  "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
+
+  "apiReport": {
+    "enabled": true,
+    "reportFolder": "<projectFolder>/temp/"
+  },
+
+  "docModel": {
+    "enabled": true
+  },
+
+  "dtsRollup": {
+    "enabled": true
+  },
+
+  "tsdocMetadata": {
+    "enabled": false
+  },
+
+  "messages": {
+    "compilerMessageReporting": {
+      "default": {
+        "logLevel": "warning"
+      }
+    },
+
+    "extractorMessageReporting": {
+      "default": {
+        "logLevel": "warning",
+        "addToApiReportFile": true
+      },
+
+      "ae-missing-release-tag": {
+        "logLevel": "none"
+      }
+    },
+
+    "tsdocMessageReporting": {
+      "default": {
+        "logLevel": "warning"
+      }
+    }
+  }
+}
index 8c910bddb59aba2ab8e1f465d88b8e1678934431..58525383534fab4fdc52de8e3a14c0d7140de256 100644 (file)
@@ -25,9 +25,9 @@
     ]
   },
   "devDependencies": {
+    "@microsoft/api-extractor": "^7.3.9",
     "@types/jest": "^24.0.18",
     "chalk": "^2.4.2",
-    "dts-bundle": "^0.7.3",
     "execa": "^2.0.4",
     "fs-extra": "^8.1.0",
     "jest": "^24.9.0",
diff --git a/packages/compiler-core/.npmignore b/packages/compiler-core/.npmignore
deleted file mode 100644 (file)
index bb5c8a5..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-__tests__/
-__mocks__/
-dist/packages
\ No newline at end of file
diff --git a/packages/compiler-core/api-extractor.json b/packages/compiler-core/api-extractor.json
new file mode 100644 (file)
index 0000000..933cd92
--- /dev/null
@@ -0,0 +1,7 @@
+{\r
+  "extends": "../../api-extractor.json",\r
+  "mainEntryPointFilePath": "./dist/packages/<unscopedPackageName>/src/index.d.ts",\r
+  "dtsRollup": {\r
+    "untrimmedFilePath": "./dist/<unscopedPackageName>.d.ts"\r
+  }\r
+}\r
index 1d01f09385743c18027c96f5db38f23f9c76af3d..ea0246ddf37e21b49c7057fbe4824593635bc7df 100644 (file)
@@ -4,7 +4,11 @@
   "description": "@vue/compiler-core",
   "main": "index.js",
   "module": "dist/compiler-core.esm-bundler.js",
-  "types": "dist/index.d.ts",
+  "files": [
+    "index.js",
+    "dist"
+  ],
+  "types": "dist/compiler-core.d.ts",
   "sideEffects": false,
   "repository": {
     "type": "git",
diff --git a/packages/reactivity/.npmignore b/packages/reactivity/.npmignore
deleted file mode 100644 (file)
index bb5c8a5..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-__tests__/
-__mocks__/
-dist/packages
\ No newline at end of file
diff --git a/packages/reactivity/api-extractor.json b/packages/reactivity/api-extractor.json
new file mode 100644 (file)
index 0000000..933cd92
--- /dev/null
@@ -0,0 +1,7 @@
+{\r
+  "extends": "../../api-extractor.json",\r
+  "mainEntryPointFilePath": "./dist/packages/<unscopedPackageName>/src/index.d.ts",\r
+  "dtsRollup": {\r
+    "untrimmedFilePath": "./dist/<unscopedPackageName>.d.ts"\r
+  }\r
+}\r
index 1079119493db565a7af93c877dce2f88b8c30d59..c50c7b11df7162b1a7c3609acff0ca3c43b16963 100644 (file)
@@ -4,7 +4,11 @@
   "description": "@vue/reactivity",
   "main": "index.js",
   "module": "dist/reactivity.esm-bundler.js",
-  "types": "dist/index.d.ts",
+  "files": [
+    "index.js",
+    "dist"
+  ],
+  "types": "dist/reactivity.d.ts",
   "unpkg": "dist/reactivity.global.js",
   "sideEffects": false,
   "repository": {
diff --git a/packages/runtime-core/.npmignore b/packages/runtime-core/.npmignore
deleted file mode 100644 (file)
index bb5c8a5..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-__tests__/
-__mocks__/
-dist/packages
\ No newline at end of file
diff --git a/packages/runtime-core/api-extractor.json b/packages/runtime-core/api-extractor.json
new file mode 100644 (file)
index 0000000..933cd92
--- /dev/null
@@ -0,0 +1,7 @@
+{\r
+  "extends": "../../api-extractor.json",\r
+  "mainEntryPointFilePath": "./dist/packages/<unscopedPackageName>/src/index.d.ts",\r
+  "dtsRollup": {\r
+    "untrimmedFilePath": "./dist/<unscopedPackageName>.d.ts"\r
+  }\r
+}\r
index 14d2cb5c52425f703219c3c3ebbd13001c3ff741..68f85ddd372aabd504f3065b2afe2eb890c2e3bd 100644 (file)
@@ -4,7 +4,12 @@
   "description": "@vue/runtime-core",
   "main": "index.js",
   "module": "dist/runtime-core.esm-bundler.js",
-  "types": "dist/index.d.ts",
+  "files": [
+    "index.js",
+    "dist",
+    "jsx.d.ts"
+  ],
+  "types": "dist/runtime-core.d.ts",
   "sideEffects": false,
   "repository": {
     "type": "git",
index cd890c9e261b239dd7e9ec4c77988bb64f45b0ca..d34cb4248c8a8b15d56ee8e5a37a1c3508a4a7d5 100644 (file)
@@ -42,6 +42,7 @@ export { applyDirectives, resolveDirective } from './directives'
 
 // Types -----------------------------------------------------------------------
 
+export { App } from './apiCreateApp'
 export { VNode } from './vnode'
 export { FunctionalComponent, ComponentInstance } from './component'
 export { RendererOptions } from './createRenderer'
diff --git a/packages/runtime-dom/.npmignore b/packages/runtime-dom/.npmignore
deleted file mode 100644 (file)
index aa5ee62..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-__tests__/
-__mocks__/
-dist/packages
diff --git a/packages/runtime-dom/api-extractor.json b/packages/runtime-dom/api-extractor.json
new file mode 100644 (file)
index 0000000..933cd92
--- /dev/null
@@ -0,0 +1,7 @@
+{\r
+  "extends": "../../api-extractor.json",\r
+  "mainEntryPointFilePath": "./dist/packages/<unscopedPackageName>/src/index.d.ts",\r
+  "dtsRollup": {\r
+    "untrimmedFilePath": "./dist/<unscopedPackageName>.d.ts"\r
+  }\r
+}\r
index e9e7ce9cf0051af026abc5cf042fc7f581644978..8aaa39c80067cb8fef90ce0858331e9f54b944fd 100644 (file)
@@ -4,7 +4,11 @@
   "description": "@vue/runtime-dom",
   "main": "index.js",
   "module": "dist/runtime-dom.esm-bundler.js",
-  "types": "dist/index.d.ts",
+  "files": [
+    "index.js",
+    "dist"
+  ],
+  "types": "dist/runtime-dom.d.ts",
   "unpkg": "dist/runtime-dom.global.js",
   "sideEffects": false,
   "buildOptions": {
diff --git a/packages/runtime-test/.npmignore b/packages/runtime-test/.npmignore
deleted file mode 100644 (file)
index bb5c8a5..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-__tests__/
-__mocks__/
-dist/packages
\ No newline at end of file
diff --git a/packages/runtime-test/api-extractor.json b/packages/runtime-test/api-extractor.json
new file mode 100644 (file)
index 0000000..933cd92
--- /dev/null
@@ -0,0 +1,7 @@
+{\r
+  "extends": "../../api-extractor.json",\r
+  "mainEntryPointFilePath": "./dist/packages/<unscopedPackageName>/src/index.d.ts",\r
+  "dtsRollup": {\r
+    "untrimmedFilePath": "./dist/<unscopedPackageName>.d.ts"\r
+  }\r
+}\r
index 4558329718059148c23bb0f9e886d5c4894cb52e..68c98594887f0f8f87a9c5e4d408055a5c09a80d 100644 (file)
@@ -4,7 +4,11 @@
   "description": "@vue/runtime-test",
   "main": "index.js",
   "module": "dist/runtime-test.esm-bundler.js",
-  "types": "dist/index.d.ts",
+  "files": [
+    "index.js",
+    "dist"
+  ],
+  "types": "dist/runtime-test.d.ts",
   "repository": {
     "type": "git",
     "url": "git+https://github.com/vuejs/vue.git"
diff --git a/packages/server-renderer/.npmignore b/packages/server-renderer/.npmignore
deleted file mode 100644 (file)
index bb5c8a5..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-__tests__/
-__mocks__/
-dist/packages
\ No newline at end of file
diff --git a/packages/server-renderer/api-extractor.json b/packages/server-renderer/api-extractor.json
new file mode 100644 (file)
index 0000000..933cd92
--- /dev/null
@@ -0,0 +1,7 @@
+{\r
+  "extends": "../../api-extractor.json",\r
+  "mainEntryPointFilePath": "./dist/packages/<unscopedPackageName>/src/index.d.ts",\r
+  "dtsRollup": {\r
+    "untrimmedFilePath": "./dist/<unscopedPackageName>.d.ts"\r
+  }\r
+}\r
index 592d78323a0f0ae57b5f1bb70e864b617297a577..8f98faa0e20823d302324fba63eaebffb3fad3cb 100644 (file)
@@ -3,7 +3,11 @@
   "version": "3.0.0-alpha.1",
   "description": "@vue/server-renderer",
   "main": "index.js",
-  "types": "dist/index.d.ts",
+  "files": [
+    "index.js",
+    "dist"
+  ],
+  "types": "dist/server-renderer.d.ts",
   "buildOptions": {
     "formats": ["cjs"]
   },
diff --git a/packages/vue/.npmignore b/packages/vue/.npmignore
deleted file mode 100644 (file)
index bb5c8a5..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-__tests__/
-__mocks__/
-dist/packages
\ No newline at end of file
diff --git a/packages/vue/api-extractor.json b/packages/vue/api-extractor.json
new file mode 100644 (file)
index 0000000..933cd92
--- /dev/null
@@ -0,0 +1,7 @@
+{\r
+  "extends": "../../api-extractor.json",\r
+  "mainEntryPointFilePath": "./dist/packages/<unscopedPackageName>/src/index.d.ts",\r
+  "dtsRollup": {\r
+    "untrimmedFilePath": "./dist/<unscopedPackageName>.d.ts"\r
+  }\r
+}\r
index 956934f14f3029e3a3d5fc499dd95a05a6c79813..c53ab2d12a889996f5aa5096e956f58f060cdc60 100644 (file)
@@ -4,7 +4,11 @@
   "description": "vue",
   "main": "index.js",
   "module": "dist/vue.esm-bundler.js",
-  "types": "dist/index.d.ts",
+  "files": [
+    "index.js",
+    "dist"
+  ],
+  "types": "dist/vue.d.ts",
   "unpkg": "dist/vue.global.js",
   "buildOptions": {
     "name": "Vue",
index 562039173755133cf53aba35a7fe9dfb42ba50f7..0c9bc1d12c6e764695790abe8ce841ffbccd6ef4 100644 (file)
@@ -81,13 +81,19 @@ function createConfig(output, plugins = []) {
     output.name = packageOptions.name
   }
 
+  const shouldEmitDeclarations =
+    process.env.TYPES != null &&
+    process.env.NODE_ENV === 'production' &&
+    !hasTSChecked
+
   const tsPlugin = ts({
     check: process.env.NODE_ENV === 'production' && !hasTSChecked,
     tsconfig: path.resolve(__dirname, 'tsconfig.json'),
     cacheRoot: path.resolve(__dirname, 'node_modules/.rts2_cache'),
     tsconfigOverride: {
       compilerOptions: {
-        declaration: process.env.NODE_ENV === 'production' && !hasTSChecked
+        declaration: shouldEmitDeclarations,
+        declarationMap: shouldEmitDeclarations
       }
     }
   })
index 557b6fc56777a14b993bc9f8bfe659381baaa869..20d2214adfcc3dbc355668bdda718363ba51a01e 100644 (file)
@@ -25,7 +25,8 @@ files.forEach(shortName => {
       description: name,
       main: 'index.js',
       module: `dist/${shortName}.esm-bundler.js`,
-      types: 'dist/index.d.ts',
+      files: [`index.js`, `dist`],
+      types: `dist/${shortName}.d.ts`,
       repository: {
         type: 'git',
         url: 'git+https://github.com/vuejs/vue.git'
index e37746c6c0ad11924f3b9db0540b981f7d591d2d..59c0fa1e3ed5c4f4a8d692a2e3cea1b28b620e10 100644 (file)
@@ -19,7 +19,6 @@ const path = require('path')
 const zlib = require('zlib')
 const chalk = require('chalk')
 const execa = require('execa')
-const dts = require('dts-bundle')
 const { targets, fuzzyMatchTarget } = require('./utils')
 
 const args = require('minimist')(process.argv.slice(2))
@@ -55,22 +54,41 @@ async function build(target) {
       '--environment',
       `NODE_ENV:production,` +
         `TARGET:${target}` +
-        (formats ? `,FORMATS:${formats}` : ``)
+        (formats ? `,FORMATS:${formats}` : ``) +
+        (args.types ? `,TYPES:true` : ``)
     ],
     { stdio: 'inherit' }
   )
 
-  if (pkg.types) {
-    const dtsOptions = {
-      name: target === 'vue' ? target : `@vue/${target}`,
-      main: `${pkgDir}/dist/packages/${target}/src/index.d.ts`,
-      out: `${pkgDir}/${pkg.types}`
-    }
-    dts.bundle(dtsOptions)
+  if (args.types && pkg.types) {
     console.log()
     console.log(
-      chalk.blue(chalk.bold(`generated typings at ${dtsOptions.out}`))
+      chalk.bold(chalk.yellow(`Rolling up type definitions for ${target}...`))
+    )
+
+    // build types
+    const { Extractor, ExtractorConfig } = require('@microsoft/api-extractor')
+
+    const extractorConfigPath = path.resolve(pkgDir, `api-extractor.json`)
+    const extractorConfig = ExtractorConfig.loadFileAndPrepare(
+      extractorConfigPath
     )
+    const result = Extractor.invoke(extractorConfig, {
+      localBuild: true,
+      showVerboseMessages: true
+    })
+
+    if (result.succeeded) {
+      console.log(
+        chalk.bold(chalk.green(`API Extractor completed successfully.`))
+      )
+    } else {
+      console.error(
+        `API Extractor completed with ${extractorResult.errorCount} errors` +
+          ` and ${extractorResult.warningCount} warnings`
+      )
+      process.exitCode = 1
+    }
 
     await fs.remove(`${pkgDir}/dist/packages`)
   }
index 3af81c611d014b04d883703eb3ed93d348abd85c..ec6d0c4f93f6606e1b57705251b805741a706ece 100644 (file)
--- a/yarn.lock
+++ b/yarn.lock
     npmlog "^4.1.2"
     write-file-atomic "^2.3.0"
 
+"@microsoft/api-extractor-model@7.3.2":
+  version "7.3.2"
+  resolved "https://registry.yarnpkg.com/@microsoft/api-extractor-model/-/api-extractor-model-7.3.2.tgz#71229ba80f8aafc56afe4d3ee83f19b1ce72eb24"
+  integrity sha512-2yNbQsQl5PI36l5WzHQshwjBHPe5IeIcmidWad0E+wjyaAxGMLx5pBp5AgXY2JG9S9VQjFmmGmqJJBXn8tzu+w==
+  dependencies:
+    "@microsoft/node-core-library" "3.14.0"
+    "@microsoft/tsdoc" "0.12.12"
+    "@types/node" "8.5.8"
+
+"@microsoft/api-extractor@^7.3.9":
+  version "7.3.9"
+  resolved "https://registry.yarnpkg.com/@microsoft/api-extractor/-/api-extractor-7.3.9.tgz#c035748e9e8745eb9df43351f76ace1f529d17dc"
+  integrity sha512-8qj+N/3CgJaHFZj/YlXqtyPAK8vQ2e4oFzKrzbQNw5mtlVnyLlayTkNfVIq93Q0xRMwAhPJjlmxmAuu1ZI88oQ==
+  dependencies:
+    "@microsoft/api-extractor-model" "7.3.2"
+    "@microsoft/node-core-library" "3.14.0"
+    "@microsoft/ts-command-line" "4.2.7"
+    "@microsoft/tsdoc" "0.12.12"
+    colors "~1.2.1"
+    lodash "~4.17.15"
+    resolve "1.8.1"
+    source-map "~0.6.1"
+    typescript "~3.5.3"
+
+"@microsoft/node-core-library@3.14.0":
+  version "3.14.0"
+  resolved "https://registry.yarnpkg.com/@microsoft/node-core-library/-/node-core-library-3.14.0.tgz#c7014328c67c4a4110e2ed2a9bd11cfd0ad3318d"
+  integrity sha512-+gbTXTRfvR40hTH+C3Vno/RJ51sU/RZAyHb2bo9af8GCdOgxCxCs+qp2KCXklbpuolmIPFfbCmdTwv90yH5tJw==
+  dependencies:
+    "@types/fs-extra" "5.0.4"
+    "@types/jju" "~1.4.0"
+    "@types/node" "8.5.8"
+    "@types/z-schema" "3.16.31"
+    colors "~1.2.1"
+    fs-extra "~7.0.1"
+    jju "~1.4.0"
+    z-schema "~3.18.3"
+
+"@microsoft/ts-command-line@4.2.7":
+  version "4.2.7"
+  resolved "https://registry.yarnpkg.com/@microsoft/ts-command-line/-/ts-command-line-4.2.7.tgz#01e963c683ae782e57225c5c424aa65702a9732c"
+  integrity sha512-PwUMIIDl8oWyl64Y5DW5FAuoRk4KWTBZdk4FEh366KEm5xYFBQhCeatHGURIj8nEYm0Xb2coCrXF77dGDlp/Qw==
+  dependencies:
+    "@types/argparse" "1.0.33"
+    "@types/node" "8.5.8"
+    argparse "~1.0.9"
+    colors "~1.2.1"
+
+"@microsoft/tsdoc@0.12.12":
+  version "0.12.12"
+  resolved "https://registry.yarnpkg.com/@microsoft/tsdoc/-/tsdoc-0.12.12.tgz#6692f1cbca664f68abbc62f9a26459fba8b9ff28"
+  integrity sha512-5EzH1gHIonvvgA/xWRmVAJmRkTQj/yayUXyr66hFwNZiFE4j7lP8is9YQeXhwxGZEjO1PVMblAmFF0CyjNtPGw==
+
 "@mrmlnc/readdir-enhanced@^2.2.1":
   version "2.2.1"
   resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde"
   dependencies:
     any-observable "^0.3.0"
 
+"@types/argparse@1.0.33":
+  version "1.0.33"
+  resolved "https://registry.yarnpkg.com/@types/argparse/-/argparse-1.0.33.tgz#2728669427cdd74a99e53c9f457ca2866a37c52d"
+  integrity sha512-VQgHxyPMTj3hIlq9SY1mctqx+Jj8kpQfoLvDlVSDNOyuYs8JYfkuY3OW/4+dO657yPmNhHpePRx0/Tje5ImNVQ==
+
 "@types/babel__core@^7.1.0":
   version "7.1.2"
   resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.2.tgz#608c74f55928033fce18b99b213c16be4b3d114f"
   dependencies:
     "@babel/types" "^7.3.0"
 
-"@types/detect-indent@0.1.30":
-  version "0.1.30"
-  resolved "https://registry.yarnpkg.com/@types/detect-indent/-/detect-indent-0.1.30.tgz#dc682bb412b4e65ba098e70edad73b4833fb910d"
-  integrity sha1-3GgrtBK05lugmOcO2tc7SDP7kQ0=
-
 "@types/estree@0.0.39":
   version "0.0.39"
   resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f"
   resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7"
   integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==
 
-"@types/glob@5.0.30":
-  version "5.0.30"
-  resolved "https://registry.yarnpkg.com/@types/glob/-/glob-5.0.30.tgz#1026409c5625a8689074602808d082b2867b8a51"
-  integrity sha1-ECZAnFYlqGiQdGAoCNCCsoZ7ilE=
+"@types/fs-extra@5.0.4":
+  version "5.0.4"
+  resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-5.0.4.tgz#b971134d162cc0497d221adde3dbb67502225599"
+  integrity sha512-DsknoBvD8s+RFfSGjmERJ7ZOP1HI0UZRA3FSI+Zakhrc/Gy26YQsLI+m5V5DHxroHRJqCDLKJp7Hixn8zyaF7g==
   dependencies:
-    "@types/minimatch" "*"
     "@types/node" "*"
 
 "@types/glob@^7.1.1":
   dependencies:
     "@types/jest-diff" "*"
 
+"@types/jju@~1.4.0":
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/@types/jju/-/jju-1.4.1.tgz#0a39f5f8e84fec46150a7b9ca985c3f89ad98e9f"
+  integrity sha512-LFt+YA7Lv2IZROMwokZKiPNORAV5N3huMs3IKnzlE430HWhWYZ8b+78HiwJXJJP1V2IEjinyJURuRJfGoaFSIA==
+
 "@types/minimatch@*":
   version "3.0.3"
   resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"
   integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==
 
-"@types/mkdirp@0.3.29":
-  version "0.3.29"
-  resolved "https://registry.yarnpkg.com/@types/mkdirp/-/mkdirp-0.3.29.tgz#7f2ad7ec55f914482fc9b1ec4bb1ae6028d46066"
-  integrity sha1-fyrX7FX5FEgvybHsS7GuYCjUYGY=
-
 "@types/node@*":
   version "10.9.4"
   resolved "https://registry.yarnpkg.com/@types/node/-/node-10.9.4.tgz#0f4cb2dc7c1de6096055357f70179043c33e9897"
   integrity sha512-fCHV45gS+m3hH17zgkgADUSi2RR1Vht6wOZ0jyHP8rjiQra9f+mIcgwPQHllmDocYOstIEbKlxbFDYlgrTPYqw==
 
-"@types/node@8.0.0":
-  version "8.0.0"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.0.tgz#acaa89247afddc7967e9902fd11761dadea1a555"
-  integrity sha512-j2tekvJCO7j22cs+LO6i0kRPhmQ9MXaPZ55TzOc1lzkN5b6BWqq4AFjl04s1oRRQ1v5rSe+KEvnLUSTonuls/A==
+"@types/node@8.5.8":
+  version "8.5.8"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-8.5.8.tgz#92509422653f10e9c0ac18d87e0610b39f9821c7"
+  integrity sha512-8KmlRxwbKZfjUHFIt3q8TF5S2B+/E5BaAoo/3mgc5h6FJzqxXkCK/VMetO+IRDtwtU6HUvovHMBn+XRj7SV9Qg==
 
 "@types/node@^12.6.9":
   version "12.7.2"
   dependencies:
     "@types/yargs-parser" "*"
 
+"@types/z-schema@3.16.31":
+  version "3.16.31"
+  resolved "https://registry.yarnpkg.com/@types/z-schema/-/z-schema-3.16.31.tgz#2eb1d00a5e4ec3fa58c76afde12e182b66dc5c1c"
+  integrity sha1-LrHQCl5Ow/pYx2r94S4YK2bcXBw=
+
 "@zkochan/cmd-shim@^3.1.0":
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/@zkochan/cmd-shim/-/cmd-shim-3.1.0.tgz#2ab8ed81f5bb5452a85f25758eb9b8681982fd2e"
@@ -1426,7 +1483,7 @@ are-we-there-yet@~1.1.2:
     delegates "^1.0.0"
     readable-stream "^2.0.6"
 
-argparse@^1.0.7:
+argparse@^1.0.7, argparse@~1.0.9:
   version "1.0.10"
   resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
   integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
@@ -1963,6 +2020,11 @@ color-name@1.1.3:
   resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
   integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
 
+colors@~1.2.1:
+  version "1.2.5"
+  resolved "https://registry.yarnpkg.com/colors/-/colors-1.2.5.tgz#89c7ad9a374bc030df8013241f68136ed8835afc"
+  integrity sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg==
+
 columnify@^1.5.4:
   version "1.5.4"
   resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb"
@@ -1985,16 +2047,11 @@ combined-stream@~1.0.6:
   dependencies:
     delayed-stream "~1.0.0"
 
-commander@^2.20.0:
+commander@^2.20.0, commander@^2.7.1:
   version "2.20.0"
   resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422"
   integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==
 
-commander@^2.9.0:
-  version "2.18.0"
-  resolved "https://registry.yarnpkg.com/commander/-/commander-2.18.0.tgz#2bf063ddee7c7891176981a2cc798e5754bc6970"
-  integrity sha512-6CYPa+JP2ftfRU2qkDK+UTVeQYosOg/2GbcjIcKPHfinyOLPVGXu/ovN86RP49Re5ndJK1N0kuiidFFuepc4ZQ==
-
 commander@~2.17.1:
   version "2.17.1"
   resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf"
@@ -2390,14 +2447,6 @@ deprecation@^2.0.0:
   resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919"
   integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==
 
-detect-indent@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-0.2.0.tgz#042914498979ac2d9f3c73e4ff3e6877d3bc92b6"
-  integrity sha1-BCkUSYl5rC2fPHPk/z5od9O8krY=
-  dependencies:
-    get-stdin "^0.1.0"
-    minimist "^0.1.0"
-
 detect-indent@^5.0.0:
   version "5.0.0"
   resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d"
@@ -2461,20 +2510,6 @@ dot-prop@^4.2.0:
   dependencies:
     is-obj "^1.0.0"
 
-dts-bundle@^0.7.3:
-  version "0.7.3"
-  resolved "https://registry.yarnpkg.com/dts-bundle/-/dts-bundle-0.7.3.tgz#372b7bb69c820782e6382f400739a69dced3d59a"
-  integrity sha1-Nyt7tpyCB4LmOC9ABzmmnc7T1Zo=
-  dependencies:
-    "@types/detect-indent" "0.1.30"
-    "@types/glob" "5.0.30"
-    "@types/mkdirp" "0.3.29"
-    "@types/node" "8.0.0"
-    commander "^2.9.0"
-    detect-indent "^0.2.0"
-    glob "^6.0.4"
-    mkdirp "^0.5.0"
-
 duplexer@^0.1.1:
   version "0.1.1"
   resolved "http://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
@@ -2923,6 +2958,15 @@ fs-extra@8.1.0, fs-extra@^8.1.0:
     jsonfile "^4.0.0"
     universalify "^0.1.0"
 
+fs-extra@~7.0.1:
+  version "7.0.1"
+  resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9"
+  integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==
+  dependencies:
+    graceful-fs "^4.1.2"
+    jsonfile "^4.0.0"
+    universalify "^0.1.0"
+
 fs-minipass@^1.2.5:
   version "1.2.5"
   resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d"
@@ -3008,11 +3052,6 @@ get-port@^4.2.0:
   resolved "https://registry.yarnpkg.com/get-port/-/get-port-4.2.0.tgz#e37368b1e863b7629c43c5a323625f95cf24b119"
   integrity sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==
 
-get-stdin@^0.1.0:
-  version "0.1.0"
-  resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-0.1.0.tgz#5998af24aafc802d15c82c685657eeb8b10d4a91"
-  integrity sha1-WZivJKr8gC0VyCxoVlfuuLENSpE=
-
 get-stdin@^4.0.1:
   version "4.0.1"
   resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
@@ -3125,17 +3164,6 @@ glob-to-regexp@^0.3.0:
   resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab"
   integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=
 
-glob@^6.0.4:
-  version "6.0.4"
-  resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22"
-  integrity sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=
-  dependencies:
-    inflight "^1.0.4"
-    inherits "2"
-    minimatch "2 || 3"
-    once "^1.3.0"
-    path-is-absolute "^1.0.0"
-
 glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2:
   version "7.1.3"
   resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1"
@@ -4191,6 +4219,11 @@ jest@^24.9.0:
     import-local "^2.0.0"
     jest-cli "^24.9.0"
 
+jju@~1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/jju/-/jju-1.4.0.tgz#a3abe2718af241a2b2904f84a625970f389ae32a"
+  integrity sha1-o6vicYryQaKykE+EpiWXDzia4yo=
+
 "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
@@ -4494,11 +4527,16 @@ lodash.clonedeep@^4.5.0:
   resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
   integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=
 
-lodash.get@^4.4.2:
+lodash.get@^4.0.0, lodash.get@^4.4.2:
   version "4.4.2"
   resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
   integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=
 
+lodash.isequal@^4.0.0:
+  version "4.5.0"
+  resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0"
+  integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA=
+
 lodash.ismatch@^4.4.0:
   version "4.4.0"
   resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37"
@@ -4547,7 +4585,7 @@ lodash@^4.13.1, lodash@^4.17.10, lodash@^4.2.1:
   resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
   integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==
 
-lodash@^4.17.13, lodash@^4.17.14:
+lodash@^4.17.13, lodash@^4.17.14, lodash@~4.17.15:
   version "4.17.15"
   resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
   integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
@@ -4789,7 +4827,7 @@ mimic-fn@^2.1.0:
   resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
   integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
 
-"minimatch@2 || 3", minimatch@^3.0.4:
+minimatch@^3.0.4:
   version "3.0.4"
   resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
   integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
@@ -4809,11 +4847,6 @@ minimist@0.0.8:
   resolved "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
   integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
 
-minimist@^0.1.0:
-  version "0.1.0"
-  resolved "http://registry.npmjs.org/minimist/-/minimist-0.1.0.tgz#99df657a52574c21c9057497df742790b2b4c0de"
-  integrity sha1-md9lelJXTCHJBXSX33QnkLK0wN4=
-
 minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0:
   version "1.2.0"
   resolved "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
@@ -5524,7 +5557,7 @@ path-key@^3.0.0:
   resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.0.tgz#99a10d870a803bdd5ee6f0470e58dfcd2f9a54d3"
   integrity sha512-8cChqz0RP6SHJkMt48FW0A7+qUOn+OsnOsVtzI59tZ8m+5bCSk7hzwET0pulwOM2YMn9J1efb07KB9l9f30SGg==
 
-path-parse@^1.0.6:
+path-parse@^1.0.5, path-parse@^1.0.6:
   version "1.0.6"
   resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
   integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
@@ -6030,6 +6063,13 @@ resolve@1.11.1:
   dependencies:
     path-parse "^1.0.6"
 
+resolve@1.8.1:
+  version "1.8.1"
+  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26"
+  integrity sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==
+  dependencies:
+    path-parse "^1.0.5"
+
 resolve@1.x, resolve@^1.10.0, resolve@^1.3.2:
   version "1.12.0"
   resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6"
@@ -6929,7 +6969,7 @@ typedarray@^0.0.6:
   resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
   integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
 
-typescript@^3.5.3:
+typescript@^3.5.3, typescript@~3.5.3:
   version "3.5.3"
   resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.3.tgz#c830f657f93f1ea846819e929092f5fe5983e977"
   integrity sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==
@@ -7044,6 +7084,11 @@ validate-npm-package-name@^3.0.0:
   dependencies:
     builtins "^1.0.3"
 
+validator@^8.0.0:
+  version "8.2.0"
+  resolved "https://registry.yarnpkg.com/validator/-/validator-8.2.0.tgz#3c1237290e37092355344fef78c231249dab77b9"
+  integrity sha512-Yw5wW34fSv5spzTXNkokD6S6/Oq92d8q/t14TqsS3fAiA1RYnxSFSIZ+CY3n6PGGRCq5HhJTSepQvFUS2QUDxA==
+
 verror@1.10.0:
   version "1.10.0"
   resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
@@ -7334,3 +7379,14 @@ yorkie@^2.0.0:
     is-ci "^1.0.10"
     normalize-path "^1.0.0"
     strip-indent "^2.0.0"
+
+z-schema@~3.18.3:
+  version "3.18.4"
+  resolved "https://registry.yarnpkg.com/z-schema/-/z-schema-3.18.4.tgz#ea8132b279533ee60be2485a02f7e3e42541a9a2"
+  integrity sha512-DUOKC/IhbkdLKKiV89gw9DUauTV8U/8yJl1sjf6MtDmzevLKOF2duNJ495S3MFVjqZarr+qNGCPbkg4mu4PpLw==
+  dependencies:
+    lodash.get "^4.0.0"
+    lodash.isequal "^4.0.0"
+    validator "^8.0.0"
+  optionalDependencies:
+    commander "^2.7.1"