diff --git a/package.json b/package.json
index 52aaf9d504..ef06a7f80a 100644
--- a/package.json
+++ b/package.json
@@ -37,6 +37,7 @@
"@angular-devkit/schematics": "^7.3.0-rc.0",
"@bazel/karma": "0.23.2",
"@bazel/typescript": "0.23.2",
+ "@microsoft/api-extractor": "^7.0.11",
"@schematics/angular": "^7.0.4",
"@types/angular": "^1.6.47",
"@types/base64-js": "1.2.5",
diff --git a/packages/bazel/package.json b/packages/bazel/package.json
index 52d133f937..446f5331e4 100644
--- a/packages/bazel/package.json
+++ b/packages/bazel/package.json
@@ -16,6 +16,7 @@
"@angular-devkit/core": "^7.0.4",
"@angular-devkit/schematics": "^7.3.0-rc.0",
"@bazel/typescript": "^0.23.2",
+ "@microsoft/api-extractor": "^7.0.11",
"@schematics/angular": "^7.0.4",
"@types/node": "6.0.84",
"semver": "^5.6.0",
diff --git a/packages/bazel/src/api-extractor/BUILD.bazel b/packages/bazel/src/api-extractor/BUILD.bazel
new file mode 100644
index 0000000000..b0a9bf207d
--- /dev/null
+++ b/packages/bazel/src/api-extractor/BUILD.bazel
@@ -0,0 +1,27 @@
+package(default_visibility = ["//packages:__subpackages__"])
+
+load("@build_bazel_rules_nodejs//:defs.bzl", "nodejs_binary")
+load("//tools:defaults.bzl", "ts_library")
+
+ts_library(
+ name = "lib",
+ srcs = [
+ "index.ts",
+ ],
+ deps = [
+ "@ngdeps//@bazel/typescript",
+ "@ngdeps//@microsoft/api-extractor",
+ "@ngdeps//@types/node",
+ ],
+)
+
+nodejs_binary(
+ name = "api_extractor",
+ data = [
+ ":lib",
+ "@ngdeps//@bazel/typescript",
+ "@ngdeps//@microsoft/api-extractor",
+ ],
+ entry_point = "angular/packages/bazel/src/api-extractor/index.js",
+ visibility = ["//visibility:public"],
+)
diff --git a/packages/bazel/src/api-extractor/index.ts b/packages/bazel/src/api-extractor/index.ts
new file mode 100644
index 0000000000..c895891c96
--- /dev/null
+++ b/packages/bazel/src/api-extractor/index.ts
@@ -0,0 +1,115 @@
+/**
+ * @license
+ * Copyright Google Inc. All Rights Reserved.
+ *
+ * Use of this source code is governed by an MIT-style license that can be
+ * found in the LICENSE file at https://angular.io/license
+ */
+
+///
+///
+
+import {format, parseTsconfig} from '@bazel/typescript';
+import {Extractor, ExtractorValidationRulePolicy, IExtractorConfig, IExtractorOptions} from '@microsoft/api-extractor';
+import * as fs from 'fs';
+import * as path from 'path';
+
+const DEBUG = false;
+
+export function runMain(
+ tsConfig: string, entryPoint: string, dtsBundleOut?: string, apiReviewFolder?: string,
+ acceptApiUpdates = false): 1|0 {
+ const [parsedConfig, errors] = parseTsconfig(tsConfig);
+ if (errors && errors.length) {
+ console.error(format('', errors));
+
+ return 1;
+ }
+
+ const pkgJson = path.resolve(path.dirname(entryPoint), 'package.json');
+ if (!fs.existsSync(pkgJson)) {
+ fs.writeFileSync(pkgJson, JSON.stringify({
+ 'name': 'GENERATED-BY-BAZEL',
+ 'version': '0.0.0',
+ 'description': 'This is a dummy package.json as API Extractor always requires one.',
+ }));
+ }
+
+ // API extractor doesn't always support the version of TypeScript used in the repo
+ // example: at the moment it is not compatable with 3.2
+ // to use the internal TypeScript we shall not create a program but rather pass a parsed tsConfig.
+ const parsedTsConfig = parsedConfig !.config as any;
+ const compilerOptions = parsedTsConfig.compilerOptions;
+ for (const [key, values] of Object.entries(compilerOptions.paths)) {
+ if (key === '*') {
+ continue;
+ }
+
+ // we shall not pass ts files as this will need to be parsed, and for example rxjs,
+ // cannot be compiled with our tsconfig, as ours is more strict
+ // hence amend the paths to point always to the '.d.ts' files.
+ compilerOptions.paths[key] = values.map(path => {
+ const pathSuffix = /(\*|index)$/.test(path) ? '.d.ts' : '/index.d.ts';
+
+ return path + pathSuffix;
+ });
+ }
+
+ const extractorOptions: IExtractorOptions = {
+ localBuild: acceptApiUpdates,
+ customLogger: DEBUG ? undefined : {
+ // don't log verbose messages when not in debug mode
+ logVerbose: _message => {}
+ }
+ };
+
+ const extractorConfig: IExtractorConfig = {
+ compiler: {
+ configType: 'tsconfig',
+ overrideTsconfig: parsedTsConfig,
+ rootFolder: path.resolve(path.dirname(tsConfig))
+ },
+ project: {
+ entryPointSourceFile: path.resolve(entryPoint),
+ },
+ apiReviewFile: {
+ enabled: !!apiReviewFolder,
+ apiReviewFolder: apiReviewFolder && path.resolve(apiReviewFolder),
+ },
+ apiJsonFile: {
+ enabled: false,
+ },
+ policies: {
+ namespaceSupport: 'permissive',
+ },
+ validationRules: {
+ missingReleaseTags: ExtractorValidationRulePolicy.allow,
+ },
+ dtsRollup: {
+ enabled: !!dtsBundleOut,
+ publishFolder: dtsBundleOut && path.resolve(path.dirname(dtsBundleOut)),
+ mainDtsRollupPath: dtsBundleOut && path.basename(dtsBundleOut),
+ }
+ };
+
+ const extractor = new Extractor(extractorConfig, extractorOptions);
+ const isSuccessful = extractor.processProject();
+
+ // API extractor errors are emitted by it's logger.
+ return isSuccessful ? 0 : 1;
+}
+
+// Entry point
+if (require.main === module) {
+ if (DEBUG) {
+ console.error(`
+api-extractor: running with
+ cwd: ${process.cwd()}
+ argv:
+ ${process.argv.join('\n ')}
+ `);
+ }
+
+ const [tsConfig, entryPoint, dtsBundleOut] = process.argv.slice(2);
+ process.exitCode = runMain(tsConfig, entryPoint, dtsBundleOut);
+}
diff --git a/packages/bazel/src/external.bzl b/packages/bazel/src/external.bzl
index a054142fa2..af5c6bd007 100644
--- a/packages/bazel/src/external.bzl
+++ b/packages/bazel/src/external.bzl
@@ -30,3 +30,4 @@ ts_providers_dict_to_struct = _ts_providers_dict_to_struct
DEFAULT_NG_COMPILER = "@angular//:@angular/bazel/ngc-wrapped"
DEFAULT_NG_XI18N = "@npm//@angular/bazel/bin:xi18n"
+FLAT_DTS_FILE_SUFFIX = ".bundle.d.ts"
diff --git a/packages/bazel/src/ng_module.bzl b/packages/bazel/src/ng_module.bzl
index e6289e8640..42517dbc48 100644
--- a/packages/bazel/src/ng_module.bzl
+++ b/packages/bazel/src/ng_module.bzl
@@ -12,6 +12,7 @@ load(
"DEFAULT_NG_COMPILER",
"DEFAULT_NG_XI18N",
"DEPS_ASPECTS",
+ "FLAT_DTS_FILE_SUFFIX",
"NodeModuleInfo",
"collect_node_modules_aspect",
"compile_ts",
@@ -121,6 +122,24 @@ def _flat_module_out_file(ctx):
return ctx.attr.flat_module_out_file
return "%s_public_index" % ctx.label.name
+def _should_produce_dts_bundle(ctx):
+ """Should we produce dts bundles.
+
+ We only produce flatten dts outs when we expect the ng_module is meant to be published,
+ based on the value of the bundle_dts attribute.
+
+ Args:
+ ctx: skylark rule execution context
+
+ Returns:
+ true when we should produce bundled dts.
+ """
+
+ # At the moment we cannot use this with ngtsc compiler since it emits
+ # import * as ___ from local modules which is not supported
+ # see: https://github.com/Microsoft/web-build-tools/issues/1029
+ return _is_legacy_ngc(ctx) and ctx.attr.bundle_dts
+
def _should_produce_flat_module_outs(ctx):
"""Should we produce flat module outputs.
@@ -200,6 +219,14 @@ def _expected_outs(ctx):
if not _is_bazel():
metadata_files += [ctx.actions.declare_file(basename + ext) for ext in metadata]
+ dts_bundle = None
+ if _should_produce_dts_bundle(ctx):
+ # We need to add a suffix to bundle as it might collide with the flat module dts.
+ # The flat module dts out contains several other exports
+ # https://github.com/angular/angular/blob/master/packages/compiler-cli/src/metadata/index_writer.ts#L18
+ # the file name will be like 'core.bundle.d.ts'
+ dts_bundle = ctx.actions.declare_file(ctx.label.name + FLAT_DTS_FILE_SUFFIX)
+
# We do this just when producing a flat module index for a publishable ng_module
if _should_produce_flat_module_outs(ctx):
flat_module_out = _flat_module_out_file(ctx)
@@ -225,6 +252,7 @@ def _expected_outs(ctx):
declarations = declaration_files,
summaries = summary_files,
metadata = metadata_files,
+ dts_bundle = dts_bundle,
bundle_index_typings = bundle_index_typings,
i18n_messages = i18n_messages_files,
)
@@ -302,6 +330,7 @@ def ngc_compile_action(
label,
inputs,
outputs,
+ dts_bundle_out,
messages_out,
tsconfig_file,
node_opts,
@@ -317,6 +346,7 @@ def ngc_compile_action(
label: the label of the ng_module being compiled
inputs: passed to the ngc action's inputs
outputs: passed to the ngc action's outputs
+ dts_bundle_out: produced flattened dts file
messages_out: produced xmb files
tsconfig_file: tsconfig file with settings used for the compilation
node_opts: list of strings, extra nodejs options.
@@ -380,6 +410,28 @@ def ngc_compile_action(
mnemonic = "Angular2MessageExtractor",
)
+ if dts_bundle_out != None:
+ # combine the inputs and outputs and filter .d.ts and json files
+ filter_inputs = [f for f in inputs + outputs if f.path.endswith(".d.ts") or f.path.endswith(".json")]
+
+ if _should_produce_flat_module_outs(ctx):
+ dts_entry_point = "%s.d.ts" % _flat_module_out_file(ctx)
+ else:
+ dts_entry_point = ctx.attr.entry_point.replace(".ts", ".d.ts")
+
+ ctx.actions.run(
+ progress_message = "Bundling DTS %s" % str(ctx.label),
+ mnemonic = "APIExtractor",
+ executable = ctx.executable._api_extractor,
+ inputs = filter_inputs,
+ outputs = [dts_bundle_out],
+ arguments = [
+ tsconfig_file.path,
+ "/".join([ctx.bin_dir.path, ctx.label.package, dts_entry_point]),
+ dts_bundle_out.path,
+ ],
+ )
+
if not locale and not ctx.attr.no_i18n:
return struct(
label = label,
@@ -400,7 +452,7 @@ def _filter_ts_inputs(all_inputs):
if f.path.endswith(".js") or f.path.endswith(".ts") or f.path.endswith(".json")
]
-def _compile_action(ctx, inputs, outputs, messages_out, tsconfig_file, node_opts):
+def _compile_action(ctx, inputs, outputs, dts_bundle_out, messages_out, tsconfig_file, node_opts):
# Give the Angular compiler all the user-listed assets
file_inputs = list(ctx.files.assets)
@@ -427,16 +479,16 @@ def _compile_action(ctx, inputs, outputs, messages_out, tsconfig_file, node_opts
],
)
- return ngc_compile_action(ctx, ctx.label, action_inputs, outputs, messages_out, tsconfig_file, node_opts)
+ return ngc_compile_action(ctx, ctx.label, action_inputs, outputs, dts_bundle_out, messages_out, tsconfig_file, node_opts)
def _prodmode_compile_action(ctx, inputs, outputs, tsconfig_file, node_opts):
outs = _expected_outs(ctx)
- return _compile_action(ctx, inputs, outputs + outs.closure_js, outs.i18n_messages, tsconfig_file, node_opts)
+ return _compile_action(ctx, inputs, outputs + outs.closure_js, None, outs.i18n_messages, tsconfig_file, node_opts)
def _devmode_compile_action(ctx, inputs, outputs, tsconfig_file, node_opts):
outs = _expected_outs(ctx)
compile_action_outputs = outputs + outs.devmode_js + outs.declarations + outs.summaries + outs.metadata
- _compile_action(ctx, inputs, compile_action_outputs, None, tsconfig_file, node_opts)
+ _compile_action(ctx, inputs, compile_action_outputs, outs.dts_bundle, None, tsconfig_file, node_opts)
def _ts_expected_outs(ctx, label, srcs_files = []):
# rules_typescript expects a function with two or more arguments, but our
@@ -497,6 +549,9 @@ def ng_module_impl(ctx, ts_compile_actions):
flat_module_out_file = _flat_module_out_file(ctx),
)
+ if outs.dts_bundle != None:
+ providers["dts_bundle"] = outs.dts_bundle
+
return providers
def _ng_module_impl(ctx):
@@ -551,6 +606,11 @@ NG_MODULE_ATTRIBUTES = {
executable = True,
cfg = "host",
),
+ "_api_extractor": attr.label(
+ default = Label("//packages/bazel/src/api-extractor:api_extractor"),
+ executable = True,
+ cfg = "host",
+ ),
"_supports_workers": attr.bool(default = True),
}
@@ -630,6 +690,7 @@ NG_MODULE_RULE_ATTRS = dict(dict(COMMON_ATTRIBUTES, **NG_MODULE_ATTRIBUTES), **{
# See the flatModuleOutFile documentation in
# https://github.com/angular/angular/blob/master/packages/compiler-cli/src/transformers/api.ts
"flat_module_out_file": attr.string(),
+ "bundle_dts": attr.bool(default = False),
})
ng_module = rule(
diff --git a/packages/bazel/src/ng_package/ng_package.bzl b/packages/bazel/src/ng_package/ng_package.bzl
index 7ec11d1f7e..c1b4c64492 100644
--- a/packages/bazel/src/ng_package/ng_package.bzl
+++ b/packages/bazel/src/ng_package/ng_package.bzl
@@ -29,6 +29,7 @@ load(
"NPM_PACKAGE_OUTPUTS",
"create_package",
)
+load("//packages/bazel/src:external.bzl", "FLAT_DTS_FILE_SUFFIX")
load("//packages/bazel/src:esm5.bzl", "esm5_outputs_aspect", "esm5_root_dir", "flatten_esm5")
load("//packages/bazel/src/ng_package:collect-type-definitions.bzl", "collect_type_definitions")
@@ -188,15 +189,6 @@ def _ng_package_impl(ctx):
esm_2015_files = _filter_out_generated_files(collect_es6_sources(ctx), "js")
esm5_sources = _filter_out_generated_files(flatten_esm5(ctx), "js")
- # Filter out all TypeScript definitions generated by NGC as well as definition files
- # that do not belong to the current package. We only want to package types that belong
- # to the current package.
- type_definitions = _filter_out_generated_files(
- collect_type_definitions(ctx),
- "d.ts",
- ctx.label.package,
- )
-
# These accumulators match the directory names where the files live in the
# Angular package format.
fesm2015 = []
@@ -204,6 +196,8 @@ def _ng_package_impl(ctx):
esm2015 = []
esm5 = []
bundles = []
+ bundled_type_definitions = []
+ type_definitions = []
# For Angular Package Format v6, we put all the individual .js files in the
# esm5/ and esm2015/ folders.
@@ -235,6 +229,22 @@ def _ng_package_impl(ctx):
# fallback to a reasonable default
flat_module_out_file = "index.js"
+ if hasattr(dep, "dts_bundle"):
+ bundled_type_definitions.append(dep.dts_bundle)
+ elif len(type_definitions) == 0:
+ # Filter out all TypeScript definitions generated by NGC as well as definition files
+ # that do not belong to the current package. We only want to package types that belong
+ # to the current package.
+ type_definitions = _filter_out_generated_files(
+ collect_type_definitions(ctx),
+ "d.ts",
+ ctx.label.package,
+ ).to_list()
+
+ if len(type_definitions) > 0 and len(bundled_type_definitions) > 0:
+ # bundle_dts needs to be enabled/disabled for all ng module packages.
+ fail("Expected all or none of the 'ng_module' dependencies to have 'bundle_dts' enabled.")
+
es2015_entry_point = "/".join([p for p in [
ctx.bin_dir.path,
ctx.label.package,
@@ -304,7 +314,8 @@ def _ng_package_impl(ctx):
ctx.files.srcs +
ctx.files.data +
esm5_sources.to_list() +
- type_definitions.to_list() +
+ type_definitions +
+ bundled_type_definitions +
[f.js for f in fesm2015 + fesm5 + esm2015 + esm5 + bundles] +
[f.map for f in fesm2015 + fesm5 + esm2015 + esm5 + bundles if f.map]
)
@@ -355,6 +366,9 @@ def _ng_package_impl(ctx):
# placeholder
packager_args.add("")
+ packager_args.add_joined([d.path for d in bundled_type_definitions], join_with = ",", omit_if_empty = False)
+ packager_args.add(FLAT_DTS_FILE_SUFFIX)
+
ctx.actions.run(
progress_message = "Angular Packaging: building npm package %s" % str(ctx.label),
mnemonic = "AngularPackage",
diff --git a/packages/bazel/src/ng_package/packager.ts b/packages/bazel/src/ng_package/packager.ts
index 817a4ae92d..deb6b432ce 100644
--- a/packages/bazel/src/ng_package/packager.ts
+++ b/packages/bazel/src/ng_package/packager.ts
@@ -45,7 +45,7 @@ function main(args: string[]): number {
// flat module metadata, for example
// {"@angular/core": {
// "index": "bazel-bin/packages/core/core.js",
- // "typing": "bazel-bin/packages/core/core.d.ts",
+ // "typings": "bazel-bin/packages/core/core.d.ts",
// "metadata": "bazel-bin/packages/core/core.metadata.json"
// },
// ...
@@ -81,6 +81,12 @@ function main(args: string[]): number {
// Path to the package's LICENSE.
licenseFile,
+
+ // List of all dts bundles generated by the API extractor.
+ dtsBundleArg,
+
+ // The dts bundle file suffix example: '.bundle.d.ts'
+ dtsBundleFileSuffix,
] = params;
const fesm2015 = fesm2015Arg.split(',').filter(s => !!s);
@@ -92,6 +98,7 @@ function main(args: string[]): number {
const srcs = srcsArg.split(',').filter(s => !!s);
const dataFiles: string[] = dataArg.split(',').filter(s => !!s);
const modulesManifest = JSON.parse(modulesManifestArg);
+ const dtsBundles: string[] = dtsBundleArg.split(',').filter(s => !!s);
if (readmeMd) {
copyFile(readmeMd, out);
@@ -155,12 +162,7 @@ function main(args: string[]): number {
// Copy all type definitions into the package. This is necessary so that developers can use
// the package with type definitions.
- typeDefinitions.forEach((f: string) => {
- const content = fs.readFileSync(f, 'utf-8')
- // Strip the named AMD module for compatibility with non-bazel users
- .replace(/^\/\/\/ [\r\n]+/gm, '');
- writeFileFromInputPath(f, content);
- });
+ typeDefinitions.forEach(f => writeFileFromInputPath(f, readTypingsAndStripAmdModule(f)));
// Copy all `data` files into the package. These are files that aren't built by the ng_package
// rule, but instead are just straight copied into the package, e.g. global CSS assets.
@@ -176,7 +178,30 @@ function main(args: string[]): number {
moduleFiles['esm5_index'] = path.join(binDir, 'esm5', relative);
moduleFiles['esm2015_index'] = path.join(binDir, 'esm2015', relative);
- copyFileFromInputPath(moduleFiles['metadata']);
+ const metadataFile = moduleFiles['metadata'];
+ const typingsOutFile = moduleFiles['typings'];
+
+ // We only support all modules within a package to be dts bundled
+ // ie: if @angular/common/http has flat dts, so should @angular/common
+ if (dtsBundles.length) {
+ const metadataContent = rewireMetadata(metadataFile, typingsOutFile);
+ writeFileFromInputPath(metadataFile, metadataContent);
+ } else {
+ copyFileFromInputPath(metadataFile);
+ }
+ });
+
+ const licenseBanner = licenseFile ? fs.readFileSync(licenseFile, 'utf-8') : '';
+
+ dtsBundles.forEach(bundleFile => {
+ const cleanDistPath = bundleFile.replace(dtsBundleFileSuffix, '.d.ts');
+ // API extractor will not dedupe license comments from various files
+ // this will remove all the license comments and append the license banner.
+ const content = licenseBanner + '\n' +
+ readTypingsAndStripAmdModule(bundleFile)
+ .replace(/(\/\*\*\s+\*\s\@license(((?!\*\/).|\s)*)\*\/)/gm, '');
+
+ writeFileFromInputPath(cleanDistPath, content);
});
// Root package name (e.g. '@angular/common'), captures as we iterate through sources below.
@@ -210,8 +235,6 @@ function main(args: string[]): number {
writeFileFromInputPath(src, content);
}
- const licenseBanner = licenseFile ? fs.readFileSync(licenseFile, 'utf-8') : '';
-
// Generate extra files for secondary entry-points.
Object.keys(modulesManifest).forEach(entryPointPackageName => {
const entryPointName = entryPointPackageName.substr(rootPackageName.length + 1);
@@ -368,6 +391,39 @@ export * from '${srcDirRelative(inputPath, typingsFile.replace(/\.d\.tsx?$/, '')
* forward slash separators.
*/
function normalizeSeparators(path: string): string { return path.replace(/\\/g, '/'); }
+
+ /**
+ * Rewires metadata to point to the flattened dts file.
+ *
+ * @param metadataPath the metadata file path
+ * @param typingsPath the typings bundle entrypoint
+ */
+ function rewireMetadata(metadataPath: string, typingsPath: string): string {
+ const metadata = fs.readFileSync(metadataPath, 'utf-8');
+
+ let typingsRelativePath =
+ normalizeSeparators(path.relative(path.dirname(metadataPath), typingsPath));
+ if (!typingsRelativePath.startsWith('..')) {
+ typingsRelativePath = `./${typingsRelativePath}`;
+ }
+
+ typingsRelativePath = typingsRelativePath.replace('.d.ts', '');
+
+ // the regexp here catches all relative paths such as:
+ // ./src/core/foo.d.ts and ../src/core/foo.d.ts
+ return metadata.replace(/\.?\.\/[\w\.\-_\/]+/g, typingsRelativePath);
+ }
+
+ /**
+ * Strip the named AMD module for compatibility with non-bazel users from typings content
+ * @param filePath dts file path
+ */
+ function readTypingsAndStripAmdModule(filePath: string): string {
+ return fs
+ .readFileSync(filePath, 'utf-8')
+ // Strip the named AMD module for compatibility with non-bazel users
+ .replace(/^\/\/\/ [\r\n]+/gm, '');
+ }
}
if (require.main === module) {
diff --git a/packages/bazel/yarn.lock b/packages/bazel/yarn.lock
index d66c360e0e..5ff955c516 100644
--- a/packages/bazel/yarn.lock
+++ b/packages/bazel/yarn.lock
@@ -70,6 +70,51 @@
source-map-support "0.5.9"
tsutils "2.27.2"
+"@microsoft/api-extractor@^7.0.11":
+ version "7.0.14"
+ resolved "https://registry.yarnpkg.com/@microsoft/api-extractor/-/api-extractor-7.0.14.tgz#cc137b203cb5ad1bcca1e9bdf32d2593f867437b"
+ integrity sha512-ZKieNJBQLJx+5c4DrpTbRw8wuiAvffZesZs3HFBlUz1DSr23A2JrD+obqe07iRCXymSYSDp4Nh5wN9JydnR/Rw==
+ dependencies:
+ "@microsoft/node-core-library" "3.9.0"
+ "@microsoft/ts-command-line" "4.2.3"
+ "@microsoft/tsdoc" "0.12.5"
+ "@types/node" "8.5.8"
+ "@types/z-schema" "3.16.31"
+ colors "~1.2.1"
+ lodash "~4.17.5"
+ resolve "1.8.1"
+ typescript "~3.1.6"
+ z-schema "~3.18.3"
+
+"@microsoft/node-core-library@3.9.0":
+ version "3.9.0"
+ resolved "https://registry.yarnpkg.com/@microsoft/node-core-library/-/node-core-library-3.9.0.tgz#a999c15c45707bfd5e2329518e00cb2c8d33b55c"
+ integrity sha512-zmP6zNddcIrRXbg8NX9oHX2iCBLU9hZF/+7GeUi3hLbp13xMDHfdT4KepoT+8ZMOMZzRF1lcqiTiVy24VYvCEg==
+ 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.3":
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/@microsoft/ts-command-line/-/ts-command-line-4.2.3.tgz#20d6a1684148b9fc0df25ee7335c3bb227d47d4f"
+ integrity sha512-SIs4q7RcG7efBbh5Ffrf6V4jVLxWihD4NDRY3+gPiOG8CYawBzE22tTEloZ1yj/FBvBZQkQ0GYwXoPhn6ElYXA==
+ dependencies:
+ "@types/argparse" "1.0.33"
+ "@types/node" "8.5.8"
+ argparse "~1.0.9"
+ colors "~1.2.1"
+
+"@microsoft/tsdoc@0.12.5":
+ version "0.12.5"
+ resolved "https://registry.yarnpkg.com/@microsoft/tsdoc/-/tsdoc-0.12.5.tgz#c448a38902ccb5601c1b2ef3b1a105012ef7712c"
+ integrity sha512-xEAyvLXo4Cter/b0EMCWUZTgXOfLOPJ/Xr52WdjVclPx9eDmNTGFtZl8Pn/nqSnZsQBNcHL0eHk/YyRyyXXpiQ==
+
"@schematics/angular@^7.0.4":
version "7.1.2"
resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-7.1.2.tgz#b3eefbc81d12b0b53816896f6172eb613885826c"
@@ -79,11 +124,43 @@
"@angular-devkit/schematics" "7.1.2"
typescript "3.1.6"
+"@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/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/node" "*"
+
+"@types/jju@~1.4.0":
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/@types/jju/-/jju-1.4.0.tgz#ee074af79540c0e187426f46f12acbe8f6c31232"
+ integrity sha512-s6l49zLzFiXYHaTXbA+FNcDRo8ufZgC2/T5/jH+Wfr+ZV2tYbrBpEpN9oPkXXfug+y7pTZFkdeyQ0L/88Z34JA==
+
+"@types/node@*":
+ version "10.12.21"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.21.tgz#7e8a0c34cf29f4e17a36e9bd0ea72d45ba03908e"
+ integrity sha512-CBgLNk4o3XMnqMc0rhb6lc77IwShMEglz05deDcn2lQxyXEZivfwgYJu7SMha9V5XcrP6qZuevTHV/QrN2vjKQ==
+
"@types/node@6.0.84":
version "6.0.84"
resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.84.tgz#193ffe5a9f42864d425ffd9739d95b753c6a1eab"
integrity sha512-1SvEazClhUBRNroJM3oB3xf3u2r6xGmHDGbdigqNPHvNKLl8/BtATgO9eC04ZLuovpSh0B20BF1QJxdi+qmTlg==
+"@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/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=
+
abbrev@1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
@@ -140,6 +217,13 @@ are-we-there-yet@~1.1.2:
delegates "^1.0.0"
readable-stream "^2.0.6"
+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==
+ dependencies:
+ sprintf-js "~1.0.2"
+
arr-diff@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
@@ -319,11 +403,21 @@ collection-visit@^1.0.0:
map-visit "^1.0.0"
object-visit "^1.0.0"
+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==
+
colour@~0.7.1:
version "0.7.1"
resolved "https://registry.yarnpkg.com/colour/-/colour-0.7.1.tgz#9cb169917ec5d12c0736d3e8685746df1cadf778"
integrity sha1-nLFpkX7F0SwHNtPoaFdG3xyt93g=
+commander@^2.7.1:
+ version "2.19.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a"
+ integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==
+
component-emitter@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
@@ -477,6 +571,15 @@ fragment-cache@^0.2.1:
dependencies:
map-cache "^0.2.2"
+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"
@@ -536,7 +639,7 @@ glob@^7.0.0, glob@^7.0.5:
once "^1.3.0"
path-is-absolute "^1.0.0"
-graceful-fs@^4.1.11:
+graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6:
version "4.1.15"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00"
integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==
@@ -761,11 +864,23 @@ jasmine-core@2.8.0:
resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.8.0.tgz#bcc979ae1f9fd05701e45e52e65d3a5d63f1a24e"
integrity sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=
+jju@~1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/jju/-/jju-1.4.0.tgz#a3abe2718af241a2b2904f84a625970f389ae32a"
+ integrity sha1-o6vicYryQaKykE+EpiWXDzia4yo=
+
json-schema-traverse@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
+jsonfile@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
+ integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=
+ optionalDependencies:
+ graceful-fs "^4.1.6"
+
kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
version "3.2.2"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
@@ -802,6 +917,21 @@ lodash.debounce@^4.0.8:
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168=
+lodash.get@^4.0.0:
+ 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@~4.17.5:
+ version "4.17.11"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
+ integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==
+
long@~3:
version "3.2.0"
resolved "https://registry.yarnpkg.com/long/-/long-3.2.0.tgz#d821b7138ca1cb581c172990ef14db200b5c474b"
@@ -1157,7 +1287,7 @@ resolve-url@^0.2.1:
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
-resolve@^1.1.6:
+resolve@1.8.1, resolve@^1.1.6:
version "1.8.1"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26"
integrity sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==
@@ -1325,6 +1455,11 @@ split-string@^3.0.1, split-string@^3.0.2:
dependencies:
extend-shallow "^3.0.0"
+sprintf-js@~1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+ integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
+
static-extend@^0.1.1:
version "0.1.2"
resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
@@ -1435,7 +1570,7 @@ tsutils@2.27.2:
dependencies:
tslib "^1.8.1"
-typescript@3.1.6:
+typescript@3.1.6, typescript@~3.1.6:
version "3.1.6"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.1.6.tgz#b6543a83cfc8c2befb3f4c8fba6896f5b0c9be68"
integrity sha512-tDMYfVtvpb96msS1lDX9MEdHrW4yOuZ4Kdc4Him9oU796XldPYF/t2+uKoX0BBa0hXXwDlqYQbXY5Rzjzc5hBA==
@@ -1450,6 +1585,11 @@ union-value@^1.0.0:
is-extendable "^0.1.1"
set-value "^0.4.3"
+universalify@^0.1.0:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
+ integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
+
unset-value@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
@@ -1485,6 +1625,11 @@ util-deprecate@~1.0.1:
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
+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==
+
wide-align@^1.1.0:
version "1.1.3"
resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
@@ -1532,3 +1677,14 @@ yargs@^3.10.0:
string-width "^1.0.1"
window-size "^0.1.4"
y18n "^3.2.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"
diff --git a/yarn.lock b/yarn.lock
index d8292bee0e..528d2f6387 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -248,6 +248,51 @@
through2 "^2.0.0"
xdg-basedir "^3.0.0"
+"@microsoft/api-extractor@^7.0.11":
+ version "7.0.15"
+ resolved "https://registry.yarnpkg.com/@microsoft/api-extractor/-/api-extractor-7.0.15.tgz#58a0fe18b72e648e4b38f5666e5db8a6c14977bf"
+ integrity sha512-C9HqdZ8LzkYno0BsllyvezsBfDeyNLntkF3fAIF90wPG322NUkAIOGvU127aVjcfPVNmt2a/oOkOy8k9N2bQwQ==
+ dependencies:
+ "@microsoft/node-core-library" "3.10.0"
+ "@microsoft/ts-command-line" "4.2.3"
+ "@microsoft/tsdoc" "0.12.5"
+ "@types/node" "8.5.8"
+ "@types/z-schema" "3.16.31"
+ colors "~1.2.1"
+ lodash "~4.17.5"
+ resolve "1.8.1"
+ typescript "~3.1.6"
+ z-schema "~3.18.3"
+
+"@microsoft/node-core-library@3.10.0":
+ version "3.10.0"
+ resolved "https://registry.yarnpkg.com/@microsoft/node-core-library/-/node-core-library-3.10.0.tgz#70e089534d8e20f6a0f9c7a4a12a6aeafd6a1ddb"
+ integrity sha512-1SbU+XNYAabhV9noGXHtsUVPc5ELV+oEuJQtZQoCncbOd6WAMeTgB1xFwh96hmdEXyKQyML/pnByiKocmh/nbQ==
+ 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.3":
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/@microsoft/ts-command-line/-/ts-command-line-4.2.3.tgz#20d6a1684148b9fc0df25ee7335c3bb227d47d4f"
+ integrity sha512-SIs4q7RcG7efBbh5Ffrf6V4jVLxWihD4NDRY3+gPiOG8CYawBzE22tTEloZ1yj/FBvBZQkQ0GYwXoPhn6ElYXA==
+ dependencies:
+ "@types/argparse" "1.0.33"
+ "@types/node" "8.5.8"
+ argparse "~1.0.9"
+ colors "~1.2.1"
+
+"@microsoft/tsdoc@0.12.5":
+ version "0.12.5"
+ resolved "https://registry.yarnpkg.com/@microsoft/tsdoc/-/tsdoc-0.12.5.tgz#c448a38902ccb5601c1b2ef3b1a105012ef7712c"
+ integrity sha512-xEAyvLXo4Cter/b0EMCWUZTgXOfLOPJ/Xr52WdjVclPx9eDmNTGFtZl8Pn/nqSnZsQBNcHL0eHk/YyRyyXXpiQ==
+
"@schematics/angular@7.3.0-rc.0":
version "7.3.0-rc.0"
resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-7.3.0-rc.0.tgz#7519aa692dcaed63b9caa7d824846511905b1bfc"
@@ -290,6 +335,11 @@
resolved "https://registry.yarnpkg.com/@types/angular/-/angular-1.6.48.tgz#e8f77bf41d00d3293421cbaaed2bafb4d5f399f9"
integrity sha512-zF0WlsWOjTkZjWq93ESfvq/4s3E9P8EnbIjOFzlDbhepL2iOBk9SJf98eqnV2fvjstwrPF+uYZvcAggL7Xw1FA==
+"@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/base64-js@1.2.5":
version "1.2.5"
resolved "https://registry.yarnpkg.com/@types/base64-js/-/base64-js-1.2.5.tgz#582b2476169a6cba460a214d476c744441d873d5"
@@ -329,6 +379,13 @@
dependencies:
"@types/node" "*"
+"@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/node" "*"
+
"@types/glob@*":
version "5.0.35"
resolved "https://registry.yarnpkg.com/@types/glob/-/glob-5.0.35.tgz#1ae151c802cece940443b5ac246925c85189f32a"
@@ -360,6 +417,11 @@
dependencies:
"@types/jasmine" "*"
+"@types/jju@~1.4.0":
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/@types/jju/-/jju-1.4.0.tgz#ee074af79540c0e187426f46f12acbe8f6c31232"
+ integrity sha512-s6l49zLzFiXYHaTXbA+FNcDRo8ufZgC2/T5/jH+Wfr+ZV2tYbrBpEpN9oPkXXfug+y7pTZFkdeyQ0L/88Z34JA==
+
"@types/minimatch@*":
version "3.0.3"
resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"
@@ -382,6 +444,11 @@
resolved "https://registry.yarnpkg.com/@types/node/-/node-10.5.2.tgz#f19f05314d5421fe37e74153254201a7bf00a707"
integrity sha512-m9zXmifkZsMHZBOyxZWilMwmTlpC8x5Ty360JKTiXvlXZfBWYpsg9ZZvP/Ye+iZUh+Q+MxDLjItVTWIsfwz+8Q==
+"@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@^10.9.4":
version "10.9.4"
resolved "https://registry.yarnpkg.com/@types/node/-/node-10.9.4.tgz#0f4cb2dc7c1de6096055357f70179043c33e9897"
@@ -427,6 +494,11 @@
resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-11.1.1.tgz#2e724257167fd6b615dbe4e54301e65fe597433f"
integrity sha512-Awgju4dqD8kHXX3jc/B/LaryJC7MsyNfnbN62lIbFzTi0GewH64zrkh4bxo/YTgVEK6r9V3GNecxMhXTJw0+jA==
+"@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=
+
"@webcomponents/custom-elements@^1.0.4":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@webcomponents/custom-elements/-/custom-elements-1.1.2.tgz#041e4c20df35245f4d160b50d044b8cff192962c"
@@ -818,6 +890,13 @@ are-we-there-yet@~1.1.2:
delegates "^1.0.0"
readable-stream "^2.0.6"
+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==
+ dependencies:
+ sprintf-js "~1.0.2"
+
arr-diff@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-1.1.0.tgz#687c32758163588fef7de7b36fabe495eb1a399a"
@@ -1982,6 +2061,11 @@ colors@^1.1.0, colors@^1.1.2:
resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.0.tgz#5f20c9fef6945cb1134260aab33bfbdc8295e04e"
integrity sha512-EDpX3a7wHMWFA7PUHWPHNWqOxIIRSJetuwl0AS5Oi/5FMV8kWm69RTlgm00GKjBO1xFHMtBbL49yRtMMdticBw==
+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==
+
colour@~0.7.1:
version "0.7.1"
resolved "https://registry.yarnpkg.com/colour/-/colour-0.7.1.tgz#9cb169917ec5d12c0736d3e8685746df1cadf778"
@@ -2025,7 +2109,7 @@ commander@^2.5.0, commander@^2.9.0:
resolved "https://registry.yarnpkg.com/commander/-/commander-2.16.0.tgz#f16390593996ceb4f3eeb020b31d78528f7f8a50"
integrity sha512-sVXqklSaotK9at437sFlFpyOcJonxe0yST/AG9DkQKUdIE6IqGIMv4SfAQSKaJbSdVEJYItASCrBiVQHq1HQew==
-commander@^2.8.1:
+commander@^2.7.1, commander@^2.8.1:
version "2.19.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a"
integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==
@@ -3964,6 +4048,15 @@ fs-extra@~2.1.2:
graceful-fs "^4.1.2"
jsonfile "^2.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"
@@ -5612,7 +5705,7 @@ jetpack-validation@0.0.7:
resolve "^0.7.1"
semver "^5.3.0"
-jju@^1.1.0:
+jju@^1.1.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=
@@ -6228,6 +6321,11 @@ lodash.escape@^3.0.0:
dependencies:
lodash._root "^3.0.0"
+lodash.get@^4.0.0:
+ version "4.4.2"
+ resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
+ integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=
+
lodash.includes@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f"
@@ -6253,6 +6351,11 @@ lodash.isboolean@^3.0.3:
resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6"
integrity sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=
+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.isinteger@^4.0.4:
version "4.0.4"
resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343"
@@ -6388,7 +6491,7 @@ lodash@^4.0.0, lodash@^4.14.0, lodash@^4.16.6, lodash@^4.2.1, lodash@^4.5.0, lod
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7"
integrity sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==
-lodash@^4.17.10, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0:
+lodash@^4.17.10, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0, lodash@~4.17.5:
version "4.17.11"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==
@@ -8672,18 +8775,18 @@ resolve@0.2.3:
resolved "https://registry.yarnpkg.com/resolve/-/resolve-0.2.3.tgz#f1eb7fb76436f91d87fd19c5f973fe7d506f6571"
integrity sha1-8et/t2Q2+R2H/RnF+XP+fVBvZXE=
-resolve@^0.7.1:
- version "0.7.4"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-0.7.4.tgz#395a9ef9e873fbfe12bd14408bd91bb936003d69"
- integrity sha1-OVqe+ehz+/4SvRRAi9kbuTYAPWk=
-
-resolve@^1.1.6, resolve@^1.1.7, resolve@^1.3.2:
+resolve@1.8.1, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.3.2:
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@^0.7.1:
+ version "0.7.4"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-0.7.4.tgz#395a9ef9e873fbfe12bd14408bd91bb936003d69"
+ integrity sha1-OVqe+ehz+/4SvRRAi9kbuTYAPWk=
+
resolve@^1.8.1:
version "1.9.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.9.0.tgz#a14c6fdfa8f92a7df1d996cb7105fa744658ea06"
@@ -9491,6 +9594,11 @@ split@^1.0.0:
dependencies:
through "2"
+sprintf-js@~1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+ integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
+
sshpk@^1.7.0:
version "1.14.2"
resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.2.tgz#c6fc61648a3d9c4e764fd3fcdf4ea105e492ba98"
@@ -10231,7 +10339,7 @@ typedarray@^0.0.6:
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
-typescript@3.1.6:
+typescript@3.1.6, typescript@~3.1.6:
version "3.1.6"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.1.6.tgz#b6543a83cfc8c2befb3f4c8fba6896f5b0c9be68"
integrity sha512-tDMYfVtvpb96msS1lDX9MEdHrW4yOuZ4Kdc4Him9oU796XldPYF/t2+uKoX0BBa0hXXwDlqYQbXY5Rzjzc5hBA==
@@ -10591,6 +10699,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==
+
vary@^1, vary@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
@@ -11097,6 +11210,17 @@ yeast@0.1.2:
resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419"
integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk=
+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"
+
zip-dir@1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/zip-dir/-/zip-dir-1.0.2.tgz#253f907aead62a21acd8721d8b88032b2411c051"