diff --git a/.bazelci/presubmit.yml b/.bazelci/presubmit.yml index c40163e542..e692a85a52 100644 --- a/.bazelci/presubmit.yml +++ b/.bazelci/presubmit.yml @@ -1,5 +1,5 @@ --- -bazel: 3.6.0 +bazel: 4.0.0 tasks: ubuntu1604: name: ubuntu1604 diff --git a/.bazelrc b/.bazelrc index 5fbbc6bbc2..00ce0e3bcb 100644 --- a/.bazelrc +++ b/.bazelrc @@ -52,3 +52,5 @@ build:docker-sandbox --experimental_docker_image=gcr.io/cloud-marketplace/google # Incompatible flags to run with build --incompatible_no_implicit_file_export build --incompatible_restrict_string_escapes +# TODO(alexeagle): turn on this flag when dependencies allow +# build --incompatible_use_platforms_repo_for_constraints diff --git a/.bazelversion b/.bazelversion index 40c341bdcd..fcdb2e109f 100644 --- a/.bazelversion +++ b/.bazelversion @@ -1 +1 @@ -3.6.0 +4.0.0 diff --git a/CHANGELOG.md b/CHANGELOG.md index 6dad69a43b..41c71a744e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,23 @@ +## [3.2.3](https://github.com/bazelbuild/rules_nodejs/compare/3.2.2...3.2.3) (2021-03-25) + + +### Bug Fixes + +* **builtin:** add transitive typings to runfiles provider produced by js_library ([#2547](https://github.com/bazelbuild/rules_nodejs/issues/2547)) ([41117fa](https://github.com/bazelbuild/rules_nodejs/commit/41117fa)) +* **builtin:** always install source-map-support ([#2538](https://github.com/bazelbuild/rules_nodejs/issues/2538)) ([97b3886](https://github.com/bazelbuild/rules_nodejs/commit/97b3886)), closes [#2520](https://github.com/bazelbuild/rules_nodejs/issues/2520) +* **esbuild:** allow empty string as an input to sourcemap for bazel 2.x support ([#2549](https://github.com/bazelbuild/rules_nodejs/issues/2549)) ([3b3e020](https://github.com/bazelbuild/rules_nodejs/commit/3b3e020)) +* **typescript:** update documentation now that ts_project is recommended ([#2548](https://github.com/bazelbuild/rules_nodejs/issues/2548)) ([a8d8b0f](https://github.com/bazelbuild/rules_nodejs/commit/a8d8b0f)) +* tsconfig validator fails on chained tsconfig references ([#2512](https://github.com/bazelbuild/rules_nodejs/issues/2512)) ([bfd74e5](https://github.com/bazelbuild/rules_nodejs/commit/bfd74e5)) +* **examples:** remove relativeLinkResolution ([#2530](https://github.com/bazelbuild/rules_nodejs/issues/2530)) ([8ef60e5](https://github.com/bazelbuild/rules_nodejs/commit/8ef60e5)) + + +### Features + +* **builtin:** first experimental rules for npm tarballs ([#2544](https://github.com/bazelbuild/rules_nodejs/issues/2544)) ([aa09b57](https://github.com/bazelbuild/rules_nodejs/commit/aa09b57)) +* **esbuild:** add 'sourcemap' option to configure sourcemap generation ([#2528](https://github.com/bazelbuild/rules_nodejs/issues/2528)) ([8d0218c](https://github.com/bazelbuild/rules_nodejs/commit/8d0218c)) + + + ## [3.2.2](https://github.com/bazelbuild/rules_nodejs/compare/3.2.1...3.2.2) (2021-03-08) diff --git a/README.md b/README.md index 9e1eff7b4a..03a0518d83 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,8 @@ so this repo can be thought of as "JavaScript rules for Bazel" as well. (We woul This repository is maintained by volunteers in the Bazel community. Neither Google, nor the Bazel team, provides support for the code. However, this repository is part of the test suite used to vet new Bazel releases. -We follow semantic versioning. Patch releases have bugfixes, minor releases have new features. Only major releases (1.x, 2.x) have breaking changes. +We follow semantic versioning. Patch releases have bugfixes, minor releases have new features. Only major releases (1.x, 2.x) have breaking changes. We support the last two major releases of Bazel, see `SUPPORTED_BAZEL_VERSIONS` in our `/index.bzl` for the list we test against. + We strive to give you an easy upgrade path when we do introduce a breaking change by documenting a migration path. If you use code from an `/internal` path, or the labs package, these are not subject to our support policy and may have breaking changes or removals with no warning or migration path. diff --git a/WORKSPACE b/WORKSPACE index d9964a5466..d8472da8bf 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -79,6 +79,19 @@ npm_install( package_lock_json = "//packages/node-patches:package-lock.json", ) +load("@build_bazel_rules_nodejs//internal/npm_tarballs:translate_package_lock.bzl", "translate_package_lock") + +# Translate our package.lock file from JSON to Starlark +translate_package_lock( + name = "npm_node_patches_lock", + package_lock = "//packages/node-patches:package-lock.json", +) + +load("@npm_node_patches_lock//:index.bzl", _npm_patches_repositories = "npm_repositories") + +# # Declare an external repository for each npm package fetchable by the lock file +_npm_patches_repositories() + npm_install( name = "angular_deps", package_json = "//packages/angular:package.json", diff --git a/docs/Built-ins.html b/docs/Built-ins.html index ba4faa90ae..868ac116bb 100755 --- a/docs/Built-ins.html +++ b/docs/Built-ins.html @@ -1680,8 +1680,8 @@
USAGE
-npm_package_bin(tool, package, package_bin, data, env, outs, args, output_dir, link_workspace_root, - chdir, kwargs) +npm_package_bin(tool, package, package_bin, data, env, outs, args, stderr, stdout, exit_code_out, + output_dir, link_workspace_root, chdir, kwargs)
Run an arbitrary npm package binary (e.g. a program under node_modules/.bin/*) under Bazel.
@@ -1786,6 +1786,28 @@Defaults to []
set to capture the stderr of the binary to a file, which can later be used as an input to another target
+subject to the same semantics as outs
Defaults to None
set to capture the stdout of the binary to a file, which can later be used as an input to another target
+subject to the same semantics as outs
Defaults to None
set to capture the exit code of the binary to a file, which can later be used as an input to another target
+subject to the same semantics as outs. Note that setting this will force the binary to exit 0.
+If the binary creates outputs and these are declared, they must still be created
Defaults to None
set to True if you want the output to be a directory diff --git a/docs/Built-ins.md b/docs/Built-ins.md index 4441111e9b..743733967c 100755 --- a/docs/Built-ins.md +++ b/docs/Built-ins.md @@ -1608,8 +1608,8 @@ used for undocumented legacy features **USAGE**
-npm_package_bin(tool, package, package_bin, data, env, outs, args, output_dir, link_workspace_root, - chdir, kwargs) +npm_package_bin(tool, package, package_bin, data, env, outs, args, stderr, stdout, exit_code_out, + output_dir, link_workspace_root, chdir, kwargs)Run an arbitrary npm package binary (e.g. a program under node_modules/.bin/*) under Bazel. @@ -1710,6 +1710,28 @@ See https://docs.bazel.build/versions/master/be/make-variables.html#custom_varia Defaults to `[]` +
At a high level, there are three alternatives provided: tsc, ts_project, ts_library.
This section describes the trade-offs between these rules.
tsc is the raw TypeScript compiler published by the team at Microsoft.
-Like any npm package that exposes a binary, rules_nodejs will generate an index.bzl file allowing
-you to run tsc.
To use it, add the load statement load("@npm//typescript:index.bzl", "tsc") to your BUILD file.
-Then call it, using the npm_package_bin documentation.
tsc is the TypeScript compiler published by the team at Microsoft.
+You can call it without any custom Bazel rules.
The only reason to use raw tsc is if you want to compile an opaque directory of .ts files and cannot enumerate them to Bazel.
+
To use this option, you do not need to install the @bazel/typescript package.
The only reason to use raw tsc is if you want to compile a directory of .ts files and cannot enumerate them ahead-of-time in your BUILD file so that Bazel can predict all the output files.
(For example if the .ts files are generated by some tool).
-This will produce an opaque directory of .js file outputs, which you won’t be able to individually reference.
-Any other use case for tsc is better served by using ts_project.
.js file outputs, which you won’t be able to individually reference.
+
+Any other use case for tsc is better served by using ts_project, see below.
Like we do for any npm package that exposes a binary, rules_nodejs will see your dependency on
+typescript and will generate an index.bzl file allowing you to run tsc.
+To use it, add the load statement load("@npm//typescript:index.bzl", "tsc") to your BUILD file.
+(Possibly replacing @npm with the name of the repository where you installed dependencies)
Then call it, using the npm_package_bin documentation.
Here is an example: +https://github.com/bazelbuild/rules_nodejs/blob/3.2.2/internal/node/test/BUILD.bazel#L491-L507
+ +ts_project simply runs tsc --project, with Bazel knowing which outputs to expect based on the TypeScript compiler options,
+and with interoperability with other TypeScript rules via the DeclarationInfo Provider that transmits the type information.
It is intended as an easy on-boarding for existing TypeScript code and should be familiar if your background is in frontend ecosystem idioms.
+ +Any behavior of ts_project should be reproducible outside of Bazel, with a couple of caveats noted in the rule documentation below.
ts_project is recommended for all new code.
Exhaustive examples of calling ts_project are in the test suite:
+https://github.com/bazelbuild/rules_nodejs/tree/stable/packages/typescript/test/ts_project
And there are also many uses of it in our
ts_project simply runs tsc --project, with Bazel knowing which outputs to expect based on the TypeScript compiler options, and with interoperability with other TypeScript rules via a Bazel Provider (DeclarationInfo) that transmits the type information.
-It is intended as an easy on-boarding for existing TypeScript code and should be familiar if your background is in frontend ecosystem idioms.
-Any behavior of ts_project should be reproducible outside of Bazel, with a couple of caveats noted in the rule documentation below.
ts_library should not be used for new code, and may be deprecated in the future.
ts_library is an open-sourced version of the rule used to compile TS code at Google.
-It should be familiar if your background is in Bazel idioms.
-It is very complex, involving code generation of the tsconfig.json file, a custom compiler binary, and a lot of extra features.
-It is also opinionated, and may not work with existing TypeScript code. For example:
tsconfig.json file, a custom compiler binary, and a lot of extra features.
+
+It is also opinionated, and may not work with existing TypeScript code. For example:
--declaration flag so that downstream libraries depend only on types, not implementation. This makes Bazel faster by avoiding cascading rebuilds in cases where the types aren’t changed.--noEmit compiler option in tsconfig.json.On the other hand, ts_library is also fast and optimized.
-We keep a running TypeScript compile running as a daemon, using Bazel workers.
-This process avoids re-parse and re-JIT of the >1MB typescript.js and keeps cached bound ASTs for input files which saves time.
-We also produce JS code which can be loaded faster (using named AMD module format) and which can be consumed by the Closure Compiler (via integration with tsickle).
The only reason to use ts_library for new code is if you are bought-in to using a concatjs bundler, which requires the named AMD module format. This may be faster than other tooling, and this format can be consumed by the Closure Compiler (via integration with tsickle).
+However it is very challenging to configure and there is little available support for problems you’ll run into.
Watch for any peerDependency warnings - we assume you have already installed the typescript package from npm.
Create a BUILD.bazel file in your workspace root. If your tsconfig.json file is in the root, use
exports_files(["tsconfig.json"], visibility = ["//visibility:public"])
-otherwise create an alias:
- -alias(
- name = "tsconfig.json",
- actual = "//path/to/my:tsconfig.json",
-)
-Make sure to remove the --noEmit compiler option from your tsconfig.json. This is not compatible with the ts_library rule.
The ts_project rule invokes the TypeScript compiler on one compilation unit,
+or “library” (generally one directory of source files). In TypeScript terms, this is one “Project”
+which can use “Project References” to break up a large application.
Create a BUILD file next to your sources:
We recommend you use Bazel managed dependencies, but if you would like
-Bazel to also install a node_modules in your workspace you can also
-point the node_repositories repository rule in your WORKSPACE file to
-your package.json.
load("@npm//@bazel/typescript:index.bzl", "ts_project")
-node_repositories(package_json = ["//:package.json"])
-
+ts_project(
+ name = "my_code",
+ # glob is a quick way to select all the code,
+ # but has performance penalty in that Bazel must evaluate it.
+ srcs = glob(["*.ts"]),
+ deps = ["//path/to/other:library"],
+)
+
+
+Here, //path/to/other:library is another target in your repo that produces TypeScript typings (for example, another ts_project rule).
+Be sure to set the rootDirs in your tsconfig.json as noted below, so that TypeScript can find the .d.ts files produced by that other target.
To use third-party libraries from npm, first install them (likely using npm_install or yarn_install rules) then add those to the deps as well:
ts_project(
+ name = "my_code",
+ srcs = glob(["*.ts"]),
+ deps = [
+ "@npm//@types/node",
+ "@npm//@types/foo",
+ "@npm//somelib",
+ "//path/to/other:library",
+ ],
+)
+
-You can then run yarn in your workspace with:
You can also use the @npm//@types grouping target which will include all
+packages in the @types scope as dependencies.
$ bazel run @nodejs//:yarn_node_repositories
-To build a ts_library target run:
To use your workspace node_modules folder as a dependency in ts_library and
-other rules, add the following to your root BUILD.bazel file:
js_library(
- name = "node_modules",
- srcs = glob(
- include = [
- "node_modules/**/*.js",
- "node_modules/**/*.d.ts",
- "node_modules/**/*.json",
- "node_modules/.bin/*",
- ],
- exclude = [
- # Files under test & docs may contain file names that
- # are not legal Bazel labels (e.g.,
- # node_modules/ecstatic/test/public/中文/檔案.html)
- "node_modules/**/test/**",
- "node_modules/**/docs/**",
- # Files with spaces in the name are not legal Bazel labels
- "node_modules/**/* */**",
- "node_modules/**/* *",
- ],
- ),
- # Provide ExternalNpmPackageInfo which is used by downstream rules
- # that use these npm dependencies
- external_npm_package = True,
-)
+bazel build //path/to/package:target
-# Create a tsc_wrapped compiler rule to use in the ts_library
-# compiler attribute when using user-managed dependencies
-nodejs_binary(
- name = "@bazel/typescript/tsc_wrapped",
- entry_point = "@npm//:node_modules/@bazel/typescript/internal/tsc_wrapped/tsc_wrapped.js",
- # Point bazel to your node_modules to find the entry point
- data = ["//:node_modules"],
-)
-Note that the tsconfig.json file used for compilation should be the same one
+your editor references, or extends from it, to keep consistent settings for the TypeScript compiler.
See the dependencies docs for more information on managing npm dependencies with Bazel.
+Anything you do with TypeScript is possible with ts_project, including json imports, type-checking only,
+transpile only, outdir, rootdir, and so on.
+See many examples in our test cases:
+https://github.com/bazelbuild/rules_nodejs/tree/stable/packages/typescript/test/ts_project
An example use case is needing to increase the NodeJS heap size used for compilations.
+USAGE
-Similar to above, you declare your own binary for running tsc_wrapped, e.g.:
+ts_config(name, deps, src) +-
nodejs_binary(
- name = "tsc_wrapped_bin",
- entry_point = "@npm//:node_modules/@bazel/typescript/internal/tsc_wrapped/tsc_wrapped.js",
- templated_args = [
- "--node_options=--max-old-space-size=2048",
- ],
- data = [
- "@npm//protobufjs",
- "@npm//source-map-support",
- "@npm//tsutils",
- "@npm//typescript",
- "@npm//@bazel/typescript",
- ],
-)
-Allows a tsconfig.json file to extend another file.
-then refer to that target in the compiler attribute of your ts_library rule.
Normally, you just give a single tsconfig.json file as the tsconfig attribute
+of a ts_library or ts_project rule. However, if your tsconfig.json uses the extends
+feature from TypeScript, then the Bazel implementation needs to know about that
+extended configuration file as well, to pass them both to the TypeScript compiler.
Note that nodejs_binary targets generated by npm_install/yarn_install can include data dependencies
-on packages which aren’t declared as dependencies. For example, if you use tsickle to generate Closure Compiler-compatible JS, then it needs to be a data dependency of tsc_wrapped so that it can be loaded at runtime.
ATTRIBUTES
-ts_library(Name, mandatory): A unique name for this target.
-The ts_library rule invokes the TypeScript compiler on one compilation unit,
-or “library” (generally one directory of source files).
Create a BUILD file next to your sources:
(List of labels): Additional tsconfig.json files referenced via extends
-package(default_visibility=["//visibility:public"])
-load("@npm//@bazel/typescript:index.bzl", "ts_library")
+Defaults to []
-ts_library(
- name = "my_code",
- srcs = glob(["*.ts"]),
- deps = ["//path/to/other:library"],
-)
-If your ts_library target has npm dependencies you can specify these
-with fine grained npm dependency targets created by the yarn_install or
-npm_install rules:
(Label, mandatory): The tsconfig.json file passed to the TypeScript compiler
-ts_library(
- name = "my_code",
- srcs = glob(["*.ts"]),
- deps = [
- "@npm//@types/node",
- "@npm//@types/foo",
- "@npm//foo",
- "//path/to/other:library",
- ],
-)
-You can also use the @npm//@types target which will include all
-packages in the @types scope as dependencies.
USAGE
-If you are using user-managed npm dependencies, you can pass your //:node_modules
-target defined in your root BUILD.bazel file to the deps of ts_library.
-You’ll also need to override the compiler attribute if you do this
-as the Bazel-managed deps and user-managed cannot be used together
-in the same rule.
+ts_library(name, angular_assets, compiler, data, deps, devmode_module, devmode_target, + expected_diagnostics, generate_externs, internal_testing_type_check_dependencies, + link_workspace_root, module_name, module_root, prodmode_module, prodmode_target, runtime, + runtime_deps, srcs, supports_workers, tsconfig, tsickle_typed, use_angular_plugin) +-
ts_library(
- name = "my_code",
- srcs = glob(["*.ts"]),
- deps = [
- "//path/to/other:library",
- "//:node_modules",
- ],
- compiler = "//:@bazel/typescript/tsc_wrapped",
-)
-type-check and compile a set of TypeScript sources to JavaScript.
-To build a ts_library target run:
It produces declarations files (.d.ts) which are used for compiling downstream
+TypeScript targets and JavaScript for the browser and Closure compiler.
bazel build //path/to/package:target
By default, ts_library uses the tsconfig.json file in the workspace root
+directory. See the notes about the tsconfig attribute below.
The resulting .d.ts file paths will be printed. Additionally, the .js
-outputs from TypeScript will be written to disk, next to the .d.ts files 1.
Note that the tsconfig.json file used for compilation should be the same one
-your editor references, to keep consistent settings for the TypeScript compiler.
-By default, ts_library uses the tsconfig.json file in the workspace root
-directory. See the notes about the tsconfig attribute in the ts_library API docs.
-+1 The -declarationDir -compiler option will be silently overwritten if present.
-
ts_library is typically served by the concatjs_devserver rule, documented in the @bazel/concatjs package.
This is now documented in the @bazel/concatjs package.
Bazel’s TypeScript compiler has your workspace path mapped, so you can import -from an absolute path starting from your workspace.
- -/WORKSPACE:
workspace(name = "myworkspace")
-/some/long/path/to/deeply/nested/subdirectory.ts:
import {thing} from 'myworkspace/place';
-will import from /place.ts.
Since this is an extension to the vanilla TypeScript compiler, editors which use the TypeScript language services to provide code completion and inline type checking will not be able to resolve the modules. In the above example, adding
-"paths": {
- "myworkspace/*": ["*"]
-}
-to tsconfig.json will fix the imports for the common case of using absolute paths.
-See path mapping for more details on the paths syntax.
Similarly, you can use path mapping to teach the editor how to resolve imports
-from ts_library rules which set the module_name attribute.
If you’d like a “watch mode”, try ibazel.
- -At some point, we plan to release a tool similar to gazelle to generate the
-BUILD files from your source code.
USAGE
- --ts_config(name, deps, src) -- -
Allows a tsconfig.json file to extend another file.
- -Normally, you just give a single tsconfig.json file as the tsconfig attribute
-of a ts_library or ts_project rule. However, if your tsconfig.json uses the extends
-feature from TypeScript, then the Bazel implementation needs to know about that
-extended configuration file as well, to pass them both to the TypeScript compiler.
ATTRIBUTES
- -(Name, mandatory): A unique name for this target.
- -(List of labels): Additional tsconfig.json files referenced via extends
- -Defaults to []
(Label, mandatory): The tsconfig.json file passed to the TypeScript compiler
- -USAGE
- --ts_library(name, angular_assets, compiler, data, deps, devmode_module, devmode_target, - expected_diagnostics, generate_externs, internal_testing_type_check_dependencies, - link_workspace_root, module_name, module_root, prodmode_module, prodmode_target, runtime, - runtime_deps, srcs, supports_workers, tsconfig, tsickle_typed, use_angular_plugin) -- -
ts_library type-checks and compiles a set of TypeScript sources to JavaScript.
It produces declarations files (.d.ts) which are used for compiling downstream
-TypeScript targets and JavaScript for the browser and Closure compiler.
ATTRIBUTES
You can also use a custom compiler to increase the NodeJS heap size used for compilations.
+ +To do this, declare your own binary for running tsc_wrapped, e.g.:
nodejs_binary(
+ name = "tsc_wrapped_bin",
+ entry_point = "@npm//:node_modules/@bazel/typescript/internal/tsc_wrapped/tsc_wrapped.js",
+ templated_args = [
+ "--node_options=--max-old-space-size=2048",
+ ],
+ data = [
+ "@npm//protobufjs",
+ "@npm//source-map-support",
+ "@npm//tsutils",
+ "@npm//typescript",
+ "@npm//@bazel/typescript",
+ ],
+)
+then refer to that target in the compiler attribute.
Note that nodejs_binary targets generated by npm_install/yarn_install can include data dependencies
+on packages which aren’t declared as dependencies.
+For example, if you use tsickle to generate Closure Compiler-compatible JS,
+then it needs to be a data dependency of tsc_wrapped so that it can be loaded at runtime.
Defaults to @build_bazel_rules_typescript//internal:tsc_wrapped_bin
tsconfig.json file in the workspace root directoryalias(name="tsconfig.json", actual="//path/to:tsconfig-something.json")alias(name="tsconfig.json", actual="//path/to:tsconfig-something.json")
+ and also make the tsconfig.json file visible to other Bazel packages:
+ exports_files(["tsconfig.json"], visibility = ["//visibility:public"])
tsconfig attribute to all ts_library targetsDefaults to False
USAGE
@@ -1030,25 +937,20 @@The pattern we use most commonly is to add a postinstall hook to your package.json that patches files after they’ve been fetched from npm.
See /tools/postinstall-patches.js in the Angular repo for an example.
The pattern we use most commonly is to use patch-package. To store your local changes to the npm packages follow the steps:
+ +npm i -D patch-packagenode_modulesnpx patch-package <npm package>. This will store the patch in the patches/ directory in the root of the workspace"postinstall": "patch-package" to the package.json in your repo to apply the patches when building dependencies (aka at npm install)esbuild(name, args, define, deps, entry_point, external, format, link_workspace_root, max_threads, - minify, output, output_dir, output_map, platform, sources_content, srcs, target, tool) + minify, output, output_dir, output_map, platform, sourcemap, sources_content, srcs, target, + tool)
Runs the esbuild bundler under Bazel
@@ -403,6 +404,14 @@Defaults to "browser"
(String): Defines where sourcemaps are output and how they are included in the bundle. By default, a separate .js.map file is generated and referenced by the bundle. If ‘external’, a separate .js.map file is generated but not referenced by the bundle. If ‘inline’, a sourcemap is generated and its contents are inlined into the bundle (and no external sourcemap file is created). If ‘both’, a sourcemap is inlined and a .js.map file is created.
See https://esbuild.github.io/api/#sourcemap for more details
+ +Defaults to ""
(Boolean): If False, omits the sourcesContent field from generated source maps
esbuild(name, args, define, deps, entry_point, external, format, link_workspace_root, max_threads, - minify, output, output_dir, output_map, platform, sources_content, srcs, target, tool) + minify, output, output_dir, output_map, platform, sourcemap, sources_content, srcs, target, + tool)Runs the esbuild bundler under Bazel @@ -249,6 +250,14 @@ See https://esbuild.github.io/api/#platform for more details Defaults to `"browser"` +
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "build_bazel_rules_nodejs",
- sha256 = "bfacf15161d96a6a39510e7b3d3b522cf61cb8b82a31e79400a84c5abcab5347",
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.1/rules_nodejs-3.2.1.tar.gz"],
+ sha256 = "55a25a762fcf9c9b88ab54436581e671bc9f4f523cb5a1bd32459ebec7be68a8",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.2/rules_nodejs-3.2.2.tar.gz"],
)
load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories")
diff --git a/docs/install.md b/docs/install.md
index e5885d33d3..368d30f289 100644
--- a/docs/install.md
+++ b/docs/install.md
@@ -31,8 +31,8 @@ containing:
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "build_bazel_rules_nodejs",
- sha256 = "55a25a762fcf9c9b88ab54436581e671bc9f4f523cb5a1bd32459ebec7be68a8",
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.2/rules_nodejs-3.2.2.tar.gz"],
+ sha256 = "dd7ea7efda7655c218ca707f55c3e1b9c68055a70c31a98f264b3445bc8f4cb1",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.3/rules_nodejs-3.2.3.tar.gz"],
)
load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories")
diff --git a/e2e/bazel_managed_deps/WORKSPACE b/e2e/bazel_managed_deps/WORKSPACE
index 22c51ecb02..388636b875 100644
--- a/e2e/bazel_managed_deps/WORKSPACE
+++ b/e2e/bazel_managed_deps/WORKSPACE
@@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "build_bazel_rules_nodejs",
- sha256 = "55a25a762fcf9c9b88ab54436581e671bc9f4f523cb5a1bd32459ebec7be68a8",
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.2/rules_nodejs-3.2.2.tar.gz"],
+ sha256 = "dd7ea7efda7655c218ca707f55c3e1b9c68055a70c31a98f264b3445bc8f4cb1",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.3/rules_nodejs-3.2.3.tar.gz"],
)
load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install")
diff --git a/e2e/bazel_managed_deps/package.json b/e2e/bazel_managed_deps/package.json
index d08c582910..8c68686517 100644
--- a/e2e/bazel_managed_deps/package.json
+++ b/e2e/bazel_managed_deps/package.json
@@ -1,7 +1,7 @@
{
"description": "runtime dependencies for bazel_managed_deps example",
"devDependencies": {
- "@bazel/jasmine": "^3.2.1",
+ "@bazel/jasmine": "^3.2.2",
"jasmine": "^3.5.0",
"typescript": "^3.0.1"
},
diff --git a/e2e/bazel_managed_deps/yarn.lock b/e2e/bazel_managed_deps/yarn.lock
index 970ad7fe78..9e6e59e7bd 100644
--- a/e2e/bazel_managed_deps/yarn.lock
+++ b/e2e/bazel_managed_deps/yarn.lock
@@ -2,10 +2,10 @@
# yarn lockfile v1
-"@bazel/jasmine@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-3.2.1.tgz#3a29b4a04222de2add06a57d771b9c2ecc97af80"
- integrity sha512-VPz4AuK0DTk8kyiUzWrh36zGyaX1Yvq1vTNvc0TM8cXsQPRNsQbFTmQsy/y4quLvdJfk8P1qP9N95gqqkz9M9Q==
+"@bazel/jasmine@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-3.2.2.tgz#e4c088d8267f83c4c718ac46e5923f549d47fef6"
+ integrity sha512-fSz0fRdk9IgyN/9Ietzasdp2QAhMGz/E4LKdiu+WyZrPjwd06zQ4ypb3DzzT1g+M/7NXJqV8X6ahTGQMrm/Rpw==
dependencies:
c8 "~7.5.0"
jasmine-reporters "~2.3.2"
diff --git a/e2e/concatjs_devserver/WORKSPACE b/e2e/concatjs_devserver/WORKSPACE
index 0fe03a075e..c271b774eb 100644
--- a/e2e/concatjs_devserver/WORKSPACE
+++ b/e2e/concatjs_devserver/WORKSPACE
@@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "build_bazel_rules_nodejs",
- sha256 = "55a25a762fcf9c9b88ab54436581e671bc9f4f523cb5a1bd32459ebec7be68a8",
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.2/rules_nodejs-3.2.2.tar.gz"],
+ sha256 = "dd7ea7efda7655c218ca707f55c3e1b9c68055a70c31a98f264b3445bc8f4cb1",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.3/rules_nodejs-3.2.3.tar.gz"],
)
load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install")
diff --git a/e2e/concatjs_devserver/package.json b/e2e/concatjs_devserver/package.json
index 62b5cce537..c20a4d7fbe 100644
--- a/e2e/concatjs_devserver/package.json
+++ b/e2e/concatjs_devserver/package.json
@@ -1,8 +1,8 @@
{
"dependencies": {
- "@bazel/concatjs": "^3.2.1",
- "@bazel/protractor": "^3.2.1",
- "@bazel/typescript": "^3.2.1",
+ "@bazel/concatjs": "^3.2.2",
+ "@bazel/protractor": "^3.2.2",
+ "@bazel/typescript": "^3.2.2",
"@types/jasmine": "2.8.2",
"@types/node": "7.0.18",
"date-fns": "1.30.1",
diff --git a/e2e/concatjs_devserver/yarn.lock b/e2e/concatjs_devserver/yarn.lock
index 0154fdfb17..df763645e5 100644
--- a/e2e/concatjs_devserver/yarn.lock
+++ b/e2e/concatjs_devserver/yarn.lock
@@ -2,24 +2,24 @@
# yarn lockfile v1
-"@bazel/concatjs@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/concatjs/-/concatjs-3.2.1.tgz#638210bf31011b1617e373624c61d9a10bd7f842"
- integrity sha512-1vYAI1Ugb5PJC/zIetdmx5jHxluhUGuUI9yJcrZYZ24hmSMg+lkcrPlkhwbjtvF26JIDf2g5s5/woDcDrydrjg==
+"@bazel/concatjs@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/concatjs/-/concatjs-3.2.2.tgz#a5b0f15e3bd074c06a51cb25ef64b7e1866ba760"
+ integrity sha512-k4JrIF1q9Oe0j90yuduxJO78SUNlYRBEzQCQS+aNvmm5YcrSJ7dZ5H0pjZ2W41MRT8L9S0Ei6TSMERkAcjD1Jw==
dependencies:
protobufjs "6.8.8"
source-map-support "0.5.9"
tsutils "2.27.2"
-"@bazel/protractor@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/protractor/-/protractor-3.2.1.tgz#872340d6287043496242998640dca3f568a9f31b"
- integrity sha512-4jac5lCz2DeOWQ5P8KUZHUf7YEmJwBk7qllSDfHN3k0cUqWthZCvnclU8oRkLJ+LL9zdNkX1MpB4iLRDYUTl0Q==
+"@bazel/protractor@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/protractor/-/protractor-3.2.2.tgz#ec82bdf580e9ad3773f04886a875e5e4f6d0410a"
+ integrity sha512-eZyuPoad89uNF2ofkfF2j6cbJgZaV2FKi5PhA5VvCzrywnAQ9iKQUv3D3B6T9Vf5dgpyR52iJZKmF2KGFPjNhQ==
-"@bazel/typescript@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.2.1.tgz#564849e2f05387612d13ef64304b7a7582bd107a"
- integrity sha512-2KgMqKcbqL89WWWVC2iwTCS0tMWmQ4LpQgFhaF3Lp56Edl0nv/fy0TOu+waw2Qs2rTBbTVKhk5/9DRiqJmOd2g==
+"@bazel/typescript@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.2.2.tgz#b53ee35dee68952abd711a2d472485748c7521c1"
+ integrity sha512-fTPtX3kZAQ50fWJaBvHtHf4w0fqMCrOhK9A8c5GgbqRrIWF8GG/+Tbt4OPwsG0N3+JDYOsHATacJI0qkjIeG1g==
dependencies:
protobufjs "6.8.8"
semver "5.6.0"
diff --git a/e2e/coverage/WORKSPACE b/e2e/coverage/WORKSPACE
index 35eb263bbb..e1a8c314b9 100644
--- a/e2e/coverage/WORKSPACE
+++ b/e2e/coverage/WORKSPACE
@@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "build_bazel_rules_nodejs",
- sha256 = "55a25a762fcf9c9b88ab54436581e671bc9f4f523cb5a1bd32459ebec7be68a8",
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.2/rules_nodejs-3.2.2.tar.gz"],
+ sha256 = "dd7ea7efda7655c218ca707f55c3e1b9c68055a70c31a98f264b3445bc8f4cb1",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.3/rules_nodejs-3.2.3.tar.gz"],
)
load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install")
diff --git a/e2e/coverage/package.json b/e2e/coverage/package.json
index d8b3f9c8e8..d53d4070dd 100644
--- a/e2e/coverage/package.json
+++ b/e2e/coverage/package.json
@@ -1,8 +1,8 @@
{
"name": "e2e-coverage",
"dependencies": {
- "@bazel/jasmine": "^3.2.1",
- "@bazel/typescript": "^3.2.1",
+ "@bazel/jasmine": "^3.2.2",
+ "@bazel/typescript": "^3.2.2",
"jasmine": "3.6.1",
"typescript": "3.9.7"
},
diff --git a/e2e/coverage/yarn.lock b/e2e/coverage/yarn.lock
index 06bb5ec739..53f8d03969 100644
--- a/e2e/coverage/yarn.lock
+++ b/e2e/coverage/yarn.lock
@@ -2,18 +2,18 @@
# yarn lockfile v1
-"@bazel/jasmine@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-3.2.1.tgz#3a29b4a04222de2add06a57d771b9c2ecc97af80"
- integrity sha512-VPz4AuK0DTk8kyiUzWrh36zGyaX1Yvq1vTNvc0TM8cXsQPRNsQbFTmQsy/y4quLvdJfk8P1qP9N95gqqkz9M9Q==
+"@bazel/jasmine@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-3.2.2.tgz#e4c088d8267f83c4c718ac46e5923f549d47fef6"
+ integrity sha512-fSz0fRdk9IgyN/9Ietzasdp2QAhMGz/E4LKdiu+WyZrPjwd06zQ4ypb3DzzT1g+M/7NXJqV8X6ahTGQMrm/Rpw==
dependencies:
c8 "~7.5.0"
jasmine-reporters "~2.3.2"
-"@bazel/typescript@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.2.1.tgz#564849e2f05387612d13ef64304b7a7582bd107a"
- integrity sha512-2KgMqKcbqL89WWWVC2iwTCS0tMWmQ4LpQgFhaF3Lp56Edl0nv/fy0TOu+waw2Qs2rTBbTVKhk5/9DRiqJmOd2g==
+"@bazel/typescript@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.2.2.tgz#b53ee35dee68952abd711a2d472485748c7521c1"
+ integrity sha512-fTPtX3kZAQ50fWJaBvHtHf4w0fqMCrOhK9A8c5GgbqRrIWF8GG/+Tbt4OPwsG0N3+JDYOsHATacJI0qkjIeG1g==
dependencies:
protobufjs "6.8.8"
semver "5.6.0"
diff --git a/e2e/fine_grained_symlinks/WORKSPACE b/e2e/fine_grained_symlinks/WORKSPACE
index be848f23c4..2caa7dc82a 100644
--- a/e2e/fine_grained_symlinks/WORKSPACE
+++ b/e2e/fine_grained_symlinks/WORKSPACE
@@ -7,8 +7,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "build_bazel_rules_nodejs",
- sha256 = "55a25a762fcf9c9b88ab54436581e671bc9f4f523cb5a1bd32459ebec7be68a8",
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.2/rules_nodejs-3.2.2.tar.gz"],
+ sha256 = "dd7ea7efda7655c218ca707f55c3e1b9c68055a70c31a98f264b3445bc8f4cb1",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.3/rules_nodejs-3.2.3.tar.gz"],
)
load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories", "yarn_install")
diff --git a/e2e/jasmine/WORKSPACE b/e2e/jasmine/WORKSPACE
index c61e9c6757..4730b3eacb 100644
--- a/e2e/jasmine/WORKSPACE
+++ b/e2e/jasmine/WORKSPACE
@@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "build_bazel_rules_nodejs",
- sha256 = "55a25a762fcf9c9b88ab54436581e671bc9f4f523cb5a1bd32459ebec7be68a8",
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.2/rules_nodejs-3.2.2.tar.gz"],
+ sha256 = "dd7ea7efda7655c218ca707f55c3e1b9c68055a70c31a98f264b3445bc8f4cb1",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.3/rules_nodejs-3.2.3.tar.gz"],
)
load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install")
diff --git a/e2e/jasmine/package.json b/e2e/jasmine/package.json
index 67eec143b3..10339f6428 100644
--- a/e2e/jasmine/package.json
+++ b/e2e/jasmine/package.json
@@ -1,7 +1,7 @@
{
"name": "e2e-jasmine",
"dependencies": {
- "@bazel/jasmine": "^3.2.1",
+ "@bazel/jasmine": "^3.2.2",
"zone.js": "0.8.29"
},
"//": "Include an incompatible jasmine as a devDependency to verify that jasmine_node_test works regardless",
diff --git a/e2e/jasmine/yarn.lock b/e2e/jasmine/yarn.lock
index b0f12a6d57..0b38d6d047 100644
--- a/e2e/jasmine/yarn.lock
+++ b/e2e/jasmine/yarn.lock
@@ -2,10 +2,10 @@
# yarn lockfile v1
-"@bazel/jasmine@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-3.2.1.tgz#3a29b4a04222de2add06a57d771b9c2ecc97af80"
- integrity sha512-VPz4AuK0DTk8kyiUzWrh36zGyaX1Yvq1vTNvc0TM8cXsQPRNsQbFTmQsy/y4quLvdJfk8P1qP9N95gqqkz9M9Q==
+"@bazel/jasmine@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-3.2.2.tgz#e4c088d8267f83c4c718ac46e5923f549d47fef6"
+ integrity sha512-fSz0fRdk9IgyN/9Ietzasdp2QAhMGz/E4LKdiu+WyZrPjwd06zQ4ypb3DzzT1g+M/7NXJqV8X6ahTGQMrm/Rpw==
dependencies:
c8 "~7.5.0"
jasmine-reporters "~2.3.2"
diff --git a/e2e/node_loader_no_preserve_symlinks/WORKSPACE b/e2e/node_loader_no_preserve_symlinks/WORKSPACE
index 5312704582..7917cac996 100644
--- a/e2e/node_loader_no_preserve_symlinks/WORKSPACE
+++ b/e2e/node_loader_no_preserve_symlinks/WORKSPACE
@@ -9,8 +9,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "build_bazel_rules_nodejs",
- sha256 = "55a25a762fcf9c9b88ab54436581e671bc9f4f523cb5a1bd32459ebec7be68a8",
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.2/rules_nodejs-3.2.2.tar.gz"],
+ sha256 = "dd7ea7efda7655c218ca707f55c3e1b9c68055a70c31a98f264b3445bc8f4cb1",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.3/rules_nodejs-3.2.3.tar.gz"],
)
load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories", "yarn_install")
diff --git a/e2e/node_loader_preserve_symlinks/WORKSPACE b/e2e/node_loader_preserve_symlinks/WORKSPACE
index 7e7f9b51ba..d5553938ba 100644
--- a/e2e/node_loader_preserve_symlinks/WORKSPACE
+++ b/e2e/node_loader_preserve_symlinks/WORKSPACE
@@ -9,8 +9,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "build_bazel_rules_nodejs",
- sha256 = "55a25a762fcf9c9b88ab54436581e671bc9f4f523cb5a1bd32459ebec7be68a8",
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.2/rules_nodejs-3.2.2.tar.gz"],
+ sha256 = "dd7ea7efda7655c218ca707f55c3e1b9c68055a70c31a98f264b3445bc8f4cb1",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.3/rules_nodejs-3.2.3.tar.gz"],
)
load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install")
diff --git a/e2e/nodejs_image/WORKSPACE b/e2e/nodejs_image/WORKSPACE
index e3eff1e846..469e24e9ab 100644
--- a/e2e/nodejs_image/WORKSPACE
+++ b/e2e/nodejs_image/WORKSPACE
@@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "build_bazel_rules_nodejs",
- sha256 = "55a25a762fcf9c9b88ab54436581e671bc9f4f523cb5a1bd32459ebec7be68a8",
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.2/rules_nodejs-3.2.2.tar.gz"],
+ sha256 = "dd7ea7efda7655c218ca707f55c3e1b9c68055a70c31a98f264b3445bc8f4cb1",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.3/rules_nodejs-3.2.3.tar.gz"],
)
load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install")
diff --git a/e2e/packages/WORKSPACE b/e2e/packages/WORKSPACE
index a4775166ad..a2476fb9b7 100644
--- a/e2e/packages/WORKSPACE
+++ b/e2e/packages/WORKSPACE
@@ -4,8 +4,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "build_bazel_rules_nodejs",
- sha256 = "55a25a762fcf9c9b88ab54436581e671bc9f4f523cb5a1bd32459ebec7be68a8",
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.2/rules_nodejs-3.2.2.tar.gz"],
+ sha256 = "dd7ea7efda7655c218ca707f55c3e1b9c68055a70c31a98f264b3445bc8f4cb1",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.3/rules_nodejs-3.2.3.tar.gz"],
)
load("@build_bazel_rules_nodejs//:index.bzl", "check_rules_nodejs_version", "node_repositories", "npm_install", "yarn_install")
diff --git a/e2e/symlinked_node_modules_npm/.bazelversion b/e2e/symlinked_node_modules_npm/.bazelversion
deleted file mode 120000
index 96cf94962b..0000000000
--- a/e2e/symlinked_node_modules_npm/.bazelversion
+++ /dev/null
@@ -1 +0,0 @@
-../../.bazelversion
\ No newline at end of file
diff --git a/e2e/symlinked_node_modules_yarn/.bazelversion b/e2e/symlinked_node_modules_yarn/.bazelversion
deleted file mode 120000
index 96cf94962b..0000000000
--- a/e2e/symlinked_node_modules_yarn/.bazelversion
+++ /dev/null
@@ -1 +0,0 @@
-../../.bazelversion
\ No newline at end of file
diff --git a/e2e/typescript/WORKSPACE b/e2e/typescript/WORKSPACE
index 8991f41fbc..1a5177fc01 100644
--- a/e2e/typescript/WORKSPACE
+++ b/e2e/typescript/WORKSPACE
@@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "build_bazel_rules_nodejs",
- sha256 = "55a25a762fcf9c9b88ab54436581e671bc9f4f523cb5a1bd32459ebec7be68a8",
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.2/rules_nodejs-3.2.2.tar.gz"],
+ sha256 = "dd7ea7efda7655c218ca707f55c3e1b9c68055a70c31a98f264b3445bc8f4cb1",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.3/rules_nodejs-3.2.3.tar.gz"],
)
load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install")
diff --git a/e2e/typescript/package.json b/e2e/typescript/package.json
index 2cfcf26534..d57dedd0b9 100644
--- a/e2e/typescript/package.json
+++ b/e2e/typescript/package.json
@@ -1,7 +1,7 @@
{
"dependencies": {
- "@bazel/jasmine": "^3.2.1",
- "@bazel/typescript": "^3.2.1",
+ "@bazel/jasmine": "^3.2.2",
+ "@bazel/typescript": "^3.2.2",
"@types/jasmine": "2.8.2",
"@types/node": "7.0.18",
"date-fns": "^1.30.1",
diff --git a/e2e/typescript/yarn.lock b/e2e/typescript/yarn.lock
index 59e82dbabe..53fc200ac5 100644
--- a/e2e/typescript/yarn.lock
+++ b/e2e/typescript/yarn.lock
@@ -2,18 +2,18 @@
# yarn lockfile v1
-"@bazel/jasmine@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-3.2.1.tgz#3a29b4a04222de2add06a57d771b9c2ecc97af80"
- integrity sha512-VPz4AuK0DTk8kyiUzWrh36zGyaX1Yvq1vTNvc0TM8cXsQPRNsQbFTmQsy/y4quLvdJfk8P1qP9N95gqqkz9M9Q==
+"@bazel/jasmine@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-3.2.2.tgz#e4c088d8267f83c4c718ac46e5923f549d47fef6"
+ integrity sha512-fSz0fRdk9IgyN/9Ietzasdp2QAhMGz/E4LKdiu+WyZrPjwd06zQ4ypb3DzzT1g+M/7NXJqV8X6ahTGQMrm/Rpw==
dependencies:
c8 "~7.5.0"
jasmine-reporters "~2.3.2"
-"@bazel/typescript@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.2.1.tgz#564849e2f05387612d13ef64304b7a7582bd107a"
- integrity sha512-2KgMqKcbqL89WWWVC2iwTCS0tMWmQ4LpQgFhaF3Lp56Edl0nv/fy0TOu+waw2Qs2rTBbTVKhk5/9DRiqJmOd2g==
+"@bazel/typescript@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.2.2.tgz#b53ee35dee68952abd711a2d472485748c7521c1"
+ integrity sha512-fTPtX3kZAQ50fWJaBvHtHf4w0fqMCrOhK9A8c5GgbqRrIWF8GG/+Tbt4OPwsG0N3+JDYOsHATacJI0qkjIeG1g==
dependencies:
protobufjs "6.8.8"
semver "5.6.0"
diff --git a/e2e/webapp/WORKSPACE b/e2e/webapp/WORKSPACE
index b5d5f43e7c..91d7277cd1 100644
--- a/e2e/webapp/WORKSPACE
+++ b/e2e/webapp/WORKSPACE
@@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "build_bazel_rules_nodejs",
- sha256 = "55a25a762fcf9c9b88ab54436581e671bc9f4f523cb5a1bd32459ebec7be68a8",
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.2/rules_nodejs-3.2.2.tar.gz"],
+ sha256 = "dd7ea7efda7655c218ca707f55c3e1b9c68055a70c31a98f264b3445bc8f4cb1",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.3/rules_nodejs-3.2.3.tar.gz"],
)
load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install")
diff --git a/e2e/webapp/package.json b/e2e/webapp/package.json
index e183693af6..d94a276017 100644
--- a/e2e/webapp/package.json
+++ b/e2e/webapp/package.json
@@ -2,8 +2,8 @@
"name": "e2e-terser",
"private": true,
"devDependencies": {
- "@bazel/rollup": "^3.2.1",
- "@bazel/terser": "^3.2.1",
+ "@bazel/rollup": "^3.2.2",
+ "@bazel/terser": "^3.2.2",
"rollup": "2.3.0",
"terser": "4.3.1"
},
diff --git a/e2e/webapp/yarn.lock b/e2e/webapp/yarn.lock
index 70e9d6f77c..b477e8493f 100644
--- a/e2e/webapp/yarn.lock
+++ b/e2e/webapp/yarn.lock
@@ -2,15 +2,15 @@
# yarn lockfile v1
-"@bazel/rollup@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/rollup/-/rollup-3.2.1.tgz#c632d54298cf980fc0994a95349d938f8d0ee27c"
- integrity sha512-+vPpi/pjCmQP3TlsDfmZZMDCBDCq2aHFXRxVx78t+1Vjz8ZT1JFx6J65V9YEPrCUowjBhkgrO5dk3IXeOvwXJA==
-
-"@bazel/terser@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/terser/-/terser-3.2.1.tgz#0480cc6b00a7bf1d8c8763aa1eff267352768bf1"
- integrity sha512-aV20kqoYnpEEfx2l4ipFOSb5JgRmPVAvicOQBQ6eMqD7SGRrDDNVtjhemo11/RCJiZuUYNxoCo+itLBw4kNaPg==
+"@bazel/rollup@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/rollup/-/rollup-3.2.2.tgz#cf20aeb533c8464b90418cfd42e72d9f6c2c6f8f"
+ integrity sha512-At1YvE6connH6EHatxDE6I8hrk/sy6DOInHHrvr6q32AHMhTKiltC9qDexD2kXwJXD1n1Ioy3y/sA9fesjL6Ng==
+
+"@bazel/terser@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/terser/-/terser-3.2.2.tgz#90cd14f1c9d1c1784730adab5208dafa2342260a"
+ integrity sha512-RI5XBDQN72zikhIZXFrbVsWWdJ+B4W0YcQndahm87t+nu26hXcmpNfSJuMjVmVrFCEB4G/z7CxgHINQCGjRgxg==
buffer-from@^1.0.0:
version "1.1.1"
diff --git a/examples/BUILD.bazel b/examples/BUILD.bazel
index c8d8f417f3..bfc6c2db94 100644
--- a/examples/BUILD.bazel
+++ b/examples/BUILD.bazel
@@ -231,7 +231,7 @@ example_integration_test(
example_integration_test(
name = "examples_vue",
npm_packages = {},
-)\
+)
example_integration_test(
name = "examples_worker",
diff --git a/examples/angular/WORKSPACE b/examples/angular/WORKSPACE
index 0c3b47f26b..9ea29d7d35 100644
--- a/examples/angular/WORKSPACE
+++ b/examples/angular/WORKSPACE
@@ -29,8 +29,8 @@ bazel_skylib_workspace()
# Fetch rules_nodejs so we can install our npm dependencies
http_archive(
name = "build_bazel_rules_nodejs",
- sha256 = "55a25a762fcf9c9b88ab54436581e671bc9f4f523cb5a1bd32459ebec7be68a8",
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.2/rules_nodejs-3.2.2.tar.gz"],
+ sha256 = "dd7ea7efda7655c218ca707f55c3e1b9c68055a70c31a98f264b3445bc8f4cb1",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.3/rules_nodejs-3.2.3.tar.gz"],
)
# Fetch sass rules for compiling sass files
@@ -109,9 +109,9 @@ http_archive(
http_archive(
name = "io_bazel_rules_docker",
- sha256 = "4521794f0fba2e20f3bf15846ab5e01d5332e587e9ce81629c7f96c793bb7036",
- strip_prefix = "rules_docker-0.14.4",
- urls = ["https://github.com/bazelbuild/rules_docker/releases/download/v0.14.4/rules_docker-v0.14.4.tar.gz"],
+ sha256 = "95d39fd84ff4474babaf190450ee034d958202043e366b9fc38f438c9e6c3334",
+ strip_prefix = "rules_docker-0.16.0",
+ urls = ["https://github.com/bazelbuild/rules_docker/releases/download/v0.16.0/rules_docker-v0.16.0.tar.gz"],
)
load("@io_bazel_rules_docker//repositories:repositories.bzl", container_repositories = "repositories")
@@ -122,10 +122,6 @@ load("@io_bazel_rules_docker//repositories:deps.bzl", container_deps = "deps")
container_deps()
-load("@io_bazel_rules_docker//repositories:pip_repositories.bzl", "pip_deps")
-
-pip_deps()
-
load("@io_bazel_rules_docker//nodejs:image.bzl", nodejs_image_repos = "repositories")
nodejs_image_repos()
diff --git a/examples/angular/package.json b/examples/angular/package.json
index c65c8d6511..1dc045fcc4 100644
--- a/examples/angular/package.json
+++ b/examples/angular/package.json
@@ -36,15 +36,15 @@
"@babel/cli": "^7.6.0",
"@babel/core": "^7.6.0",
"@babel/preset-env": "^7.6.0",
- "@bazel/angular": "^3.2.1",
+ "@bazel/angular": "^3.2.2",
"@bazel/benchmark-runner": "^0.1.0",
- "@bazel/buildifier": "^4.0.0",
- "@bazel/concatjs": "^3.2.1",
+ "@bazel/buildifier": "^4.0.1",
+ "@bazel/concatjs": "^3.2.2",
"@bazel/ibazel": "^0.14.0",
- "@bazel/protractor": "^3.2.1",
- "@bazel/rollup": "^3.2.1",
- "@bazel/terser": "^3.2.1",
- "@bazel/typescript": "^3.2.1",
+ "@bazel/protractor": "^3.2.2",
+ "@bazel/rollup": "^3.2.2",
+ "@bazel/terser": "^3.2.2",
+ "@bazel/typescript": "^3.2.2",
"@rollup/plugin-commonjs": "^14.0.0",
"@rollup/plugin-node-resolve": "^8.4.0",
"@types/jasmine": "3.4.0",
diff --git a/examples/angular/yarn.lock b/examples/angular/yarn.lock
index 3e23ce6902..fe54510054 100644
--- a/examples/angular/yarn.lock
+++ b/examples/angular/yarn.lock
@@ -834,10 +834,10 @@
lodash "^4.17.13"
to-fast-properties "^2.0.0"
-"@bazel/angular@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/angular/-/angular-3.2.1.tgz#8e34ce74d4d5900d986ce45fb8aa935700826225"
- integrity sha512-E8/0ie0jGXsOZFNU5L6dzAj+7xzLJO2EZrMlH5lQwGCX+WYoLswAAK3GA/shgBtZMn9jNP85nYNgy4PzyvL27Q==
+"@bazel/angular@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/angular/-/angular-3.2.2.tgz#59203f5559e2ba8a699e5a612739d86353d9721e"
+ integrity sha512-+oqrmiQMQ7TVaCigGPX5Pt20A+u7AbBdgZ7IuryBqXZuMNRgxv74LVWn3XRGNGOPE70sej4AO1YIwdWjgTwgKA==
dependencies:
"@angular-devkit/architect" "^0.901.7"
"@bazel/bazelisk" "^1.4.0"
@@ -858,15 +858,15 @@
puppeteer "^0.13.0"
tempy "^0.2.1"
-"@bazel/buildifier@^4.0.0":
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/@bazel/buildifier/-/buildifier-4.0.0.tgz#c99fb21295c7e2858fa176c2b950c589217ae8ac"
- integrity sha512-e242AK+shp+5bpAc9l93pmG5YRYRfM0INV3gfbdxNeBxccx1MJUagaiwxqAV+Mw55zk92gsb99f2TAc9tt6C7w==
+"@bazel/buildifier@^4.0.1":
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/@bazel/buildifier/-/buildifier-4.0.1.tgz#52cfbad5cbb86e9183a29dde2370cd465730ea0d"
+ integrity sha512-BTmtvJbeeEVrqRApI1gr5hvPgYcHLpdGJ5EXNXEWO692ztMPSj5fB/dH0xUlaW45jn6LimYx8ymqTMhj3538og==
-"@bazel/concatjs@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/concatjs/-/concatjs-3.2.1.tgz#638210bf31011b1617e373624c61d9a10bd7f842"
- integrity sha512-1vYAI1Ugb5PJC/zIetdmx5jHxluhUGuUI9yJcrZYZ24hmSMg+lkcrPlkhwbjtvF26JIDf2g5s5/woDcDrydrjg==
+"@bazel/concatjs@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/concatjs/-/concatjs-3.2.2.tgz#a5b0f15e3bd074c06a51cb25ef64b7e1866ba760"
+ integrity sha512-k4JrIF1q9Oe0j90yuduxJO78SUNlYRBEzQCQS+aNvmm5YcrSJ7dZ5H0pjZ2W41MRT8L9S0Ei6TSMERkAcjD1Jw==
dependencies:
protobufjs "6.8.8"
source-map-support "0.5.9"
@@ -887,25 +887,25 @@
resolved "https://registry.yarnpkg.com/@bazel/ibazel/-/ibazel-0.14.0.tgz#86fa0002bed2ce1123b7ad98d4dd4623a0d93244"
integrity sha512-s0gyec6lArcRDwVfIP6xpY8iEaFpzrSpyErSppd3r2O49pOEg7n6HGS/qJ8ncvme56vrDk6crl/kQ6VAdEO+rg==
-"@bazel/protractor@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/protractor/-/protractor-3.2.1.tgz#872340d6287043496242998640dca3f568a9f31b"
- integrity sha512-4jac5lCz2DeOWQ5P8KUZHUf7YEmJwBk7qllSDfHN3k0cUqWthZCvnclU8oRkLJ+LL9zdNkX1MpB4iLRDYUTl0Q==
+"@bazel/protractor@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/protractor/-/protractor-3.2.2.tgz#ec82bdf580e9ad3773f04886a875e5e4f6d0410a"
+ integrity sha512-eZyuPoad89uNF2ofkfF2j6cbJgZaV2FKi5PhA5VvCzrywnAQ9iKQUv3D3B6T9Vf5dgpyR52iJZKmF2KGFPjNhQ==
-"@bazel/rollup@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/rollup/-/rollup-3.2.1.tgz#c632d54298cf980fc0994a95349d938f8d0ee27c"
- integrity sha512-+vPpi/pjCmQP3TlsDfmZZMDCBDCq2aHFXRxVx78t+1Vjz8ZT1JFx6J65V9YEPrCUowjBhkgrO5dk3IXeOvwXJA==
+"@bazel/rollup@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/rollup/-/rollup-3.2.2.tgz#cf20aeb533c8464b90418cfd42e72d9f6c2c6f8f"
+ integrity sha512-At1YvE6connH6EHatxDE6I8hrk/sy6DOInHHrvr6q32AHMhTKiltC9qDexD2kXwJXD1n1Ioy3y/sA9fesjL6Ng==
-"@bazel/terser@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/terser/-/terser-3.2.1.tgz#0480cc6b00a7bf1d8c8763aa1eff267352768bf1"
- integrity sha512-aV20kqoYnpEEfx2l4ipFOSb5JgRmPVAvicOQBQ6eMqD7SGRrDDNVtjhemo11/RCJiZuUYNxoCo+itLBw4kNaPg==
+"@bazel/terser@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/terser/-/terser-3.2.2.tgz#90cd14f1c9d1c1784730adab5208dafa2342260a"
+ integrity sha512-RI5XBDQN72zikhIZXFrbVsWWdJ+B4W0YcQndahm87t+nu26hXcmpNfSJuMjVmVrFCEB4G/z7CxgHINQCGjRgxg==
-"@bazel/typescript@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.2.1.tgz#564849e2f05387612d13ef64304b7a7582bd107a"
- integrity sha512-2KgMqKcbqL89WWWVC2iwTCS0tMWmQ4LpQgFhaF3Lp56Edl0nv/fy0TOu+waw2Qs2rTBbTVKhk5/9DRiqJmOd2g==
+"@bazel/typescript@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.2.2.tgz#b53ee35dee68952abd711a2d472485748c7521c1"
+ integrity sha512-fTPtX3kZAQ50fWJaBvHtHf4w0fqMCrOhK9A8c5GgbqRrIWF8GG/+Tbt4OPwsG0N3+JDYOsHATacJI0qkjIeG1g==
dependencies:
protobufjs "6.8.8"
semver "5.6.0"
diff --git a/examples/angular_bazel_architect/WORKSPACE b/examples/angular_bazel_architect/WORKSPACE
index 1a6cce71f3..adc689ee53 100644
--- a/examples/angular_bazel_architect/WORKSPACE
+++ b/examples/angular_bazel_architect/WORKSPACE
@@ -12,8 +12,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "build_bazel_rules_nodejs",
- sha256 = "55a25a762fcf9c9b88ab54436581e671bc9f4f523cb5a1bd32459ebec7be68a8",
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.2/rules_nodejs-3.2.2.tar.gz"],
+ sha256 = "dd7ea7efda7655c218ca707f55c3e1b9c68055a70c31a98f264b3445bc8f4cb1",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.3/rules_nodejs-3.2.3.tar.gz"],
)
# The yarn_install rule runs yarn anytime the package.json or yarn.lock file changes.
diff --git a/examples/angular_bazel_architect/package.json b/examples/angular_bazel_architect/package.json
index bf2a82796d..d0a45a6b68 100644
--- a/examples/angular_bazel_architect/package.json
+++ b/examples/angular_bazel_architect/package.json
@@ -33,9 +33,9 @@
"@angular/cli": "11.2.2",
"@angular/compiler-cli": "11.2.3",
"@angular/language-service": "11.2.3",
- "@bazel/bazelisk": "^1.5.0",
- "@bazel/buildifier": "^3.4.0",
- "@bazel/ibazel": "^0.13.1",
+ "@bazel/bazelisk": "^1.7.5",
+ "@bazel/buildifier": "^4.0.1",
+ "@bazel/ibazel": "^0.14.0",
"@types/jasmine": "~3.6.0",
"@types/jasminewd2": "~2.0.3",
"@types/node": "12.12.6",
@@ -54,4 +54,4 @@
"tslint": "~6.1.0",
"typescript": "~4.1.5"
}
-}
\ No newline at end of file
+}
diff --git a/examples/angular_bazel_architect/src/app/app-routing.module.ts b/examples/angular_bazel_architect/src/app/app-routing.module.ts
index 9a5a3ed584..b206a3e67f 100644
--- a/examples/angular_bazel_architect/src/app/app-routing.module.ts
+++ b/examples/angular_bazel_architect/src/app/app-routing.module.ts
@@ -4,5 +4,5 @@ import {RouterModule, Routes} from '@angular/router';
const routes: Routes = [];
-@NgModule({imports: [RouterModule.forRoot(routes, { relativeLinkResolution: 'legacy' })], exports: [RouterModule]})
+@NgModule({imports: [RouterModule.forRoot(routes)], exports: [RouterModule]})
export class AppRoutingModule {}
diff --git a/examples/angular_bazel_architect/yarn.lock b/examples/angular_bazel_architect/yarn.lock
index 8fb5482307..5ae7310281 100644
--- a/examples/angular_bazel_architect/yarn.lock
+++ b/examples/angular_bazel_architect/yarn.lock
@@ -1348,10 +1348,15 @@
lodash "^4.17.13"
to-fast-properties "^2.0.0"
-"@bazel/buildifier@^4.0.0":
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/@bazel/buildifier/-/buildifier-4.0.0.tgz#c99fb21295c7e2858fa176c2b950c589217ae8ac"
- integrity sha512-e242AK+shp+5bpAc9l93pmG5YRYRfM0INV3gfbdxNeBxccx1MJUagaiwxqAV+Mw55zk92gsb99f2TAc9tt6C7w==
+"@bazel/bazelisk@^1.7.5":
+ version "1.7.5"
+ resolved "https://registry.yarnpkg.com/@bazel/bazelisk/-/bazelisk-1.7.5.tgz#dd1a52e3d23464f72de55aa3dc4777847fa85373"
+ integrity sha512-JHwP9JhfZUSoj4sku471Bjw4uE773U2Agujnx0CdPkeRk25khy1l3VyjaPaHB+z1fmMnM6ED3M7tetQUsovUQg==
+
+"@bazel/buildifier@^4.0.1":
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/@bazel/buildifier/-/buildifier-4.0.1.tgz#52cfbad5cbb86e9183a29dde2370cd465730ea0d"
+ integrity sha512-BTmtvJbeeEVrqRApI1gr5hvPgYcHLpdGJ5EXNXEWO692ztMPSj5fB/dH0xUlaW45jn6LimYx8ymqTMhj3538og==
"@bazel/ibazel@^0.14.0":
version "0.14.0"
@@ -5853,17 +5858,10 @@ istanbul-reports@^3.0.2:
html-escaper "^2.0.0"
istanbul-lib-report "^3.0.0"
-<<<<<<< HEAD
-jasmine-core@^3.5.0:
- version "3.5.0"
- resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.5.0.tgz#132c23e645af96d85c8bca13c8758b18429fc1e4"
- integrity sha512-nCeAiw37MIMA9w9IXso7bRaLl+c/ef3wnxsoSAlYrzS+Ot0zTG6nU8G/cIfGkqpkjX2wNaIW9RFG0TwIFnG6bA==
-=======
jasmine-core@^3.6.0, jasmine-core@~3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.6.0.tgz#491f3bb23941799c353ceb7a45b38a950ebc5a20"
integrity sha512-8uQYa7zJN8hq9z+g8z1bqCfdC8eoDAeVnM5sfqs7KHv9/ifoJ500m018fpFc7RDaO6SWCLCXwo/wPSNcdYTgcw==
->>>>>>> 8c9e6aa8... feat(examples): update angular_bazel_architect to version 11
jasmine-core@~2.8.0:
version "2.8.0"
diff --git a/examples/angular_view_engine/WORKSPACE b/examples/angular_view_engine/WORKSPACE
index f70baea9a4..52e7e46ef5 100644
--- a/examples/angular_view_engine/WORKSPACE
+++ b/examples/angular_view_engine/WORKSPACE
@@ -16,8 +16,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
# Fetch rules_nodejs so we can install our npm dependencies
http_archive(
name = "build_bazel_rules_nodejs",
- sha256 = "55a25a762fcf9c9b88ab54436581e671bc9f4f523cb5a1bd32459ebec7be68a8",
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.2/rules_nodejs-3.2.2.tar.gz"],
+ sha256 = "dd7ea7efda7655c218ca707f55c3e1b9c68055a70c31a98f264b3445bc8f4cb1",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.3/rules_nodejs-3.2.3.tar.gz"],
)
# Fetch sass rules for compiling sass files
diff --git a/examples/angular_view_engine/package.json b/examples/angular_view_engine/package.json
index ab95100c92..cab5ada1b9 100644
--- a/examples/angular_view_engine/package.json
+++ b/examples/angular_view_engine/package.json
@@ -33,13 +33,13 @@
"@babel/core": "^7.6.0",
"@babel/preset-env": "^7.6.0",
"@bazel/benchmark-runner": "^0.1.0",
- "@bazel/buildifier": "^4.0.0",
- "@bazel/concatjs": "^3.2.1",
+ "@bazel/buildifier": "^4.0.1",
+ "@bazel/concatjs": "^3.2.2",
"@bazel/ibazel": "^0.14.0",
- "@bazel/protractor": "^3.2.1",
- "@bazel/rollup": "^3.2.1",
- "@bazel/terser": "^3.2.1",
- "@bazel/typescript": "^3.2.1",
+ "@bazel/protractor": "^3.2.2",
+ "@bazel/rollup": "^3.2.2",
+ "@bazel/terser": "^3.2.2",
+ "@bazel/typescript": "^3.2.2",
"@rollup/plugin-commonjs": "^14.0.0",
"@rollup/plugin-node-resolve": "^8.4.0",
"@types/jasmine": "3.4.0",
diff --git a/examples/angular_view_engine/yarn.lock b/examples/angular_view_engine/yarn.lock
index 0129578984..4ecfa67e7d 100644
--- a/examples/angular_view_engine/yarn.lock
+++ b/examples/angular_view_engine/yarn.lock
@@ -813,15 +813,15 @@
puppeteer "^0.13.0"
tempy "^0.2.1"
-"@bazel/buildifier@^4.0.0":
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/@bazel/buildifier/-/buildifier-4.0.0.tgz#c99fb21295c7e2858fa176c2b950c589217ae8ac"
- integrity sha512-e242AK+shp+5bpAc9l93pmG5YRYRfM0INV3gfbdxNeBxccx1MJUagaiwxqAV+Mw55zk92gsb99f2TAc9tt6C7w==
+"@bazel/buildifier@^4.0.1":
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/@bazel/buildifier/-/buildifier-4.0.1.tgz#52cfbad5cbb86e9183a29dde2370cd465730ea0d"
+ integrity sha512-BTmtvJbeeEVrqRApI1gr5hvPgYcHLpdGJ5EXNXEWO692ztMPSj5fB/dH0xUlaW45jn6LimYx8ymqTMhj3538og==
-"@bazel/concatjs@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/concatjs/-/concatjs-3.2.1.tgz#638210bf31011b1617e373624c61d9a10bd7f842"
- integrity sha512-1vYAI1Ugb5PJC/zIetdmx5jHxluhUGuUI9yJcrZYZ24hmSMg+lkcrPlkhwbjtvF26JIDf2g5s5/woDcDrydrjg==
+"@bazel/concatjs@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/concatjs/-/concatjs-3.2.2.tgz#a5b0f15e3bd074c06a51cb25ef64b7e1866ba760"
+ integrity sha512-k4JrIF1q9Oe0j90yuduxJO78SUNlYRBEzQCQS+aNvmm5YcrSJ7dZ5H0pjZ2W41MRT8L9S0Ei6TSMERkAcjD1Jw==
dependencies:
protobufjs "6.8.8"
source-map-support "0.5.9"
@@ -837,25 +837,25 @@
resolved "https://registry.yarnpkg.com/@bazel/ibazel/-/ibazel-0.14.0.tgz#86fa0002bed2ce1123b7ad98d4dd4623a0d93244"
integrity sha512-s0gyec6lArcRDwVfIP6xpY8iEaFpzrSpyErSppd3r2O49pOEg7n6HGS/qJ8ncvme56vrDk6crl/kQ6VAdEO+rg==
-"@bazel/protractor@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/protractor/-/protractor-3.2.1.tgz#872340d6287043496242998640dca3f568a9f31b"
- integrity sha512-4jac5lCz2DeOWQ5P8KUZHUf7YEmJwBk7qllSDfHN3k0cUqWthZCvnclU8oRkLJ+LL9zdNkX1MpB4iLRDYUTl0Q==
+"@bazel/protractor@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/protractor/-/protractor-3.2.2.tgz#ec82bdf580e9ad3773f04886a875e5e4f6d0410a"
+ integrity sha512-eZyuPoad89uNF2ofkfF2j6cbJgZaV2FKi5PhA5VvCzrywnAQ9iKQUv3D3B6T9Vf5dgpyR52iJZKmF2KGFPjNhQ==
-"@bazel/rollup@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/rollup/-/rollup-3.2.1.tgz#c632d54298cf980fc0994a95349d938f8d0ee27c"
- integrity sha512-+vPpi/pjCmQP3TlsDfmZZMDCBDCq2aHFXRxVx78t+1Vjz8ZT1JFx6J65V9YEPrCUowjBhkgrO5dk3IXeOvwXJA==
+"@bazel/rollup@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/rollup/-/rollup-3.2.2.tgz#cf20aeb533c8464b90418cfd42e72d9f6c2c6f8f"
+ integrity sha512-At1YvE6connH6EHatxDE6I8hrk/sy6DOInHHrvr6q32AHMhTKiltC9qDexD2kXwJXD1n1Ioy3y/sA9fesjL6Ng==
-"@bazel/terser@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/terser/-/terser-3.2.1.tgz#0480cc6b00a7bf1d8c8763aa1eff267352768bf1"
- integrity sha512-aV20kqoYnpEEfx2l4ipFOSb5JgRmPVAvicOQBQ6eMqD7SGRrDDNVtjhemo11/RCJiZuUYNxoCo+itLBw4kNaPg==
+"@bazel/terser@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/terser/-/terser-3.2.2.tgz#90cd14f1c9d1c1784730adab5208dafa2342260a"
+ integrity sha512-RI5XBDQN72zikhIZXFrbVsWWdJ+B4W0YcQndahm87t+nu26hXcmpNfSJuMjVmVrFCEB4G/z7CxgHINQCGjRgxg==
-"@bazel/typescript@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.2.1.tgz#564849e2f05387612d13ef64304b7a7582bd107a"
- integrity sha512-2KgMqKcbqL89WWWVC2iwTCS0tMWmQ4LpQgFhaF3Lp56Edl0nv/fy0TOu+waw2Qs2rTBbTVKhk5/9DRiqJmOd2g==
+"@bazel/typescript@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.2.2.tgz#b53ee35dee68952abd711a2d472485748c7521c1"
+ integrity sha512-fTPtX3kZAQ50fWJaBvHtHf4w0fqMCrOhK9A8c5GgbqRrIWF8GG/+Tbt4OPwsG0N3+JDYOsHATacJI0qkjIeG1g==
dependencies:
protobufjs "6.8.8"
semver "5.6.0"
diff --git a/examples/app/WORKSPACE b/examples/app/WORKSPACE
index a161b52759..c5d72d0e41 100644
--- a/examples/app/WORKSPACE
+++ b/examples/app/WORKSPACE
@@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "build_bazel_rules_nodejs",
- sha256 = "55a25a762fcf9c9b88ab54436581e671bc9f4f523cb5a1bd32459ebec7be68a8",
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.2/rules_nodejs-3.2.2.tar.gz"],
+ sha256 = "dd7ea7efda7655c218ca707f55c3e1b9c68055a70c31a98f264b3445bc8f4cb1",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.3/rules_nodejs-3.2.3.tar.gz"],
)
load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install")
diff --git a/examples/app/package.json b/examples/app/package.json
index 24fa0c8fed..34dd9d15ef 100644
--- a/examples/app/package.json
+++ b/examples/app/package.json
@@ -1,10 +1,10 @@
{
"devDependencies": {
- "@bazel/concatjs": "^3.2.1",
- "@bazel/protractor": "^3.2.1",
- "@bazel/rollup": "^3.2.1",
- "@bazel/terser": "^3.2.1",
- "@bazel/typescript": "^3.2.1",
+ "@bazel/concatjs": "^3.2.2",
+ "@bazel/protractor": "^3.2.2",
+ "@bazel/rollup": "^3.2.2",
+ "@bazel/terser": "^3.2.2",
+ "@bazel/typescript": "^3.2.2",
"@types/jasmine": "3.3.15",
"@types/node": "^12.12.2",
"html-insert-assets": "^0.6.0",
diff --git a/examples/app/yarn.lock b/examples/app/yarn.lock
index 14be2e5bd2..55cb4ac3dd 100644
--- a/examples/app/yarn.lock
+++ b/examples/app/yarn.lock
@@ -2,34 +2,34 @@
# yarn lockfile v1
-"@bazel/concatjs@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/concatjs/-/concatjs-3.2.1.tgz#638210bf31011b1617e373624c61d9a10bd7f842"
- integrity sha512-1vYAI1Ugb5PJC/zIetdmx5jHxluhUGuUI9yJcrZYZ24hmSMg+lkcrPlkhwbjtvF26JIDf2g5s5/woDcDrydrjg==
+"@bazel/concatjs@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/concatjs/-/concatjs-3.2.2.tgz#a5b0f15e3bd074c06a51cb25ef64b7e1866ba760"
+ integrity sha512-k4JrIF1q9Oe0j90yuduxJO78SUNlYRBEzQCQS+aNvmm5YcrSJ7dZ5H0pjZ2W41MRT8L9S0Ei6TSMERkAcjD1Jw==
dependencies:
protobufjs "6.8.8"
source-map-support "0.5.9"
tsutils "2.27.2"
-"@bazel/protractor@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/protractor/-/protractor-3.2.1.tgz#872340d6287043496242998640dca3f568a9f31b"
- integrity sha512-4jac5lCz2DeOWQ5P8KUZHUf7YEmJwBk7qllSDfHN3k0cUqWthZCvnclU8oRkLJ+LL9zdNkX1MpB4iLRDYUTl0Q==
-
-"@bazel/rollup@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/rollup/-/rollup-3.2.1.tgz#c632d54298cf980fc0994a95349d938f8d0ee27c"
- integrity sha512-+vPpi/pjCmQP3TlsDfmZZMDCBDCq2aHFXRxVx78t+1Vjz8ZT1JFx6J65V9YEPrCUowjBhkgrO5dk3IXeOvwXJA==
-
-"@bazel/terser@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/terser/-/terser-3.2.1.tgz#0480cc6b00a7bf1d8c8763aa1eff267352768bf1"
- integrity sha512-aV20kqoYnpEEfx2l4ipFOSb5JgRmPVAvicOQBQ6eMqD7SGRrDDNVtjhemo11/RCJiZuUYNxoCo+itLBw4kNaPg==
-
-"@bazel/typescript@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.2.1.tgz#564849e2f05387612d13ef64304b7a7582bd107a"
- integrity sha512-2KgMqKcbqL89WWWVC2iwTCS0tMWmQ4LpQgFhaF3Lp56Edl0nv/fy0TOu+waw2Qs2rTBbTVKhk5/9DRiqJmOd2g==
+"@bazel/protractor@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/protractor/-/protractor-3.2.2.tgz#ec82bdf580e9ad3773f04886a875e5e4f6d0410a"
+ integrity sha512-eZyuPoad89uNF2ofkfF2j6cbJgZaV2FKi5PhA5VvCzrywnAQ9iKQUv3D3B6T9Vf5dgpyR52iJZKmF2KGFPjNhQ==
+
+"@bazel/rollup@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/rollup/-/rollup-3.2.2.tgz#cf20aeb533c8464b90418cfd42e72d9f6c2c6f8f"
+ integrity sha512-At1YvE6connH6EHatxDE6I8hrk/sy6DOInHHrvr6q32AHMhTKiltC9qDexD2kXwJXD1n1Ioy3y/sA9fesjL6Ng==
+
+"@bazel/terser@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/terser/-/terser-3.2.2.tgz#90cd14f1c9d1c1784730adab5208dafa2342260a"
+ integrity sha512-RI5XBDQN72zikhIZXFrbVsWWdJ+B4W0YcQndahm87t+nu26hXcmpNfSJuMjVmVrFCEB4G/z7CxgHINQCGjRgxg==
+
+"@bazel/typescript@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.2.2.tgz#b53ee35dee68952abd711a2d472485748c7521c1"
+ integrity sha512-fTPtX3kZAQ50fWJaBvHtHf4w0fqMCrOhK9A8c5GgbqRrIWF8GG/+Tbt4OPwsG0N3+JDYOsHATacJI0qkjIeG1g==
dependencies:
protobufjs "6.8.8"
semver "5.6.0"
diff --git a/examples/closure/WORKSPACE b/examples/closure/WORKSPACE
index 016e708e18..354523d372 100644
--- a/examples/closure/WORKSPACE
+++ b/examples/closure/WORKSPACE
@@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "build_bazel_rules_nodejs",
- sha256 = "55a25a762fcf9c9b88ab54436581e671bc9f4f523cb5a1bd32459ebec7be68a8",
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.2/rules_nodejs-3.2.2.tar.gz"],
+ sha256 = "dd7ea7efda7655c218ca707f55c3e1b9c68055a70c31a98f264b3445bc8f4cb1",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.3/rules_nodejs-3.2.3.tar.gz"],
)
load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install")
diff --git a/examples/create-react-app/WORKSPACE b/examples/create-react-app/WORKSPACE
index 2bba267791..8d23940b9f 100644
--- a/examples/create-react-app/WORKSPACE
+++ b/examples/create-react-app/WORKSPACE
@@ -7,8 +7,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "build_bazel_rules_nodejs",
- sha256 = "55a25a762fcf9c9b88ab54436581e671bc9f4f523cb5a1bd32459ebec7be68a8",
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.2/rules_nodejs-3.2.2.tar.gz"],
+ sha256 = "dd7ea7efda7655c218ca707f55c3e1b9c68055a70c31a98f264b3445bc8f4cb1",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.3/rules_nodejs-3.2.3.tar.gz"],
)
http_archive(
diff --git a/examples/cypress/WORKSPACE b/examples/cypress/WORKSPACE
index 22c312951b..2fd2840328 100644
--- a/examples/cypress/WORKSPACE
+++ b/examples/cypress/WORKSPACE
@@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "build_bazel_rules_nodejs",
- sha256 = "55a25a762fcf9c9b88ab54436581e671bc9f4f523cb5a1bd32459ebec7be68a8",
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.2/rules_nodejs-3.2.2.tar.gz"],
+ sha256 = "dd7ea7efda7655c218ca707f55c3e1b9c68055a70c31a98f264b3445bc8f4cb1",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.3/rules_nodejs-3.2.3.tar.gz"],
)
load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install")
diff --git a/examples/cypress/package.json b/examples/cypress/package.json
index 66816eb357..4c62894082 100644
--- a/examples/cypress/package.json
+++ b/examples/cypress/package.json
@@ -5,9 +5,9 @@
"express": "4.17.1"
},
"devDependencies": {
- "@bazel/cypress": "^3.2.1",
+ "@bazel/cypress": "^3.2.2",
"@bazel/ibazel": "^0.14.0",
- "@bazel/typescript": "^3.2.1",
+ "@bazel/typescript": "^3.2.2",
"@types/node": "14.0.13",
"cypress": "^4.8.0",
"rxjs": "^6.5.2",
diff --git a/examples/cypress/yarn.lock b/examples/cypress/yarn.lock
index a0e3671431..2b65a997ac 100644
--- a/examples/cypress/yarn.lock
+++ b/examples/cypress/yarn.lock
@@ -2,10 +2,10 @@
# yarn lockfile v1
-"@bazel/cypress@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/cypress/-/cypress-3.2.1.tgz#62b295f1aeec083d029eeb1d9b74fdf80b08dfee"
- integrity sha512-VZf9ILsr5KLGeD7bCVogPZm385HWnvXpYiZYnnNBp/qnia4ofXnUujU91ZewlcYegblAYtPYO4yCjTTVCcCQng==
+"@bazel/cypress@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/cypress/-/cypress-3.2.2.tgz#2cd35b090005a99a7cfd2e8d491099d0272038b1"
+ integrity sha512-ak7MrUXF/iL75e7gCqp/TMK2/dJlL9mMGpa6Dg4Z1ewiTVKTXL06GHq4TWOLfIZALViIaSw8wMkDjk/eezpYgg==
dependencies:
tar "6.0.5"
@@ -14,10 +14,10 @@
resolved "https://registry.yarnpkg.com/@bazel/ibazel/-/ibazel-0.14.0.tgz#86fa0002bed2ce1123b7ad98d4dd4623a0d93244"
integrity sha512-s0gyec6lArcRDwVfIP6xpY8iEaFpzrSpyErSppd3r2O49pOEg7n6HGS/qJ8ncvme56vrDk6crl/kQ6VAdEO+rg==
-"@bazel/typescript@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.2.1.tgz#564849e2f05387612d13ef64304b7a7582bd107a"
- integrity sha512-2KgMqKcbqL89WWWVC2iwTCS0tMWmQ4LpQgFhaF3Lp56Edl0nv/fy0TOu+waw2Qs2rTBbTVKhk5/9DRiqJmOd2g==
+"@bazel/typescript@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.2.2.tgz#b53ee35dee68952abd711a2d472485748c7521c1"
+ integrity sha512-fTPtX3kZAQ50fWJaBvHtHf4w0fqMCrOhK9A8c5GgbqRrIWF8GG/+Tbt4OPwsG0N3+JDYOsHATacJI0qkjIeG1g==
dependencies:
protobufjs "6.8.8"
semver "5.6.0"
diff --git a/examples/esbuild/WORKSPACE b/examples/esbuild/WORKSPACE
index 2126ca1104..92e689924f 100644
--- a/examples/esbuild/WORKSPACE
+++ b/examples/esbuild/WORKSPACE
@@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "build_bazel_rules_nodejs",
- sha256 = "55a25a762fcf9c9b88ab54436581e671bc9f4f523cb5a1bd32459ebec7be68a8",
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.2/rules_nodejs-3.2.2.tar.gz"],
+ sha256 = "dd7ea7efda7655c218ca707f55c3e1b9c68055a70c31a98f264b3445bc8f4cb1",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.3/rules_nodejs-3.2.3.tar.gz"],
)
_ESBUILD_VERSION = "0.8.48"
diff --git a/examples/esbuild/package-lock.json b/examples/esbuild/package-lock.json
index a7e8b85365..e7795d85f5 100644
--- a/examples/esbuild/package-lock.json
+++ b/examples/esbuild/package-lock.json
@@ -1,17 +1,292 @@
{
+ "name": "esbuild",
+ "lockfileVersion": 2,
"requires": true,
- "lockfileVersion": 1,
+ "packages": {
+ "": {
+ "dependencies": {
+ "chalk": "4.1.0"
+ },
+ "devDependencies": {
+ "@bazel/esbuild": "^3.2.2",
+ "@bazel/typescript": "^3.2.2",
+ "@types/node": "12.6.3",
+ "tslib": "1.9.0",
+ "typescript": "3.5.3"
+ }
+ },
+ "node_modules/@bazel/esbuild": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/@bazel/esbuild/-/esbuild-3.2.2.tgz",
+ "integrity": "sha512-y3xIx01CXmEglqRG/S5SPYyc1+WyBPnAAvGeeJaNUzas/5N8KjTeAx6Mota3BhF4zbqYwXFQbvLkc+uUqEoMCg==",
+ "dev": true,
+ "hasInstallScript": true
+ },
+ "node_modules/@bazel/typescript": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/@bazel/typescript/-/typescript-3.2.2.tgz",
+ "integrity": "sha512-fTPtX3kZAQ50fWJaBvHtHf4w0fqMCrOhK9A8c5GgbqRrIWF8GG/+Tbt4OPwsG0N3+JDYOsHATacJI0qkjIeG1g==",
+ "dev": true,
+ "hasInstallScript": true,
+ "dependencies": {
+ "protobufjs": "6.8.8",
+ "semver": "5.6.0",
+ "source-map-support": "0.5.9",
+ "tsutils": "2.27.2"
+ },
+ "bin": {
+ "ts_project_options_validator": "internal/ts_project_options_validator.js",
+ "tsc_wrapped": "internal/tsc_wrapped/tsc_wrapped.js"
+ },
+ "peerDependencies": {
+ "typescript": ">=3.0.0 <4.3"
+ }
+ },
+ "node_modules/@protobufjs/aspromise": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
+ "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=",
+ "dev": true
+ },
+ "node_modules/@protobufjs/base64": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
+ "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==",
+ "dev": true
+ },
+ "node_modules/@protobufjs/codegen": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz",
+ "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==",
+ "dev": true
+ },
+ "node_modules/@protobufjs/eventemitter": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
+ "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=",
+ "dev": true
+ },
+ "node_modules/@protobufjs/fetch": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz",
+ "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=",
+ "dev": true,
+ "dependencies": {
+ "@protobufjs/aspromise": "^1.1.1",
+ "@protobufjs/inquire": "^1.1.0"
+ }
+ },
+ "node_modules/@protobufjs/float": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
+ "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=",
+ "dev": true
+ },
+ "node_modules/@protobufjs/inquire": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz",
+ "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=",
+ "dev": true
+ },
+ "node_modules/@protobufjs/path": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
+ "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=",
+ "dev": true
+ },
+ "node_modules/@protobufjs/pool": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
+ "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=",
+ "dev": true
+ },
+ "node_modules/@protobufjs/utf8": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
+ "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=",
+ "dev": true
+ },
+ "node_modules/@types/long": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz",
+ "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==",
+ "dev": true
+ },
+ "node_modules/@types/node": {
+ "version": "12.6.3",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.6.3.tgz",
+ "integrity": "sha512-7TEYTQT1/6PP53NftXXabIZDaZfaoBdeBm8Md/i7zsWRoBe0YwOXguyK8vhHs8ehgB/w9U4K/6EWuTyp0W6nIA==",
+ "dev": true
+ },
+ "node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/buffer-from": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
+ "dev": true
+ },
+ "node_modules/chalk": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
+ "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ },
+ "node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/long": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
+ "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==",
+ "dev": true
+ },
+ "node_modules/protobufjs": {
+ "version": "6.8.8",
+ "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.8.8.tgz",
+ "integrity": "sha512-AAmHtD5pXgZfi7GMpllpO3q1Xw1OYldr+dMUlAnffGTAhqkg72WdmSY71uKBF/JuyiKs8psYbtKrhi0ASCD8qw==",
+ "dev": true,
+ "dependencies": {
+ "@protobufjs/aspromise": "^1.1.2",
+ "@protobufjs/base64": "^1.1.2",
+ "@protobufjs/codegen": "^2.0.4",
+ "@protobufjs/eventemitter": "^1.1.0",
+ "@protobufjs/fetch": "^1.1.0",
+ "@protobufjs/float": "^1.0.2",
+ "@protobufjs/inquire": "^1.1.0",
+ "@protobufjs/path": "^1.1.2",
+ "@protobufjs/pool": "^1.1.0",
+ "@protobufjs/utf8": "^1.1.0",
+ "@types/long": "^4.0.0",
+ "@types/node": "^10.1.0",
+ "long": "^4.0.0"
+ },
+ "bin": {
+ "pbjs": "bin/pbjs",
+ "pbts": "bin/pbts"
+ }
+ },
+ "node_modules/protobufjs/node_modules/@types/node": {
+ "version": "10.17.51",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.51.tgz",
+ "integrity": "sha512-KANw+MkL626tq90l++hGelbl67irOJzGhUJk6a1Bt8QHOeh9tztJx+L0AqttraWKinmZn7Qi5lJZJzx45Gq0dg==",
+ "dev": true
+ },
+ "node_modules/semver": {
+ "version": "5.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
+ "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map-support": {
+ "version": "0.5.9",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz",
+ "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==",
+ "dev": true,
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz",
+ "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==",
+ "dev": true
+ },
+ "node_modules/tsutils": {
+ "version": "2.27.2",
+ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.27.2.tgz",
+ "integrity": "sha512-qf6rmT84TFMuxAKez2pIfR8UCai49iQsfB7YWVjV1bKpy/d0PWT5rEOSM6La9PiHZ0k1RRZQiwVdVJfQ3BPHgg==",
+ "dev": true,
+ "dependencies": {
+ "tslib": "^1.8.1"
+ }
+ },
+ "node_modules/typescript": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz",
+ "integrity": "sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==",
+ "dev": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=4.2.0"
+ }
+ }
+ },
"dependencies": {
"@bazel/esbuild": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@bazel/esbuild/-/esbuild-3.2.1.tgz",
- "integrity": "sha512-8Y2Vd9KMxWfL9KzF9qbrUGHJZiJsee6xpT+dUCd29zYJA9Ddu4WCeNtS24Ejbm1y3NUgGPXh1nLgTQ/yIfCYng==",
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/@bazel/esbuild/-/esbuild-3.2.2.tgz",
+ "integrity": "sha512-y3xIx01CXmEglqRG/S5SPYyc1+WyBPnAAvGeeJaNUzas/5N8KjTeAx6Mota3BhF4zbqYwXFQbvLkc+uUqEoMCg==",
"dev": true
},
"@bazel/typescript": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@bazel/typescript/-/typescript-3.2.1.tgz",
- "integrity": "sha512-2KgMqKcbqL89WWWVC2iwTCS0tMWmQ4LpQgFhaF3Lp56Edl0nv/fy0TOu+waw2Qs2rTBbTVKhk5/9DRiqJmOd2g==",
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/@bazel/typescript/-/typescript-3.2.2.tgz",
+ "integrity": "sha512-fTPtX3kZAQ50fWJaBvHtHf4w0fqMCrOhK9A8c5GgbqRrIWF8GG/+Tbt4OPwsG0N3+JDYOsHATacJI0qkjIeG1g==",
"dev": true,
"requires": {
"protobufjs": "6.8.8",
diff --git a/examples/esbuild/package.json b/examples/esbuild/package.json
index 193799ad9c..fb33e27038 100644
--- a/examples/esbuild/package.json
+++ b/examples/esbuild/package.json
@@ -1,8 +1,8 @@
{
"private": true,
"devDependencies": {
- "@bazel/esbuild": "^3.2.1",
- "@bazel/typescript": "^3.2.1",
+ "@bazel/esbuild": "^3.2.2",
+ "@bazel/typescript": "^3.2.2",
"@types/node": "12.6.3",
"tslib": "1.9.0",
"typescript": "3.5.3"
diff --git a/examples/jest/WORKSPACE b/examples/jest/WORKSPACE
index 00f15502b9..457421f7dd 100644
--- a/examples/jest/WORKSPACE
+++ b/examples/jest/WORKSPACE
@@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "build_bazel_rules_nodejs",
- sha256 = "55a25a762fcf9c9b88ab54436581e671bc9f4f523cb5a1bd32459ebec7be68a8",
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.2/rules_nodejs-3.2.2.tar.gz"],
+ sha256 = "dd7ea7efda7655c218ca707f55c3e1b9c68055a70c31a98f264b3445bc8f4cb1",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.3/rules_nodejs-3.2.3.tar.gz"],
)
load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install")
diff --git a/examples/jest/package.json b/examples/jest/package.json
index 921a4c1e3b..9069bd2c05 100644
--- a/examples/jest/package.json
+++ b/examples/jest/package.json
@@ -5,7 +5,7 @@
"@babel/cli": "^7.6.0",
"@babel/core": "^7.6.0",
"@babel/preset-env": "^7.6.0",
- "@bazel/typescript": "^3.2.1",
+ "@bazel/typescript": "^3.2.2",
"@jest/core": "24.7.1",
"@jest/transform": "24.7.1",
"@types/jest": "^26.0.15",
diff --git a/examples/jest/yarn.lock b/examples/jest/yarn.lock
index fb6002629a..5342d34aef 100644
--- a/examples/jest/yarn.lock
+++ b/examples/jest/yarn.lock
@@ -832,10 +832,10 @@
lodash "^4.17.19"
to-fast-properties "^2.0.0"
-"@bazel/typescript@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.2.1.tgz#564849e2f05387612d13ef64304b7a7582bd107a"
- integrity sha512-2KgMqKcbqL89WWWVC2iwTCS0tMWmQ4LpQgFhaF3Lp56Edl0nv/fy0TOu+waw2Qs2rTBbTVKhk5/9DRiqJmOd2g==
+"@bazel/typescript@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.2.2.tgz#b53ee35dee68952abd711a2d472485748c7521c1"
+ integrity sha512-fTPtX3kZAQ50fWJaBvHtHf4w0fqMCrOhK9A8c5GgbqRrIWF8GG/+Tbt4OPwsG0N3+JDYOsHATacJI0qkjIeG1g==
dependencies:
protobufjs "6.8.8"
semver "5.6.0"
diff --git a/examples/kotlin/WORKSPACE b/examples/kotlin/WORKSPACE
index 2c9366607c..7249b7d265 100644
--- a/examples/kotlin/WORKSPACE
+++ b/examples/kotlin/WORKSPACE
@@ -7,8 +7,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "build_bazel_rules_nodejs",
- sha256 = "55a25a762fcf9c9b88ab54436581e671bc9f4f523cb5a1bd32459ebec7be68a8",
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.2/rules_nodejs-3.2.2.tar.gz"],
+ sha256 = "dd7ea7efda7655c218ca707f55c3e1b9c68055a70c31a98f264b3445bc8f4cb1",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.3/rules_nodejs-3.2.3.tar.gz"],
)
# Install external npm dependencies
diff --git a/examples/kotlin/package-lock.json b/examples/kotlin/package-lock.json
index e8c3f894eb..0c655d1d19 100644
--- a/examples/kotlin/package-lock.json
+++ b/examples/kotlin/package-lock.json
@@ -6,9 +6,9 @@
"": {
"name": "kotlin_example",
"devDependencies": {
- "@bazel/jasmine": "^3.2.1",
- "@bazel/rollup": "^3.2.1",
- "@bazel/terser": "^3.2.1",
+ "@bazel/jasmine": "^3.2.2",
+ "@bazel/rollup": "^3.2.2",
+ "@bazel/terser": "^3.2.2",
"@rollup/plugin-commonjs": "14.0.0",
"@rollup/plugin-node-resolve": "8.4.0",
"domino": "^2.1.3",
@@ -21,9 +21,9 @@
}
},
"node_modules/@bazel/jasmine": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@bazel/jasmine/-/jasmine-3.2.1.tgz",
- "integrity": "sha512-VPz4AuK0DTk8kyiUzWrh36zGyaX1Yvq1vTNvc0TM8cXsQPRNsQbFTmQsy/y4quLvdJfk8P1qP9N95gqqkz9M9Q==",
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/@bazel/jasmine/-/jasmine-3.2.2.tgz",
+ "integrity": "sha512-fSz0fRdk9IgyN/9Ietzasdp2QAhMGz/E4LKdiu+WyZrPjwd06zQ4ypb3DzzT1g+M/7NXJqV8X6ahTGQMrm/Rpw==",
"dev": true,
"hasInstallScript": true,
"dependencies": {
@@ -36,9 +36,9 @@
}
},
"node_modules/@bazel/rollup": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@bazel/rollup/-/rollup-3.2.1.tgz",
- "integrity": "sha512-+vPpi/pjCmQP3TlsDfmZZMDCBDCq2aHFXRxVx78t+1Vjz8ZT1JFx6J65V9YEPrCUowjBhkgrO5dk3IXeOvwXJA==",
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/@bazel/rollup/-/rollup-3.2.2.tgz",
+ "integrity": "sha512-At1YvE6connH6EHatxDE6I8hrk/sy6DOInHHrvr6q32AHMhTKiltC9qDexD2kXwJXD1n1Ioy3y/sA9fesjL6Ng==",
"dev": true,
"hasInstallScript": true,
"bin": {
@@ -49,9 +49,9 @@
}
},
"node_modules/@bazel/terser": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@bazel/terser/-/terser-3.2.1.tgz",
- "integrity": "sha512-aV20kqoYnpEEfx2l4ipFOSb5JgRmPVAvicOQBQ6eMqD7SGRrDDNVtjhemo11/RCJiZuUYNxoCo+itLBw4kNaPg==",
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/@bazel/terser/-/terser-3.2.2.tgz",
+ "integrity": "sha512-RI5XBDQN72zikhIZXFrbVsWWdJ+B4W0YcQndahm87t+nu26hXcmpNfSJuMjVmVrFCEB4G/z7CxgHINQCGjRgxg==",
"dev": true,
"hasInstallScript": true,
"bin": {
@@ -1277,9 +1277,9 @@
},
"dependencies": {
"@bazel/jasmine": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@bazel/jasmine/-/jasmine-3.2.1.tgz",
- "integrity": "sha512-VPz4AuK0DTk8kyiUzWrh36zGyaX1Yvq1vTNvc0TM8cXsQPRNsQbFTmQsy/y4quLvdJfk8P1qP9N95gqqkz9M9Q==",
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/@bazel/jasmine/-/jasmine-3.2.2.tgz",
+ "integrity": "sha512-fSz0fRdk9IgyN/9Ietzasdp2QAhMGz/E4LKdiu+WyZrPjwd06zQ4ypb3DzzT1g+M/7NXJqV8X6ahTGQMrm/Rpw==",
"dev": true,
"requires": {
"c8": "~7.5.0",
@@ -1287,16 +1287,16 @@
}
},
"@bazel/rollup": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@bazel/rollup/-/rollup-3.2.1.tgz",
- "integrity": "sha512-+vPpi/pjCmQP3TlsDfmZZMDCBDCq2aHFXRxVx78t+1Vjz8ZT1JFx6J65V9YEPrCUowjBhkgrO5dk3IXeOvwXJA==",
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/@bazel/rollup/-/rollup-3.2.2.tgz",
+ "integrity": "sha512-At1YvE6connH6EHatxDE6I8hrk/sy6DOInHHrvr6q32AHMhTKiltC9qDexD2kXwJXD1n1Ioy3y/sA9fesjL6Ng==",
"dev": true,
"requires": {}
},
"@bazel/terser": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@bazel/terser/-/terser-3.2.1.tgz",
- "integrity": "sha512-aV20kqoYnpEEfx2l4ipFOSb5JgRmPVAvicOQBQ6eMqD7SGRrDDNVtjhemo11/RCJiZuUYNxoCo+itLBw4kNaPg==",
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/@bazel/terser/-/terser-3.2.2.tgz",
+ "integrity": "sha512-RI5XBDQN72zikhIZXFrbVsWWdJ+B4W0YcQndahm87t+nu26hXcmpNfSJuMjVmVrFCEB4G/z7CxgHINQCGjRgxg==",
"dev": true,
"requires": {}
},
diff --git a/examples/kotlin/package.json b/examples/kotlin/package.json
index 78d1f9c319..110394c42b 100644
--- a/examples/kotlin/package.json
+++ b/examples/kotlin/package.json
@@ -2,9 +2,9 @@
"name": "kotlin_example",
"private": true,
"devDependencies": {
- "@bazel/jasmine": "^3.2.1",
- "@bazel/rollup": "^3.2.1",
- "@bazel/terser": "^3.2.1",
+ "@bazel/jasmine": "^3.2.2",
+ "@bazel/rollup": "^3.2.2",
+ "@bazel/terser": "^3.2.2",
"@rollup/plugin-commonjs": "14.0.0",
"@rollup/plugin-node-resolve": "8.4.0",
"domino": "^2.1.3",
diff --git a/examples/nestjs/WORKSPACE b/examples/nestjs/WORKSPACE
index d83550e550..14e4877f45 100644
--- a/examples/nestjs/WORKSPACE
+++ b/examples/nestjs/WORKSPACE
@@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "build_bazel_rules_nodejs",
- sha256 = "55a25a762fcf9c9b88ab54436581e671bc9f4f523cb5a1bd32459ebec7be68a8",
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.2/rules_nodejs-3.2.2.tar.gz"],
+ sha256 = "dd7ea7efda7655c218ca707f55c3e1b9c68055a70c31a98f264b3445bc8f4cb1",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.3/rules_nodejs-3.2.3.tar.gz"],
)
load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install")
@@ -35,9 +35,9 @@ yarn_install(
http_archive(
name = "io_bazel_rules_docker",
- sha256 = "4521794f0fba2e20f3bf15846ab5e01d5332e587e9ce81629c7f96c793bb7036",
- strip_prefix = "rules_docker-0.14.4",
- urls = ["https://github.com/bazelbuild/rules_docker/releases/download/v0.14.4/rules_docker-v0.14.4.tar.gz"],
+ sha256 = "95d39fd84ff4474babaf190450ee034d958202043e366b9fc38f438c9e6c3334",
+ strip_prefix = "rules_docker-0.16.0",
+ urls = ["https://github.com/bazelbuild/rules_docker/releases/download/v0.16.0/rules_docker-v0.16.0.tar.gz"],
)
load(
@@ -51,10 +51,6 @@ load("@io_bazel_rules_docker//repositories:deps.bzl", container_deps = "deps")
container_deps()
-load("@io_bazel_rules_docker//repositories:pip_repositories.bzl", "pip_deps")
-
-pip_deps()
-
load(
"@io_bazel_rules_docker//nodejs:image.bzl",
nodejs_image_repositories = "repositories",
diff --git a/examples/nestjs/package.json b/examples/nestjs/package.json
index cb85a291fa..5f95e4ce54 100644
--- a/examples/nestjs/package.json
+++ b/examples/nestjs/package.json
@@ -2,7 +2,7 @@
"private": true,
"dependencies": {
"@bazel/ibazel": "^0.14.0",
- "@bazel/jasmine": "^3.2.1",
+ "@bazel/jasmine": "^3.2.2",
"@nestjs/common": "6.5.2",
"@nestjs/core": "6.5.2",
"@nestjs/platform-express": "6.5.2",
@@ -17,7 +17,7 @@
"supertest": "^4.0.2"
},
"devDependencies": {
- "@bazel/typescript": "^3.2.1",
+ "@bazel/typescript": "^3.2.2",
"@types/node": "12.6.3",
"tslib": "^1.9.0",
"typescript": "3.5.3"
diff --git a/examples/nestjs/yarn.lock b/examples/nestjs/yarn.lock
index c799932cbf..7180feb71d 100644
--- a/examples/nestjs/yarn.lock
+++ b/examples/nestjs/yarn.lock
@@ -7,18 +7,18 @@
resolved "https://registry.yarnpkg.com/@bazel/ibazel/-/ibazel-0.14.0.tgz#86fa0002bed2ce1123b7ad98d4dd4623a0d93244"
integrity sha512-s0gyec6lArcRDwVfIP6xpY8iEaFpzrSpyErSppd3r2O49pOEg7n6HGS/qJ8ncvme56vrDk6crl/kQ6VAdEO+rg==
-"@bazel/jasmine@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-3.2.1.tgz#3a29b4a04222de2add06a57d771b9c2ecc97af80"
- integrity sha512-VPz4AuK0DTk8kyiUzWrh36zGyaX1Yvq1vTNvc0TM8cXsQPRNsQbFTmQsy/y4quLvdJfk8P1qP9N95gqqkz9M9Q==
+"@bazel/jasmine@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-3.2.2.tgz#e4c088d8267f83c4c718ac46e5923f549d47fef6"
+ integrity sha512-fSz0fRdk9IgyN/9Ietzasdp2QAhMGz/E4LKdiu+WyZrPjwd06zQ4ypb3DzzT1g+M/7NXJqV8X6ahTGQMrm/Rpw==
dependencies:
c8 "~7.5.0"
jasmine-reporters "~2.3.2"
-"@bazel/typescript@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.2.1.tgz#564849e2f05387612d13ef64304b7a7582bd107a"
- integrity sha512-2KgMqKcbqL89WWWVC2iwTCS0tMWmQ4LpQgFhaF3Lp56Edl0nv/fy0TOu+waw2Qs2rTBbTVKhk5/9DRiqJmOd2g==
+"@bazel/typescript@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.2.2.tgz#b53ee35dee68952abd711a2d472485748c7521c1"
+ integrity sha512-fTPtX3kZAQ50fWJaBvHtHf4w0fqMCrOhK9A8c5GgbqRrIWF8GG/+Tbt4OPwsG0N3+JDYOsHATacJI0qkjIeG1g==
dependencies:
protobufjs "6.8.8"
semver "5.6.0"
diff --git a/examples/parcel/WORKSPACE b/examples/parcel/WORKSPACE
index 780316939e..f91c7b2a7c 100644
--- a/examples/parcel/WORKSPACE
+++ b/examples/parcel/WORKSPACE
@@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "build_bazel_rules_nodejs",
- sha256 = "55a25a762fcf9c9b88ab54436581e671bc9f4f523cb5a1bd32459ebec7be68a8",
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.2/rules_nodejs-3.2.2.tar.gz"],
+ sha256 = "dd7ea7efda7655c218ca707f55c3e1b9c68055a70c31a98f264b3445bc8f4cb1",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.3/rules_nodejs-3.2.3.tar.gz"],
)
load("@build_bazel_rules_nodejs//:index.bzl", "npm_install")
diff --git a/examples/protobufjs/WORKSPACE b/examples/protobufjs/WORKSPACE
index ba5aa20798..bde98549ca 100644
--- a/examples/protobufjs/WORKSPACE
+++ b/examples/protobufjs/WORKSPACE
@@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "build_bazel_rules_nodejs",
- sha256 = "55a25a762fcf9c9b88ab54436581e671bc9f4f523cb5a1bd32459ebec7be68a8",
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.2/rules_nodejs-3.2.2.tar.gz"],
+ sha256 = "dd7ea7efda7655c218ca707f55c3e1b9c68055a70c31a98f264b3445bc8f4cb1",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.3/rules_nodejs-3.2.3.tar.gz"],
)
http_archive(
diff --git a/examples/protobufjs/package.json b/examples/protobufjs/package.json
index 26f0b5b8f8..6854ecb048 100644
--- a/examples/protobufjs/package.json
+++ b/examples/protobufjs/package.json
@@ -1,8 +1,8 @@
{
"private": true,
"devDependencies": {
- "@bazel/jasmine": "^3.2.1",
- "@bazel/typescript": "^3.2.1",
+ "@bazel/jasmine": "^3.2.2",
+ "@bazel/typescript": "^3.2.2",
"@types/jasmine": "2.8.2",
"@types/long": "^4.0.0",
"@types/node": "11.11.1",
diff --git a/examples/protobufjs/yarn.lock b/examples/protobufjs/yarn.lock
index 668b71237b..0f478c733e 100644
--- a/examples/protobufjs/yarn.lock
+++ b/examples/protobufjs/yarn.lock
@@ -7,18 +7,18 @@
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.11.tgz#9ce3595bcd74bc5c466905e86c535b8b25011e79"
integrity sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==
-"@bazel/jasmine@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-3.2.1.tgz#3a29b4a04222de2add06a57d771b9c2ecc97af80"
- integrity sha512-VPz4AuK0DTk8kyiUzWrh36zGyaX1Yvq1vTNvc0TM8cXsQPRNsQbFTmQsy/y4quLvdJfk8P1qP9N95gqqkz9M9Q==
+"@bazel/jasmine@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-3.2.2.tgz#e4c088d8267f83c4c718ac46e5923f549d47fef6"
+ integrity sha512-fSz0fRdk9IgyN/9Ietzasdp2QAhMGz/E4LKdiu+WyZrPjwd06zQ4ypb3DzzT1g+M/7NXJqV8X6ahTGQMrm/Rpw==
dependencies:
c8 "~7.5.0"
jasmine-reporters "~2.3.2"
-"@bazel/typescript@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.2.1.tgz#564849e2f05387612d13ef64304b7a7582bd107a"
- integrity sha512-2KgMqKcbqL89WWWVC2iwTCS0tMWmQ4LpQgFhaF3Lp56Edl0nv/fy0TOu+waw2Qs2rTBbTVKhk5/9DRiqJmOd2g==
+"@bazel/typescript@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.2.2.tgz#b53ee35dee68952abd711a2d472485748c7521c1"
+ integrity sha512-fTPtX3kZAQ50fWJaBvHtHf4w0fqMCrOhK9A8c5GgbqRrIWF8GG/+Tbt4OPwsG0N3+JDYOsHATacJI0qkjIeG1g==
dependencies:
protobufjs "6.8.8"
semver "5.6.0"
diff --git a/examples/protocol_buffers/WORKSPACE b/examples/protocol_buffers/WORKSPACE
index ea7369ffe9..40cb806d7f 100644
--- a/examples/protocol_buffers/WORKSPACE
+++ b/examples/protocol_buffers/WORKSPACE
@@ -21,15 +21,15 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "build_bazel_rules_nodejs",
- sha256 = "55a25a762fcf9c9b88ab54436581e671bc9f4f523cb5a1bd32459ebec7be68a8",
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.2/rules_nodejs-3.2.2.tar.gz"],
+ sha256 = "dd7ea7efda7655c218ca707f55c3e1b9c68055a70c31a98f264b3445bc8f4cb1",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.3/rules_nodejs-3.2.3.tar.gz"],
)
http_archive(
name = "com_google_protobuf",
- sha256 = "bc3dbf1f09dba1b2eb3f2f70352ee97b9049066c9040ce0c9b67fb3294e91e4b",
- strip_prefix = "protobuf-3.15.5",
- urls = ["https://github.com/protocolbuffers/protobuf/archive/v3.15.5.tar.gz"],
+ sha256 = "65e020a42bdab44a66664d34421995829e9e79c60e5adaa08282fd14ca552f57",
+ strip_prefix = "protobuf-3.15.6",
+ urls = ["https://github.com/protocolbuffers/protobuf/archive/v3.15.6.tar.gz"],
)
http_archive(
diff --git a/examples/protocol_buffers/package.json b/examples/protocol_buffers/package.json
index 522521ca9c..2af73bb5df 100644
--- a/examples/protocol_buffers/package.json
+++ b/examples/protocol_buffers/package.json
@@ -1,11 +1,11 @@
{
"devDependencies": {
- "@bazel/concatjs": "^3.2.1",
- "@bazel/labs": "^3.2.1",
- "@bazel/protractor": "^3.2.1",
- "@bazel/rollup": "^3.2.1",
- "@bazel/terser": "^3.2.1",
- "@bazel/typescript": "^3.2.1",
+ "@bazel/concatjs": "^3.2.2",
+ "@bazel/labs": "^3.2.2",
+ "@bazel/protractor": "^3.2.2",
+ "@bazel/rollup": "^3.2.2",
+ "@bazel/terser": "^3.2.2",
+ "@bazel/typescript": "^3.2.2",
"@rollup/plugin-commonjs": "14.0.0",
"@rollup/plugin-node-resolve": "8.4.0",
"@types/jasmine": "2.8.2",
diff --git a/examples/protocol_buffers/yarn.lock b/examples/protocol_buffers/yarn.lock
index 918ced2394..5356c7d77f 100644
--- a/examples/protocol_buffers/yarn.lock
+++ b/examples/protocol_buffers/yarn.lock
@@ -2,39 +2,39 @@
# yarn lockfile v1
-"@bazel/concatjs@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/concatjs/-/concatjs-3.2.1.tgz#638210bf31011b1617e373624c61d9a10bd7f842"
- integrity sha512-1vYAI1Ugb5PJC/zIetdmx5jHxluhUGuUI9yJcrZYZ24hmSMg+lkcrPlkhwbjtvF26JIDf2g5s5/woDcDrydrjg==
+"@bazel/concatjs@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/concatjs/-/concatjs-3.2.2.tgz#a5b0f15e3bd074c06a51cb25ef64b7e1866ba760"
+ integrity sha512-k4JrIF1q9Oe0j90yuduxJO78SUNlYRBEzQCQS+aNvmm5YcrSJ7dZ5H0pjZ2W41MRT8L9S0Ei6TSMERkAcjD1Jw==
dependencies:
protobufjs "6.8.8"
source-map-support "0.5.9"
tsutils "2.27.2"
-"@bazel/labs@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/labs/-/labs-3.2.1.tgz#9eee5c8e62601f0850569db6304c3257f7f6cbda"
- integrity sha512-b/ta8kMRtU8jy8DBlPzlDk0gu5tkD3/2j8djEESXdwrbixduPcVYMI4NKw0DjZIYmw90uA3XxGUwFPcqm4luGA==
+"@bazel/labs@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/labs/-/labs-3.2.2.tgz#b736196bcb1b59629916684bdf861ba15b4cc305"
+ integrity sha512-Sky9sOzbPLuBqDRYfQ+AH7lDZLVS/3kqWpAuF3AODBZrSkm51mavg0zAD7cTIumdHAW/+g08BTTC54t+j9jrVg==
-"@bazel/protractor@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/protractor/-/protractor-3.2.1.tgz#872340d6287043496242998640dca3f568a9f31b"
- integrity sha512-4jac5lCz2DeOWQ5P8KUZHUf7YEmJwBk7qllSDfHN3k0cUqWthZCvnclU8oRkLJ+LL9zdNkX1MpB4iLRDYUTl0Q==
+"@bazel/protractor@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/protractor/-/protractor-3.2.2.tgz#ec82bdf580e9ad3773f04886a875e5e4f6d0410a"
+ integrity sha512-eZyuPoad89uNF2ofkfF2j6cbJgZaV2FKi5PhA5VvCzrywnAQ9iKQUv3D3B6T9Vf5dgpyR52iJZKmF2KGFPjNhQ==
-"@bazel/rollup@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/rollup/-/rollup-3.2.1.tgz#c632d54298cf980fc0994a95349d938f8d0ee27c"
- integrity sha512-+vPpi/pjCmQP3TlsDfmZZMDCBDCq2aHFXRxVx78t+1Vjz8ZT1JFx6J65V9YEPrCUowjBhkgrO5dk3IXeOvwXJA==
+"@bazel/rollup@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/rollup/-/rollup-3.2.2.tgz#cf20aeb533c8464b90418cfd42e72d9f6c2c6f8f"
+ integrity sha512-At1YvE6connH6EHatxDE6I8hrk/sy6DOInHHrvr6q32AHMhTKiltC9qDexD2kXwJXD1n1Ioy3y/sA9fesjL6Ng==
-"@bazel/terser@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/terser/-/terser-3.2.1.tgz#0480cc6b00a7bf1d8c8763aa1eff267352768bf1"
- integrity sha512-aV20kqoYnpEEfx2l4ipFOSb5JgRmPVAvicOQBQ6eMqD7SGRrDDNVtjhemo11/RCJiZuUYNxoCo+itLBw4kNaPg==
+"@bazel/terser@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/terser/-/terser-3.2.2.tgz#90cd14f1c9d1c1784730adab5208dafa2342260a"
+ integrity sha512-RI5XBDQN72zikhIZXFrbVsWWdJ+B4W0YcQndahm87t+nu26hXcmpNfSJuMjVmVrFCEB4G/z7CxgHINQCGjRgxg==
-"@bazel/typescript@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.2.1.tgz#564849e2f05387612d13ef64304b7a7582bd107a"
- integrity sha512-2KgMqKcbqL89WWWVC2iwTCS0tMWmQ4LpQgFhaF3Lp56Edl0nv/fy0TOu+waw2Qs2rTBbTVKhk5/9DRiqJmOd2g==
+"@bazel/typescript@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.2.2.tgz#b53ee35dee68952abd711a2d472485748c7521c1"
+ integrity sha512-fTPtX3kZAQ50fWJaBvHtHf4w0fqMCrOhK9A8c5GgbqRrIWF8GG/+Tbt4OPwsG0N3+JDYOsHATacJI0qkjIeG1g==
dependencies:
protobufjs "6.8.8"
semver "5.6.0"
diff --git a/examples/react_webpack/WORKSPACE b/examples/react_webpack/WORKSPACE
index 6d96bacaa3..8cfd8fb409 100644
--- a/examples/react_webpack/WORKSPACE
+++ b/examples/react_webpack/WORKSPACE
@@ -7,8 +7,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "build_bazel_rules_nodejs",
- sha256 = "55a25a762fcf9c9b88ab54436581e671bc9f4f523cb5a1bd32459ebec7be68a8",
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.2/rules_nodejs-3.2.2.tar.gz"],
+ sha256 = "dd7ea7efda7655c218ca707f55c3e1b9c68055a70c31a98f264b3445bc8f4cb1",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.3/rules_nodejs-3.2.3.tar.gz"],
)
load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install")
diff --git a/examples/react_webpack/package.json b/examples/react_webpack/package.json
index a792127b1e..c4be7f2de9 100644
--- a/examples/react_webpack/package.json
+++ b/examples/react_webpack/package.json
@@ -1,9 +1,9 @@
{
"private": true,
"devDependencies": {
- "@bazel/buildifier": "^4.0.0",
+ "@bazel/buildifier": "^4.0.1",
"@bazel/ibazel": "^0.14.0",
- "@bazel/typescript": "^3.2.1",
+ "@bazel/typescript": "^3.2.2",
"@types/react": "^16.9.5",
"@types/react-dom": "^16.9.1",
"css-loader": "^3.2.0",
diff --git a/examples/react_webpack/yarn.lock b/examples/react_webpack/yarn.lock
index a53093cba1..b1c736fef9 100644
--- a/examples/react_webpack/yarn.lock
+++ b/examples/react_webpack/yarn.lock
@@ -2,20 +2,20 @@
# yarn lockfile v1
-"@bazel/buildifier@^4.0.0":
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/@bazel/buildifier/-/buildifier-4.0.0.tgz#c99fb21295c7e2858fa176c2b950c589217ae8ac"
- integrity sha512-e242AK+shp+5bpAc9l93pmG5YRYRfM0INV3gfbdxNeBxccx1MJUagaiwxqAV+Mw55zk92gsb99f2TAc9tt6C7w==
+"@bazel/buildifier@^4.0.1":
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/@bazel/buildifier/-/buildifier-4.0.1.tgz#52cfbad5cbb86e9183a29dde2370cd465730ea0d"
+ integrity sha512-BTmtvJbeeEVrqRApI1gr5hvPgYcHLpdGJ5EXNXEWO692ztMPSj5fB/dH0xUlaW45jn6LimYx8ymqTMhj3538og==
"@bazel/ibazel@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@bazel/ibazel/-/ibazel-0.14.0.tgz#86fa0002bed2ce1123b7ad98d4dd4623a0d93244"
integrity sha512-s0gyec6lArcRDwVfIP6xpY8iEaFpzrSpyErSppd3r2O49pOEg7n6HGS/qJ8ncvme56vrDk6crl/kQ6VAdEO+rg==
-"@bazel/typescript@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.2.1.tgz#564849e2f05387612d13ef64304b7a7582bd107a"
- integrity sha512-2KgMqKcbqL89WWWVC2iwTCS0tMWmQ4LpQgFhaF3Lp56Edl0nv/fy0TOu+waw2Qs2rTBbTVKhk5/9DRiqJmOd2g==
+"@bazel/typescript@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.2.2.tgz#b53ee35dee68952abd711a2d472485748c7521c1"
+ integrity sha512-fTPtX3kZAQ50fWJaBvHtHf4w0fqMCrOhK9A8c5GgbqRrIWF8GG/+Tbt4OPwsG0N3+JDYOsHATacJI0qkjIeG1g==
dependencies:
protobufjs "6.8.8"
semver "5.6.0"
diff --git a/examples/vendored_node/WORKSPACE b/examples/vendored_node/WORKSPACE
index 193b49b5cf..1322f9fb0e 100644
--- a/examples/vendored_node/WORKSPACE
+++ b/examples/vendored_node/WORKSPACE
@@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "build_bazel_rules_nodejs",
- sha256 = "55a25a762fcf9c9b88ab54436581e671bc9f4f523cb5a1bd32459ebec7be68a8",
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.2/rules_nodejs-3.2.2.tar.gz"],
+ sha256 = "dd7ea7efda7655c218ca707f55c3e1b9c68055a70c31a98f264b3445bc8f4cb1",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.3/rules_nodejs-3.2.3.tar.gz"],
)
http_archive(
diff --git a/examples/vendored_node/package-lock.json b/examples/vendored_node/package-lock.json
index 2553dda0f5..d640f83938 100644
--- a/examples/vendored_node/package-lock.json
+++ b/examples/vendored_node/package-lock.json
@@ -5,14 +5,14 @@
"packages": {
"": {
"devDependencies": {
- "@bazel/jasmine": "^3.2.1",
+ "@bazel/jasmine": "^3.2.2",
"jasmine": "^3.5.0"
}
},
"node_modules/@bazel/jasmine": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@bazel/jasmine/-/jasmine-3.2.1.tgz",
- "integrity": "sha512-VPz4AuK0DTk8kyiUzWrh36zGyaX1Yvq1vTNvc0TM8cXsQPRNsQbFTmQsy/y4quLvdJfk8P1qP9N95gqqkz9M9Q==",
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/@bazel/jasmine/-/jasmine-3.2.2.tgz",
+ "integrity": "sha512-fSz0fRdk9IgyN/9Ietzasdp2QAhMGz/E4LKdiu+WyZrPjwd06zQ4ypb3DzzT1g+M/7NXJqV8X6ahTGQMrm/Rpw==",
"dev": true,
"hasInstallScript": true,
"dependencies": {
@@ -747,9 +747,9 @@
},
"dependencies": {
"@bazel/jasmine": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@bazel/jasmine/-/jasmine-3.2.1.tgz",
- "integrity": "sha512-VPz4AuK0DTk8kyiUzWrh36zGyaX1Yvq1vTNvc0TM8cXsQPRNsQbFTmQsy/y4quLvdJfk8P1qP9N95gqqkz9M9Q==",
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/@bazel/jasmine/-/jasmine-3.2.2.tgz",
+ "integrity": "sha512-fSz0fRdk9IgyN/9Ietzasdp2QAhMGz/E4LKdiu+WyZrPjwd06zQ4ypb3DzzT1g+M/7NXJqV8X6ahTGQMrm/Rpw==",
"dev": true,
"requires": {
"c8": "~7.5.0",
diff --git a/examples/vendored_node/package.json b/examples/vendored_node/package.json
index ec3a724a19..178144f4c0 100644
--- a/examples/vendored_node/package.json
+++ b/examples/vendored_node/package.json
@@ -1,7 +1,7 @@
{
"private": true,
"devDependencies": {
- "@bazel/jasmine": "^3.2.1",
+ "@bazel/jasmine": "^3.2.2",
"jasmine": "^3.5.0"
},
"scripts": {
diff --git a/examples/vendored_node_and_yarn/WORKSPACE b/examples/vendored_node_and_yarn/WORKSPACE
index d48d9172e3..0bf58d8fad 100644
--- a/examples/vendored_node_and_yarn/WORKSPACE
+++ b/examples/vendored_node_and_yarn/WORKSPACE
@@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "build_bazel_rules_nodejs",
- sha256 = "55a25a762fcf9c9b88ab54436581e671bc9f4f523cb5a1bd32459ebec7be68a8",
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.2/rules_nodejs-3.2.2.tar.gz"],
+ sha256 = "dd7ea7efda7655c218ca707f55c3e1b9c68055a70c31a98f264b3445bc8f4cb1",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.3/rules_nodejs-3.2.3.tar.gz"],
)
http_archive(
diff --git a/examples/vendored_node_and_yarn/package.json b/examples/vendored_node_and_yarn/package.json
index ec3a724a19..178144f4c0 100644
--- a/examples/vendored_node_and_yarn/package.json
+++ b/examples/vendored_node_and_yarn/package.json
@@ -1,7 +1,7 @@
{
"private": true,
"devDependencies": {
- "@bazel/jasmine": "^3.2.1",
+ "@bazel/jasmine": "^3.2.2",
"jasmine": "^3.5.0"
},
"scripts": {
diff --git a/examples/vendored_node_and_yarn/yarn.lock b/examples/vendored_node_and_yarn/yarn.lock
index b0243afd9a..6861f3afbb 100644
--- a/examples/vendored_node_and_yarn/yarn.lock
+++ b/examples/vendored_node_and_yarn/yarn.lock
@@ -2,10 +2,10 @@
# yarn lockfile v1
-"@bazel/jasmine@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-3.2.1.tgz#3a29b4a04222de2add06a57d771b9c2ecc97af80"
- integrity sha512-VPz4AuK0DTk8kyiUzWrh36zGyaX1Yvq1vTNvc0TM8cXsQPRNsQbFTmQsy/y4quLvdJfk8P1qP9N95gqqkz9M9Q==
+"@bazel/jasmine@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-3.2.2.tgz#e4c088d8267f83c4c718ac46e5923f549d47fef6"
+ integrity sha512-fSz0fRdk9IgyN/9Ietzasdp2QAhMGz/E4LKdiu+WyZrPjwd06zQ4ypb3DzzT1g+M/7NXJqV8X6ahTGQMrm/Rpw==
dependencies:
c8 "~7.5.0"
jasmine-reporters "~2.3.2"
diff --git a/examples/vue/WORKSPACE b/examples/vue/WORKSPACE
index 2becff23b6..fda7554b87 100644
--- a/examples/vue/WORKSPACE
+++ b/examples/vue/WORKSPACE
@@ -7,8 +7,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "build_bazel_rules_nodejs",
- sha256 = "55a25a762fcf9c9b88ab54436581e671bc9f4f523cb5a1bd32459ebec7be68a8",
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.2/rules_nodejs-3.2.2.tar.gz"],
+ sha256 = "dd7ea7efda7655c218ca707f55c3e1b9c68055a70c31a98f264b3445bc8f4cb1",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.3/rules_nodejs-3.2.3.tar.gz"],
)
load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories", "npm_install")
diff --git a/examples/web_testing/WORKSPACE b/examples/web_testing/WORKSPACE
index e660ad4a36..519ea7691d 100644
--- a/examples/web_testing/WORKSPACE
+++ b/examples/web_testing/WORKSPACE
@@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "build_bazel_rules_nodejs",
- sha256 = "55a25a762fcf9c9b88ab54436581e671bc9f4f523cb5a1bd32459ebec7be68a8",
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.2/rules_nodejs-3.2.2.tar.gz"],
+ sha256 = "dd7ea7efda7655c218ca707f55c3e1b9c68055a70c31a98f264b3445bc8f4cb1",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.3/rules_nodejs-3.2.3.tar.gz"],
)
load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install")
diff --git a/examples/web_testing/package.json b/examples/web_testing/package.json
index f12d2c088f..530a31e41f 100644
--- a/examples/web_testing/package.json
+++ b/examples/web_testing/package.json
@@ -1,7 +1,7 @@
{
"devDependencies": {
- "@bazel/concatjs": "^3.2.1",
- "@bazel/typescript": "^3.2.1",
+ "@bazel/concatjs": "^3.2.2",
+ "@bazel/typescript": "^3.2.2",
"@types/jasmine": "2.8.2",
"@types/node": "11.11.1",
"karma": "~4.1.0",
diff --git a/examples/web_testing/yarn.lock b/examples/web_testing/yarn.lock
index b7bd175bcf..e05db11caa 100644
--- a/examples/web_testing/yarn.lock
+++ b/examples/web_testing/yarn.lock
@@ -2,19 +2,19 @@
# yarn lockfile v1
-"@bazel/concatjs@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/concatjs/-/concatjs-3.2.1.tgz#638210bf31011b1617e373624c61d9a10bd7f842"
- integrity sha512-1vYAI1Ugb5PJC/zIetdmx5jHxluhUGuUI9yJcrZYZ24hmSMg+lkcrPlkhwbjtvF26JIDf2g5s5/woDcDrydrjg==
+"@bazel/concatjs@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/concatjs/-/concatjs-3.2.2.tgz#a5b0f15e3bd074c06a51cb25ef64b7e1866ba760"
+ integrity sha512-k4JrIF1q9Oe0j90yuduxJO78SUNlYRBEzQCQS+aNvmm5YcrSJ7dZ5H0pjZ2W41MRT8L9S0Ei6TSMERkAcjD1Jw==
dependencies:
protobufjs "6.8.8"
source-map-support "0.5.9"
tsutils "2.27.2"
-"@bazel/typescript@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.2.1.tgz#564849e2f05387612d13ef64304b7a7582bd107a"
- integrity sha512-2KgMqKcbqL89WWWVC2iwTCS0tMWmQ4LpQgFhaF3Lp56Edl0nv/fy0TOu+waw2Qs2rTBbTVKhk5/9DRiqJmOd2g==
+"@bazel/typescript@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.2.2.tgz#b53ee35dee68952abd711a2d472485748c7521c1"
+ integrity sha512-fTPtX3kZAQ50fWJaBvHtHf4w0fqMCrOhK9A8c5GgbqRrIWF8GG/+Tbt4OPwsG0N3+JDYOsHATacJI0qkjIeG1g==
dependencies:
protobufjs "6.8.8"
semver "5.6.0"
diff --git a/examples/webapp/WORKSPACE b/examples/webapp/WORKSPACE
index 13189e90a6..0ecc9d8e3e 100644
--- a/examples/webapp/WORKSPACE
+++ b/examples/webapp/WORKSPACE
@@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "build_bazel_rules_nodejs",
- sha256 = "55a25a762fcf9c9b88ab54436581e671bc9f4f523cb5a1bd32459ebec7be68a8",
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.2/rules_nodejs-3.2.2.tar.gz"],
+ sha256 = "dd7ea7efda7655c218ca707f55c3e1b9c68055a70c31a98f264b3445bc8f4cb1",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.3/rules_nodejs-3.2.3.tar.gz"],
)
load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install")
diff --git a/examples/webapp/package.json b/examples/webapp/package.json
index d6caa252a5..3c14e23627 100644
--- a/examples/webapp/package.json
+++ b/examples/webapp/package.json
@@ -4,10 +4,10 @@
"@babel/cli": "^7.6.0",
"@babel/core": "^7.6.0",
"@babel/preset-env": "^7.6.0",
- "@bazel/protractor": "^3.2.1",
- "@bazel/rollup": "^3.2.1",
- "@bazel/terser": "^3.2.1",
- "@bazel/typescript": "^3.2.1",
+ "@bazel/protractor": "^3.2.2",
+ "@bazel/rollup": "^3.2.2",
+ "@bazel/terser": "^3.2.2",
+ "@bazel/typescript": "^3.2.2",
"http-server": "^0.11.1",
"mocha": "^6.2.1",
"protractor": "^5.4.2",
diff --git a/examples/webapp/yarn.lock b/examples/webapp/yarn.lock
index 4a6ca6fdb3..2f1f7ee2cc 100644
--- a/examples/webapp/yarn.lock
+++ b/examples/webapp/yarn.lock
@@ -655,25 +655,25 @@
lodash "^4.17.13"
to-fast-properties "^2.0.0"
-"@bazel/protractor@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/protractor/-/protractor-3.2.1.tgz#872340d6287043496242998640dca3f568a9f31b"
- integrity sha512-4jac5lCz2DeOWQ5P8KUZHUf7YEmJwBk7qllSDfHN3k0cUqWthZCvnclU8oRkLJ+LL9zdNkX1MpB4iLRDYUTl0Q==
+"@bazel/protractor@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/protractor/-/protractor-3.2.2.tgz#ec82bdf580e9ad3773f04886a875e5e4f6d0410a"
+ integrity sha512-eZyuPoad89uNF2ofkfF2j6cbJgZaV2FKi5PhA5VvCzrywnAQ9iKQUv3D3B6T9Vf5dgpyR52iJZKmF2KGFPjNhQ==
-"@bazel/rollup@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/rollup/-/rollup-3.2.1.tgz#c632d54298cf980fc0994a95349d938f8d0ee27c"
- integrity sha512-+vPpi/pjCmQP3TlsDfmZZMDCBDCq2aHFXRxVx78t+1Vjz8ZT1JFx6J65V9YEPrCUowjBhkgrO5dk3IXeOvwXJA==
+"@bazel/rollup@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/rollup/-/rollup-3.2.2.tgz#cf20aeb533c8464b90418cfd42e72d9f6c2c6f8f"
+ integrity sha512-At1YvE6connH6EHatxDE6I8hrk/sy6DOInHHrvr6q32AHMhTKiltC9qDexD2kXwJXD1n1Ioy3y/sA9fesjL6Ng==
-"@bazel/terser@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/terser/-/terser-3.2.1.tgz#0480cc6b00a7bf1d8c8763aa1eff267352768bf1"
- integrity sha512-aV20kqoYnpEEfx2l4ipFOSb5JgRmPVAvicOQBQ6eMqD7SGRrDDNVtjhemo11/RCJiZuUYNxoCo+itLBw4kNaPg==
+"@bazel/terser@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/terser/-/terser-3.2.2.tgz#90cd14f1c9d1c1784730adab5208dafa2342260a"
+ integrity sha512-RI5XBDQN72zikhIZXFrbVsWWdJ+B4W0YcQndahm87t+nu26hXcmpNfSJuMjVmVrFCEB4G/z7CxgHINQCGjRgxg==
-"@bazel/typescript@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.2.1.tgz#564849e2f05387612d13ef64304b7a7582bd107a"
- integrity sha512-2KgMqKcbqL89WWWVC2iwTCS0tMWmQ4LpQgFhaF3Lp56Edl0nv/fy0TOu+waw2Qs2rTBbTVKhk5/9DRiqJmOd2g==
+"@bazel/typescript@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.2.2.tgz#b53ee35dee68952abd711a2d472485748c7521c1"
+ integrity sha512-fTPtX3kZAQ50fWJaBvHtHf4w0fqMCrOhK9A8c5GgbqRrIWF8GG/+Tbt4OPwsG0N3+JDYOsHATacJI0qkjIeG1g==
dependencies:
protobufjs "6.8.8"
semver "5.6.0"
diff --git a/examples/worker/WORKSPACE b/examples/worker/WORKSPACE
index d2d5dd86ad..60d69a5faf 100644
--- a/examples/worker/WORKSPACE
+++ b/examples/worker/WORKSPACE
@@ -21,8 +21,8 @@ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "build_bazel_rules_nodejs",
- sha256 = "55a25a762fcf9c9b88ab54436581e671bc9f4f523cb5a1bd32459ebec7be68a8",
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.2/rules_nodejs-3.2.2.tar.gz"],
+ sha256 = "dd7ea7efda7655c218ca707f55c3e1b9c68055a70c31a98f264b3445bc8f4cb1",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.3/rules_nodejs-3.2.3.tar.gz"],
)
load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install")
diff --git a/examples/worker/package.json b/examples/worker/package.json
index 8e0bda5933..6445ac6419 100644
--- a/examples/worker/package.json
+++ b/examples/worker/package.json
@@ -1,6 +1,6 @@
{
"private": true,
"devDependencies": {
- "@bazel/worker": "^3.2.1"
+ "@bazel/worker": "^3.2.2"
}
}
diff --git a/examples/worker/yarn.lock b/examples/worker/yarn.lock
index 22b1da9799..fede4eeccd 100644
--- a/examples/worker/yarn.lock
+++ b/examples/worker/yarn.lock
@@ -2,10 +2,10 @@
# yarn lockfile v1
-"@bazel/worker@^3.2.1":
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/@bazel/worker/-/worker-3.2.1.tgz#da5a52e33ee636c5a38639aae7df8948f5d1ff42"
- integrity sha512-KR0YXsIGqOht/sjE6z+izmKh2oEN9CnQu6/JRwUCWIzQJZ0fDTbFVhexHO6DNVtOvPzFSojnTaMbCG5LcD5axA==
+"@bazel/worker@^3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@bazel/worker/-/worker-3.2.2.tgz#16bb809aaa59bf077836da5860bfbc478c66b835"
+ integrity sha512-fFEdePL4r2LWOzaIVOHOP89HUHZ/cEVZCb1d7SW55uaNEIo0l9iNOx+5thpAn0Woga51LBsMADuYNPk/hmSeIg==
dependencies:
protobufjs "6.8.8"
diff --git a/index.bzl b/index.bzl
index 8f210e334b..d5be2aa343 100644
--- a/index.bzl
+++ b/index.bzl
@@ -81,7 +81,7 @@ def yarn_install(**kwargs):
# against.
# This version should be updated together with the version of the Bazel
# in .bazelversion. This is asserted in //internal:bazel_version_test.
-BAZEL_VERSION = "3.6.0"
+BAZEL_VERSION = "4.0.0"
# Versions of Bazel which users should be able to use.
# Ensures we don't break backwards-compatibility,
@@ -89,8 +89,9 @@ BAZEL_VERSION = "3.6.0"
# These are the versions used when testing nested workspaces with
# bazel_integration_test.
SUPPORTED_BAZEL_VERSIONS = [
- # TODO: add LTS versions of bazel like 1.0.0, 2.0.0
BAZEL_VERSION,
+ "3.6.0",
+ "2.2.0",
]
def check_rules_nodejs_version(minimum_version_string):
diff --git a/internal/bazel_integration_test/bazel_integration_test.bzl b/internal/bazel_integration_test/bazel_integration_test.bzl
index 4da5770340..60d5f2a389 100644
--- a/internal/bazel_integration_test/bazel_integration_test.bzl
+++ b/internal/bazel_integration_test/bazel_integration_test.bzl
@@ -15,12 +15,10 @@
"""Bazel integration testing
"""
-load("@build_bazel_rules_nodejs//:index.bzl", "SUPPORTED_BAZEL_VERSIONS")
+load("@build_bazel_rules_nodejs//:index.bzl", "BAZEL_VERSION", "SUPPORTED_BAZEL_VERSIONS")
load("@build_bazel_rules_nodejs//packages:index.bzl", "NPM_PACKAGES")
load("//internal/common:windows_utils.bzl", "BATCH_RLOCATION_FUNCTION", "is_windows")
-BAZEL_BINARY = "@build_bazel_bazel_%s//:bazel_binary" % SUPPORTED_BAZEL_VERSIONS[0].replace(".", "_")
-
# Avoid using non-normalized paths (workspace/../other_workspace/path)
def _to_manifest_path(ctx, file):
if file.short_path.startswith("../"):
@@ -29,10 +27,6 @@ def _to_manifest_path(ctx, file):
return ctx.workspace_name + "/" + file.short_path
def _bazel_integration_test(ctx):
- if len(SUPPORTED_BAZEL_VERSIONS) > 1:
- fail("""
- bazel_integration_test doesn't support multiple Bazel versions to test against yet.
- """)
if len(ctx.files.workspace_files) == 0:
fail("""
No files were found to run under integration testing. See comment in /.bazelrc.
@@ -126,7 +120,7 @@ ${{COMMAND}}
BAZEL_INTEGRATION_TEST_ATTRS = {
"bazel_binary": attr.label(
- default = BAZEL_BINARY,
+ mandatory = True,
doc = """The bazel binary files to test against.
It is assumed by the test runner that the bazel binary is found at label_workspace/bazel (wksp/bazel.exe on Windows)""",
@@ -275,16 +269,18 @@ def rules_nodejs_integration_test(name, **kwargs):
for key in npm_packages:
_tar_npm_packages[key + ".tar"] = npm_packages[key]
- bazel_integration_test(
- name = name,
- check_npm_packages = NPM_PACKAGES,
- repositories = repositories,
- # some bazelrc imports are outside of the nested workspace so
- # the test runner will handle these as special cases
- bazelrc_imports = {
- "//:common.bazelrc": "import %workspace%/../../common.bazelrc",
- },
- npm_packages = _tar_npm_packages,
- tags = tags,
- **kwargs
- )
+ for bazel_version in SUPPORTED_BAZEL_VERSIONS:
+ bazel_integration_test(
+ name = "%s_%s" % (name, "bazel" + bazel_version) if bazel_version != BAZEL_VERSION else name,
+ check_npm_packages = NPM_PACKAGES,
+ repositories = repositories,
+ bazel_binary = "@build_bazel_bazel_%s//:bazel_binary" % bazel_version.replace(".", "_"),
+ # some bazelrc imports are outside of the nested workspace so
+ # the test runner will handle these as special cases
+ bazelrc_imports = {
+ "//:common.bazelrc": "import %workspace%/../../common.bazelrc",
+ },
+ npm_packages = _tar_npm_packages,
+ tags = tags,
+ **kwargs
+ )
diff --git a/internal/common/download.bzl b/internal/common/download.bzl
new file mode 100644
index 0000000000..5fd4fb0d6c
--- /dev/null
+++ b/internal/common/download.bzl
@@ -0,0 +1,43 @@
+"Repository rule wrapper around Bazel's downloader"
+
+def _bazel_download(repository_ctx):
+ repository_ctx.file("BUILD.bazel", repository_ctx.attr.build_file_content)
+ repository_ctx.download(
+ output = repository_ctx.attr.output,
+ url = repository_ctx.attr.url,
+ integrity = repository_ctx.attr.integrity,
+ )
+
+bazel_download = repository_rule(
+ doc = """Utility to call Bazel downloader.
+
+ This is a simple pass-thru wrapper for Bazel's
+ [repository_ctx#download](https://docs.bazel.build/versions/master/skylark/lib/repository_ctx.html#download)
+ function.
+ """,
+ implementation = _bazel_download,
+ attrs = {
+ "build_file_content": attr.string(
+ doc = "Content for the generated BUILD file.",
+ mandatory = True,
+ ),
+ "integrity": attr.string(
+ doc = """
+ Expected checksum of the file downloaded, in Subresource Integrity format.
+ This must match the checksum of the file downloaded.
+ It is a security risk to omit the checksum as remote files can change.
+ At best omitting this field will make your build non-hermetic.
+ It is optional to make development easier but should be set before shipping.
+ """,
+ mandatory = True,
+ ),
+ "output": attr.string(
+ doc = "path to the output file, relative to the repository directory",
+ mandatory = True,
+ ),
+ "url": attr.string_list(
+ doc = "List of mirror URLs referencing the same file.",
+ mandatory = True,
+ ),
+ },
+)
diff --git a/internal/common/module_mappings.bzl b/internal/common/module_mappings.bzl
index c344ed3065..9f14b95f18 100644
--- a/internal/common/module_mappings.bzl
+++ b/internal/common/module_mappings.bzl
@@ -74,6 +74,8 @@ def _get_module_mappings(target, ctx):
# the runfiles directory. This requires the workspace_name to be prefixed on
# each module root.
mr = "/".join([p for p in [workspace_name, target.label.package] if p])
+ if hasattr(ctx.rule.attr, "strip_prefix") and ctx.rule.attr.strip_prefix:
+ mr += "/" + ctx.rule.attr.strip_prefix
if hasattr(ctx.rule.attr, "module_root") and ctx.rule.attr.module_root and ctx.rule.attr.module_root != ".":
if ctx.rule.attr.module_root.endswith(".ts"):
# Validate that sources are underneath the module root.
diff --git a/internal/js_library/js_library.bzl b/internal/js_library/js_library.bzl
index 5fcce1486a..b7d526b75c 100644
--- a/internal/js_library/js_library.bzl
+++ b/internal/js_library/js_library.bzl
@@ -98,6 +98,10 @@ _ATTRS = {
),
"package_name": attr.string(),
"srcs": attr.label_list(allow_files = True),
+ "strip_prefix": attr.string(
+ doc = "Path components to strip from the start of the package import path",
+ default = "",
+ ),
}
AmdNamesInfo = provider(
@@ -208,7 +212,9 @@ def _impl(ctx):
files = depset(transitive = files_depsets),
runfiles = ctx.runfiles(
files = all_files,
- transitive_files = depset(transitive = files_depsets),
+ transitive_files = depset(
+ transitive = files_depsets + typings_depsets,
+ ),
),
),
AmdNamesInfo(names = ctx.attr.amd_names),
@@ -223,7 +229,27 @@ def _impl(ctx):
]
if ctx.attr.package_name:
- path = "/".join([p for p in [ctx.bin_dir.path, ctx.label.workspace_root, ctx.label.package] if p])
+ path = "/".join([
+ p
+ for p in [ctx.bin_dir.path, ctx.label.workspace_root, ctx.label.package]
+ if p
+ ])
+
+ # Strip a prefix from the package require path
+ if ctx.attr.strip_prefix:
+ path += "/" + ctx.attr.strip_prefix
+
+ # Check that strip_prefix contains at least one src path
+ check_prefix = "/".join([p for p in [ctx.label.package, ctx.attr.strip_prefix] if p])
+ prefix_contains_src = False
+ for file in all_files:
+ if file.short_path.startswith(check_prefix):
+ prefix_contains_src = True
+ break
+
+ if not prefix_contains_src:
+ fail("js_library %s strip_prefix path does not contain any of the provided sources" % ctx.label)
+
providers.append(LinkablePackageInfo(
package_name = ctx.attr.package_name,
path = path,
@@ -339,6 +365,7 @@ def js_library(
srcs: the list of files that comprise the package
package_name: the name it will be imported by. Should match the "name" field in the package.json file.
deps: other targets that provide JavaScript code
+ strip_prefix: path components to strip from the start of the package import path
**kwargs: used for undocumented legacy features
"""
diff --git a/internal/js_library/test/strip_prefix/BUILD.bazel b/internal/js_library/test/strip_prefix/BUILD.bazel
new file mode 100644
index 0000000000..400b7f7856
--- /dev/null
+++ b/internal/js_library/test/strip_prefix/BUILD.bazel
@@ -0,0 +1,17 @@
+load("//:index.bzl", "js_library", "nodejs_test")
+
+js_library(
+ name = "stripped_library",
+ package_name = "stripped_library",
+ srcs = ["library/file.js"],
+ strip_prefix = "library",
+)
+
+nodejs_test(
+ name = "test",
+ data = [
+ "test.js",
+ ":stripped_library",
+ ],
+ entry_point = "test.js",
+)
diff --git a/internal/js_library/test/strip_prefix/library/file.js b/internal/js_library/test/strip_prefix/library/file.js
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/internal/js_library/test/strip_prefix/test.js b/internal/js_library/test/strip_prefix/test.js
new file mode 100644
index 0000000000..0eb4118c05
--- /dev/null
+++ b/internal/js_library/test/strip_prefix/test.js
@@ -0,0 +1,9 @@
+// Try to load on unstripped path, this should fail
+try {
+ require("stripped_library/library/file");
+} catch (exc) {
+ if (exc.code !== 'MODULE_NOT_FOUND') throw exc;
+}
+
+// Load with the stripped path, this should succeed
+require("stripped_library/file");
diff --git a/internal/node/launcher.sh b/internal/node/launcher.sh
index d602cd2f78..2dccaccc3f 100644
--- a/internal/node/launcher.sh
+++ b/internal/node/launcher.sh
@@ -353,6 +353,9 @@ else
MAIN=TEMPLATED_entry_point_manifest_path
fi
fi
+ # Always set up source-map-support using our vendored copy, just like the require_patch_script
+ register_source_map_support=$(rlocation build_bazel_rules_nodejs/third_party/github.com/source-map-support/register.js)
+ LAUNCHER_NODE_OPTIONS+=( "--require" "${register_source_map_support}" )
fi
# The EXPECTED_EXIT_CODE lets us write bazel tests which assert that
diff --git a/internal/node/npm_package_bin.bzl b/internal/node/npm_package_bin.bzl
index ff21624cd7..14a679bb87 100644
--- a/internal/node/npm_package_bin.bzl
+++ b/internal/node/npm_package_bin.bzl
@@ -103,6 +103,9 @@ def npm_package_bin(
env = {},
outs = [],
args = [],
+ stderr = None,
+ stdout = None,
+ exit_code_out = None,
output_dir = False,
link_workspace_root = False,
chdir = None,
@@ -220,6 +223,9 @@ def npm_package_bin(
args = args,
chdir = chdir,
env = env,
+ stdout = stdout,
+ stderr = stderr,
+ exit_code_out = exit_code_out,
output_dir = output_dir,
tool = tool,
link_workspace_root = link_workspace_root,
diff --git a/internal/node/test/sourcemap/BUILD.bazel b/internal/node/test/sourcemap/BUILD.bazel
new file mode 100644
index 0000000000..e6a938724f
--- /dev/null
+++ b/internal/node/test/sourcemap/BUILD.bazel
@@ -0,0 +1,22 @@
+load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary", "nodejs_test", "npm_package_bin")
+
+nodejs_binary(
+ name = "bin",
+ entry_point = "index.js",
+)
+
+npm_package_bin(
+ name = "run",
+ # throw away the exit code, so this action succeeds despite the program exiting 1
+ exit_code_out = "ignore_exit_code",
+ # this is where the stack trace appears
+ stderr = "actual",
+ stdout = "ignore_stdout",
+ tool = "bin",
+)
+
+nodejs_test(
+ name = "test",
+ data = ["actual"],
+ entry_point = "test.js",
+)
diff --git a/internal/node/test/sourcemap/index.js b/internal/node/test/sourcemap/index.js
new file mode 100644
index 0000000000..eaddcbe67d
--- /dev/null
+++ b/internal/node/test/sourcemap/index.js
@@ -0,0 +1,3 @@
+/* clang-format off */'use strict';
+throw new Error('here');
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsTUFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbInRocm93IG5ldyBFcnJvcihcImhlcmVcIik7XG4iXX0=
diff --git a/internal/node/test/sourcemap/test.js b/internal/node/test/sourcemap/test.js
new file mode 100644
index 0000000000..c5cc967572
--- /dev/null
+++ b/internal/node/test/sourcemap/test.js
@@ -0,0 +1,8 @@
+const runfiles = require(process.env['BAZEL_NODE_RUNFILES_HELPER']);
+
+const actual = require('fs').readFileSync(runfiles.resolvePackageRelative('actual'));
+
+require('assert').ok(actual.includes('index.ts:1'), `source map support is not installed
+ expected stack trace to point to line 1 of index.ts but instead got
+ ${actual}
+`);
diff --git a/internal/npm_tarballs/BUILD.bazel b/internal/npm_tarballs/BUILD.bazel
new file mode 100644
index 0000000000..351228ae62
--- /dev/null
+++ b/internal/npm_tarballs/BUILD.bazel
@@ -0,0 +1 @@
+# No bazel targets in this package
diff --git a/internal/npm_tarballs/README.md b/internal/npm_tarballs/README.md
new file mode 100644
index 0000000000..ab083afec0
--- /dev/null
+++ b/internal/npm_tarballs/README.md
@@ -0,0 +1,68 @@
+# npm_tarballs
+
+This is an expermental feature inspired by external package fetching in rules_go and others.
+
+See the design doc: https://hackmd.io/gu2Nj0TKS068LKAf8KanuA
+
+## Rules
+
+`translate_package_lock.bzl` takes a package-lock.json file and produces a Starlark representation of downloader rules for each package listed.
+
+Currently this is implemented only for npm v7 produced lockfiles (version 2 of the spec) but it could be ported to any other lockfile format.
+
+For example, for https://github.com/bazelbuild/rules_nodejs/blob/stable/packages/node-patches/package-lock.json we produce an `index.bzl` file like:
+
+```
+"Generated by package_lock.bzl from //packages/node-patches:package-lock.json"
+
+load("@build_bazel_rules_nodejs//internal/common:download.bzl", "bazel_download")
+
+def npm_repositories():
+ """Define external repositories to fetch each tarball individually from npm on-demand.
+ """
+
+# [...]
+
+ bazel_download(
+ name = "npm_typescript-3.5.3",
+ output = "typescript-3.5.3.tgz",
+ integrity = "sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==",
+ url = ["https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz"],
+ build_file_content = """"Generated by package_lock.bzl"
+
+load("@build_bazel_rules_nodejs//internal/npm_tarballs:npm_tarball.bzl", "npm_tarball")
+
+npm_tarball(
+ name = "npm_typescript-3.5.3",
+ src = "typescript-3.5.3.tgz",
+ package_name = "typescript",
+ deps = [],
+ visibility = ["//visibility:public"],
+)
+
+"""
+ )
+
+# [...]
+```
+
+This generated index.bzl can then be loaded in the WORKSPACE and the `npm_repositories` macro called.
+This then declares `bazel_download` rules that are themselves able to fetch packages on-demand.
+We also supply a BUILD file content for each of these packages, using a minimal `npm_tarball` rule that
+represents the location and dependencies of the downloaded .tgz file.
+
+In addition, we give some syntax sugar.
+In the repo produced by `translate_package_lock` we provide "catch-all" targets
+`//:dependencies` and `//:devDependencies` that depend on all tarballs so listed in the package-lock.json.
+For direct dependencies, we also produce a `//somepackage` target that aliases the version of `somepackage` depended on.
+In the above example, that means the user can dep on `@npm_repositories//typescript` rather than
+`@npm_typescript-3.5.3` because we know the package depends on version 3.5.3.
+
+## Future work
+
+So far the resulting tarballs aren't used by anything in rules_nodejs (nothing consumes `NpmTarballInfo`).
+In later work we'll explore what other rules might want to use the tarballs,
+such as a pnpm_install rule that uses pnpm semantics to just symlink things into a tree.
+Or maybe an npm_install rule, one for each package, that unpacks the tarballs and runs the postinstall logic on each.
+We believe some experimentation will be required to find a good path forward that uses the download-as-needed semantics here,
+while keeping most existing semantics of rules_nodejs rules working.
diff --git a/internal/npm_tarballs/npm_tarball.bzl b/internal/npm_tarballs/npm_tarball.bzl
new file mode 100644
index 0000000000..1bcf4e701e
--- /dev/null
+++ b/internal/npm_tarballs/npm_tarball.bzl
@@ -0,0 +1,64 @@
+"Info about npm tarball files"
+
+NpmTarballInfo = provider(
+ doc = "Describe tarballs downloaded from npm registry",
+ fields = {
+ "tarballs": "depset of needed tarballs to be able to npm install",
+ },
+)
+
+_DOC = """This rule is a simple reference to a file downloaded from npm.
+
+It is not meant to be used on its own, rather it is generated into BUILD files in external repos
+and its provider can then be referenced in actions by tools like pnpm that need to find the .tgz files.
+"""
+
+_ATTRS = {
+ "deps": attr.label_list(
+ doc = "Other npm_tarball rules for packages this one depends on",
+ providers = [NpmTarballInfo],
+ ),
+ "package_name": attr.string(
+ doc = "the name field from the package.json of the package this tarball contains",
+ ),
+ "src": attr.label(
+ doc = "The downloaded tarball",
+ allow_single_file = [".tgz"],
+ ),
+}
+
+def _npm_tarball(ctx):
+ # Allow aggregate rules like "all_dependencies" to have only deps but no tarball
+ if ctx.attr.src and not ctx.attr.package_name:
+ fail("when given a src, must also tell the package_name for it")
+ direct = []
+ direct_files = []
+ if ctx.attr.src:
+ direct = [struct(
+ package_name = ctx.attr.package_name,
+ tarball = ctx.file.src,
+ )]
+ direct_files = [ctx.file.src]
+
+ transitive = [d[NpmTarballInfo].tarballs for d in ctx.attr.deps]
+ transitive_files = []
+ for dset in transitive:
+ for info in dset.to_list():
+ transitive_files.append(info.tarball)
+ return [
+ NpmTarballInfo(tarballs = depset(
+ direct,
+ transitive = transitive,
+ )),
+ # For testing
+ OutputGroupInfo(
+ direct = direct_files,
+ transitive = transitive_files,
+ ),
+ ]
+
+npm_tarball = rule(
+ implementation = _npm_tarball,
+ attrs = _ATTRS,
+ doc = _DOC,
+)
diff --git a/internal/npm_tarballs/test/BUILD.bazel b/internal/npm_tarballs/test/BUILD.bazel
new file mode 100644
index 0000000000..f806666c31
--- /dev/null
+++ b/internal/npm_tarballs/test/BUILD.bazel
@@ -0,0 +1,58 @@
+load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_test")
+
+# In normal usage, some other rule would extract the NpmTarballInfo
+# For testing we simply want to grab the file
+filegroup(
+ name = "get_typescript",
+ # the internal/node-patches package-lock.json depends on this version of typescript
+ srcs = ["@npm_typescript-3.5.3"],
+ output_group = "direct",
+)
+
+nodejs_test(
+ name = "test_some_package_fetched",
+ data = [":get_typescript"],
+ entry_point = "test_some_package_fetched.js",
+)
+
+filegroup(
+ name = "get_typescript_alias",
+ # Since typescript is a direct dependency, we can point to the version used by this package
+ # without having to specify (it's an alias)
+ srcs = ["@npm_node_patches_lock//typescript"],
+ output_group = "direct",
+)
+
+# Run the same test again but point to this filegroup to be sure the same typescript was there
+nodejs_test(
+ name = "test_alias",
+ data = [":get_typescript_alias"],
+ entry_point = "test_some_package_fetched.js",
+)
+
+filegroup(
+ name = "get_all_devdeps",
+ # Check that there's also a syntax-sugar for "all the devDependencies listed"
+ srcs = ["@npm_node_patches_lock//:devDependencies"],
+ output_group = "transitive",
+)
+
+# Run that same test again, typescript should be in here
+nodejs_test(
+ name = "test_alldevdeps",
+ data = [":get_all_devdeps"],
+ entry_point = "test_some_package_fetched.js",
+)
+
+filegroup(
+ name = "get_ansi-align",
+ # According to package-lock.json, it depends on string-width@3.1.0
+ srcs = ["@npm_ansi-align-3.0.0"],
+ output_group = "transitive",
+)
+
+nodejs_test(
+ name = "test_dependencies_available",
+ data = [":get_ansi-align"],
+ entry_point = "test_dependencies_available.js",
+)
diff --git a/internal/npm_tarballs/test/test_dependencies_available.js b/internal/npm_tarballs/test/test_dependencies_available.js
new file mode 100644
index 0000000000..3d2ea210ab
--- /dev/null
+++ b/internal/npm_tarballs/test/test_dependencies_available.js
@@ -0,0 +1,6 @@
+const assert = require('assert');
+const {existsSync} = require('fs');
+const runfiles = require(process.env['BAZEL_NODE_RUNFILES_HELPER']);
+const tarPath = runfiles.resolve('npm_string-width-3.1.0/string-width-3.1.0.tgz');
+
+assert.ok(existsSync(tarPath));
diff --git a/internal/npm_tarballs/test/test_some_package_fetched.js b/internal/npm_tarballs/test/test_some_package_fetched.js
new file mode 100644
index 0000000000..fb5ea605c1
--- /dev/null
+++ b/internal/npm_tarballs/test/test_some_package_fetched.js
@@ -0,0 +1,12 @@
+const assert = require('assert');
+const {existsSync, statSync} = require('fs');
+const runfiles = require(process.env['BAZEL_NODE_RUNFILES_HELPER']);
+const tarPath = runfiles.resolve('npm_typescript-3.5.3/typescript-3.5.3.tgz');
+
+assert.ok(existsSync(tarPath));
+
+// The size of https://www.npmjs.com/package/typescript/v/3.5.3
+expectedSize = 7960741;
+assert.strictEqual(
+ statSync(tarPath).size, expectedSize,
+ `Expected to download the typescript 3.5.3 release which is ${expectedSize} bytes`);
diff --git a/internal/npm_tarballs/translate_package_lock.bzl b/internal/npm_tarballs/translate_package_lock.bzl
new file mode 100644
index 0000000000..5b50660b11
--- /dev/null
+++ b/internal/npm_tarballs/translate_package_lock.bzl
@@ -0,0 +1,144 @@
+"Use package-lock.json as input to Bazel fetching packages"
+
+_tarball_target_tmpl = """"Generated by package_lock.bzl"
+
+load("@build_bazel_rules_nodejs//internal/npm_tarballs:npm_tarball.bzl", "npm_tarball")
+
+npm_tarball(
+ name = "{name}",
+ src = "{src}",
+ package_name = "{package_name}",
+ deps = {deps},
+ visibility = ["//visibility:public"],
+)
+
+"""
+
+_alias_tmpl = """
+alias(
+ name = "%s",
+ actual = "%s",
+ visibility = ["//visibility:public"],
+)
+
+"""
+
+def _escape(package_name):
+ "Make a package name into a valid label without slash or at-sign"
+ return package_name.replace("/", "-").replace("@", "__")
+
+def _repo_name(package_name, version):
+ "Make an external repository name from a package name and a version"
+ return "npm_%s-%s" % (_escape(package_name), version)
+
+def _attr(name, value):
+ "Produce a key-value attribute indented 8 spaces"
+ return " " * 8 + "%s = \"%s\"," % (name, value)
+
+def _list_attr(name, value):
+ "Produce a key-value list-typed attribute indented 8 spaces"
+ return " " * 8 + "%s = %s," % (name, value)
+
+def _deps_sugar(deps, kind):
+ "Produce top-level targets that accumulate all the dependencies or devDependencies"
+ return [
+ "npm_tarball(",
+ " name = \"%s\"," % kind,
+ " deps = [",
+ ] + [" " * 8 + "\"//%s\"," % d for d in deps[kind]] + [
+ " ],",
+ " visibility = [\"//visibility:public\"],",
+ ")",
+ ]
+
+def _fetch_tarball(repository_ctx, bzl_out, packages):
+ "Produce an npm_fetch_tarball target"
+ for (name, dep) in packages["dependencies"].items():
+ if "resolved" not in dep.keys():
+ continue
+ target_name = _repo_name(name, dep["version"])
+ filename = _escape(name) + "-" + dep["version"] + ".tgz"
+ deps = []
+ if "dependencies" in dep.keys():
+ for (n, d) in dep["dependencies"].items():
+ deps.append("@" + _repo_name(n, d["version"]))
+ build_file_content = _tarball_target_tmpl.format(
+ name = target_name,
+ src = filename,
+ package_name = name,
+ deps = deps,
+ )
+
+ bzl_out.extend([
+ " " * 4 + "bazel_download(",
+ _attr("name", target_name),
+ _attr("output", filename),
+ _attr("integrity", dep["integrity"]),
+ _list_attr("url", [dep["resolved"]]),
+ " " * 8 + "build_file_content = \"\"\"" + build_file_content + "\"\"\"",
+ " " * 4 + ")",
+ ])
+
+def _translate_package_lock(repository_ctx):
+ build_content = [
+ "# Generated by package_lock.bzl from %s" % str(repository_ctx.attr.package_lock),
+ "",
+ """load("@build_bazel_rules_nodejs//internal/npm_tarballs:npm_tarball.bzl", "npm_tarball")""",
+ "",
+ ]
+ bzl_content = [
+ "\"Generated by package_lock.bzl from %s\"" % str(repository_ctx.attr.package_lock),
+ "",
+ """load("@build_bazel_rules_nodejs//internal/common:download.bzl", "bazel_download")""",
+ "",
+ "def npm_repositories():",
+ " \"\"\"Define external repositories to fetch each tarball individually from npm on-demand.",
+ " \"\"\"",
+ ]
+
+ # Make a fetch target for each tarball listed in the package_lock
+ lock_content = json.decode(repository_ctx.read(repository_ctx.attr.package_lock))
+ lock_version = lock_content["lockfileVersion"]
+ if lock_version < 2:
+ fail("translate_package_lock only works with npm 7 lockfiles (lockfileVersion >= 2), found %s" % lock_version)
+ _fetch_tarball(repository_ctx, bzl_content, lock_content)
+
+ # recurse two levels deeper (maybe we need to do more?)
+ version_lookup = {}
+ for (name, dep) in lock_content["dependencies"].items():
+ if "dependencies" in dep.keys():
+ _fetch_tarball(repository_ctx, bzl_content, dep)
+ for (n2, d2) in dep["dependencies"].items():
+ if "dependencies" in d2.keys():
+ _fetch_tarball(repository_ctx, bzl_content, d2)
+ if "version" in dep.keys():
+ version_lookup[name] = dep["version"]
+
+ # Generate syntax sugar aliases for direct deps
+ this_pkg = lock_content["packages"][""]
+ direct_deps = []
+ if "dependencies" in this_pkg:
+ direct_deps.extend(this_pkg["dependencies"])
+ build_content.extend(_deps_sugar(this_pkg, "dependencies"))
+ if "devDependencies" in this_pkg:
+ direct_deps.extend(this_pkg["devDependencies"])
+ build_content.extend(_deps_sugar(this_pkg, "devDependencies"))
+
+ repository_ctx.file("index.bzl", "\n".join(bzl_content))
+ repository_ctx.file("BUILD.bazel", "\n".join(build_content))
+ for dep in direct_deps:
+ version = version_lookup[dep]
+ if not version.startswith("file:"):
+ repository_ctx.file(dep + "/BUILD.bazel", _alias_tmpl % (dep.split("/")[-1], "@" + _repo_name(dep, version)))
+
+# FIXME: also provide an action rule that you can use with `bazel run` to create the npm_deps.bzl
+# in cases where you want to then edit it by hand
+
+translate_package_lock = repository_rule(
+ doc = """In WORKSPACE, create a new external repo containing a helper index.bzl
+ containing a loadable macro that fetches npm packages as needed""",
+ implementation = _translate_package_lock,
+ attrs = {
+ "package_lock": attr.label(mandatory = True),
+ },
+)
diff --git a/package.json b/package.json
index bbc72b0dab..320ba25a0a 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "@bazel/javascript",
"description": "Build JavaScript with Bazel",
- "version": "3.2.2",
+ "version": "3.2.3",
"keywords": [
"javascript",
"bazel"
@@ -50,7 +50,7 @@
"is-builtin-module": "3.0.0",
"jasmine": "~3.4.0",
"jasmine-core": "~3.4.0",
- "jasmine-reporters": "~2.3.2",
+ "jasmine-reporters": "~2.4.0",
"jest": "~25.3.0",
"jest-cli": "~25.3.0",
"jest-websocket-mock": "~2.0.2",
diff --git a/packages/concatjs/devserver/BUILD.bazel b/packages/concatjs/devserver/BUILD.bazel
index 9e3fc71d68..cd506081f7 100644
--- a/packages/concatjs/devserver/BUILD.bazel
+++ b/packages/concatjs/devserver/BUILD.bazel
@@ -74,40 +74,40 @@ filegroup(
config_setting(
name = "darwin_x64",
constraint_values = [
- "@bazel_tools//platforms:osx",
- "@bazel_tools//platforms:x86_64",
+ "@platforms//os:osx",
+ "@platforms//cpu:x86_64",
],
)
config_setting(
name = "linux_x64",
constraint_values = [
- "@bazel_tools//platforms:linux",
- "@bazel_tools//platforms:x86_64",
+ "@platforms//os:linux",
+ "@platforms//cpu:x86_64",
],
)
config_setting(
name = "linux_arm64",
constraint_values = [
- "@bazel_tools//platforms:linux",
- "@bazel_tools//platforms:aarch64",
+ "@platforms//os:linux",
+ "@platforms//cpu:aarch64",
],
)
config_setting(
name = "linux_s390x",
constraint_values = [
- "@bazel_tools//platforms:linux",
- "@bazel_tools//platforms:s390x",
+ "@platforms//os:linux",
+ "@platforms//cpu:s390x",
],
)
config_setting(
name = "windows_x64",
constraint_values = [
- "@bazel_tools//platforms:windows",
- "@bazel_tools//platforms:x86_64",
+ "@platforms//os:windows",
+ "@platforms//cpu:x86_64",
],
)
diff --git a/packages/create/index.js b/packages/create/index.js
index d8ada5150d..7288826690 100644
--- a/packages/create/index.js
+++ b/packages/create/index.js
@@ -157,8 +157,8 @@ workspace(
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "build_bazel_rules_nodejs",
- sha256 = "55a25a762fcf9c9b88ab54436581e671bc9f4f523cb5a1bd32459ebec7be68a8",
- urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.2/rules_nodejs-3.2.2.tar.gz"],
+ sha256 = "dd7ea7efda7655c218ca707f55c3e1b9c68055a70c31a98f264b3445bc8f4cb1",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.2.3/rules_nodejs-3.2.3.tar.gz"],
)
${pkgMgr === 'yarn' ? yarnInstallCmd : npmInstallCmd}`;
diff --git a/packages/esbuild/esbuild.bzl b/packages/esbuild/esbuild.bzl
index f5d9aa5911..ca64ee6694 100644
--- a/packages/esbuild/esbuild.bzl
+++ b/packages/esbuild/esbuild.bzl
@@ -54,7 +54,12 @@ def _esbuild_impl(ctx):
args = ctx.actions.args()
args.add("--bundle", entry_point.path)
- args.add("--sourcemap")
+
+ if len(ctx.attr.sourcemap) > 0:
+ args.add_joined(["--sourcemap", ctx.attr.sourcemap], join_with = "=")
+ else:
+ args.add("--sourcemap")
+
args.add("--preserve-symlinks")
args.add_joined(["--platform", ctx.attr.platform], join_with = "=")
args.add_joined(["--target", ctx.attr.target], join_with = "=")
@@ -87,8 +92,13 @@ def _esbuild_impl(ctx):
args.add_joined(["--outdir", js_out.path], join_with = "=")
else:
js_out = ctx.outputs.output
+ outputs.append(js_out)
+
js_out_map = ctx.outputs.output_map
- outputs.extend([js_out, js_out_map])
+ if ctx.attr.sourcemap != "inline":
+ if js_out_map == None:
+ fail("output_map must be specified if sourcemap is not set to 'inline'")
+ outputs.append(js_out_map)
if ctx.attr.format:
args.add_joined(["--format", ctx.attr.format], join_with = "=")
@@ -214,6 +224,14 @@ See https://esbuild.github.io/api/#splitting for more details
See https://esbuild.github.io/api/#platform for more details
""",
),
+ "sourcemap": attr.string(
+ values = ["external", "inline", "both", ""],
+ mandatory = False,
+ doc = """Defines where sourcemaps are output and how they are included in the bundle. By default, a separate `.js.map` file is generated and referenced by the bundle. If 'external', a separate `.js.map` file is generated but not referenced by the bundle. If 'inline', a sourcemap is generated and its contents are inlined into the bundle (and no external sourcemap file is created). If 'both', a sourcemap is inlined and a `.js.map` file is created.
+
+See https://esbuild.github.io/api/#sourcemap for more details
+ """,
+ ),
"sources_content": attr.bool(
mandatory = False,
default = False,
@@ -270,9 +288,13 @@ def esbuild_macro(name, output_dir = False, **kwargs):
**kwargs
)
else:
+ output_map = None
+ sourcemap = kwargs.get("sourcemap", None)
+ if sourcemap != "inline":
+ output_map = "%s.js.map" % name
esbuild(
name = name,
output = "%s.js" % name,
- output_map = "%s.js.map" % name,
+ output_map = output_map,
**kwargs
)
diff --git a/packages/esbuild/test/sourcemap/BUILD.bazel b/packages/esbuild/test/sourcemap/BUILD.bazel
new file mode 100644
index 0000000000..7138fc8f27
--- /dev/null
+++ b/packages/esbuild/test/sourcemap/BUILD.bazel
@@ -0,0 +1,55 @@
+load("//packages/esbuild/test:tests.bzl", "esbuild")
+load("//packages/jasmine:index.bzl", "jasmine_node_test")
+load("//packages/typescript:index.bzl", "ts_library")
+
+ts_library(
+ name = "main",
+ srcs = [
+ "main.ts",
+ ],
+ deps = [
+ "@npm//@types/node",
+ ],
+)
+
+esbuild(
+ name = "bundle_default",
+ args = ["--keep-names"],
+ entry_point = "main.ts",
+ deps = [":main"],
+)
+
+esbuild(
+ name = "bundle_inline",
+ args = ["--keep-names"],
+ entry_point = "main.ts",
+ sourcemap = "inline",
+ deps = [":main"],
+)
+
+esbuild(
+ name = "bundle_external",
+ args = ["--keep-names"],
+ entry_point = "main.ts",
+ sourcemap = "external",
+ deps = [":main"],
+)
+
+esbuild(
+ name = "bundle_both",
+ args = ["--keep-names"],
+ entry_point = "main.ts",
+ sourcemap = "both",
+ deps = [":main"],
+)
+
+jasmine_node_test(
+ name = "bundle_test",
+ srcs = ["bundle_test.js"],
+ data = [
+ ":bundle_both",
+ ":bundle_default",
+ ":bundle_external",
+ ":bundle_inline",
+ ],
+)
diff --git a/packages/esbuild/test/sourcemap/bundle_test.js b/packages/esbuild/test/sourcemap/bundle_test.js
new file mode 100644
index 0000000000..dd7ef34d5a
--- /dev/null
+++ b/packages/esbuild/test/sourcemap/bundle_test.js
@@ -0,0 +1,62 @@
+const {readFileSync, exists} = require('fs');
+const path = require('path');
+
+const helper = require(process.env.BAZEL_NODE_RUNFILES_HELPER);
+const locationBase = 'build_bazel_rules_nodejs/packages/esbuild/test/sourcemap/';
+
+// Location for :bundle_default
+const bundleDefaultLocation = helper.resolve(path.join(locationBase, 'bundle_default.js'));
+const bundleDefaultSourcemapLocation =
+ helper.resolve(path.join(locationBase, 'bundle_default.js.map'));
+
+// Location for :bundle_inline
+const bundleInlineLocation = helper.resolve(path.join(locationBase, 'bundle_inline.js'));
+
+// Location for :bundle_external
+const bundleExternalLocation = helper.resolve(path.join(locationBase, 'bundle_external.js'));
+const bundleExternalSourcemapLocation =
+ helper.resolve(path.join(locationBase, 'bundle_external.js.map'));
+
+// Location for :bundle_both
+const bundleBothLocation = helper.resolve(path.join(locationBase, 'bundle_both.js'));
+const bundleBothSourcemapLocation = helper.resolve(path.join(locationBase, 'bundle_both.js.map'));
+
+describe('esbuild sourcemap', () => {
+ it('creates an external sourcemap by default', () => {
+ const sourcemap = readFileSync(bundleDefaultSourcemapLocation, {encoding: 'utf8'});
+ expect(sourcemap).toContain(
+ '"sources": ["../../../../../../../packages/esbuild/test/sourcemap/main.ts"]');
+ });
+
+ it('does not inline the sourcemap by default', () => {
+ const bundle = readFileSync(bundleDefaultLocation, {encoding: 'utf8'});
+ expect(bundle).toContain('//# sourceMappingURL=bundle_default.js.map');
+ });
+
+ it('inlines the sourcemap when set to \'inline\'', () => {
+ const bundle = readFileSync(bundleInlineLocation, {encoding: 'utf8'});
+ expect(bundle).toContain('//# sourceMappingURL=data:application/json;base64');
+ });
+
+ it('has no sourcemap comment when set to \'external\'', () => {
+ const bundle = readFileSync(bundleExternalLocation, {encoding: 'utf8'});
+ expect(bundle).not.toContain('//# sourceMappingURL=');
+ });
+
+ it('creates an external sourcemap when set to \'external\'', () => {
+ const sourcemap = readFileSync(bundleExternalSourcemapLocation, {encoding: 'utf8'});
+ expect(sourcemap).toContain(
+ '"sources": ["../../../../../../../packages/esbuild/test/sourcemap/main.ts"]');
+ });
+
+ it('inlines the sourcemap when set to \'both\'', () => {
+ const bundle = readFileSync(bundleInlineLocation, {encoding: 'utf8'});
+ expect(bundle).toContain('//# sourceMappingURL=data:application/json;base64');
+ });
+
+ it('creates an external sourcemap when set to \'both\'', () => {
+ const sourcemap = readFileSync(bundleDefaultSourcemapLocation, {encoding: 'utf8'});
+ expect(sourcemap).toContain(
+ '"sources": ["../../../../../../../packages/esbuild/test/sourcemap/main.ts"]');
+ });
+})
diff --git a/packages/esbuild/test/sourcemap/main.ts b/packages/esbuild/test/sourcemap/main.ts
new file mode 100644
index 0000000000..7dabd31053
--- /dev/null
+++ b/packages/esbuild/test/sourcemap/main.ts
@@ -0,0 +1,8 @@
+export interface Foo {
+ x: number, y: string,
+}
+
+export const foo: Foo = {
+ x: 123,
+ y: 'hello',
+}
diff --git a/packages/jasmine/package.json b/packages/jasmine/package.json
index 38ecb48e33..e568cd0f3d 100644
--- a/packages/jasmine/package.json
+++ b/packages/jasmine/package.json
@@ -17,7 +17,7 @@
],
"main": "index.js",
"dependencies": {
- "jasmine-reporters": "~2.3.2",
+ "jasmine-reporters": "~2.4.0",
"c8": "~7.5.0"
},
"//1": "jasmine depends on jasmine-core, however since we require() it we need it hoisted to the top",
diff --git a/packages/node-patches/package-lock.json b/packages/node-patches/package-lock.json
index 30230aba31..446beb7a5c 100644
--- a/packages/node-patches/package-lock.json
+++ b/packages/node-patches/package-lock.json
@@ -1,8 +1,3431 @@
{
"name": "@bazel/node-patches",
"version": "0.0.0-PLACEHOLDER",
- "lockfileVersion": 1,
+ "lockfileVersion": 2,
"requires": true,
+ "packages": {
+ "": {
+ "name": "@bazel/node-patches",
+ "version": "0.0.0-PLACEHOLDER",
+ "license": "Apache-2.0",
+ "devDependencies": {
+ "@types/mocha": "^5.2.7",
+ "@types/node": "^12.12.4",
+ "@types/rimraf": "^2.0.3",
+ "c8": "^5.0.4",
+ "gts": "^1.1.0",
+ "inline-fixtures": "^1.1.0",
+ "mocha": "^6.2.2",
+ "prettier": "^1.19.1",
+ "rimraf": "^3.0.0",
+ "source-map-support": "^0.5.16",
+ "typescript": "~3.5.0"
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz",
+ "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/highlight": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/highlight": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz",
+ "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^2.0.0",
+ "esutils": "^2.0.2",
+ "js-tokens": "^4.0.0"
+ }
+ },
+ "node_modules/@bcoe/v8-coverage": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
+ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
+ "dev": true
+ },
+ "node_modules/@sindresorhus/is": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
+ "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@szmarczak/http-timer": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
+ "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
+ "dev": true,
+ "dependencies": {
+ "defer-to-connect": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@types/events": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz",
+ "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==",
+ "dev": true
+ },
+ "node_modules/@types/glob": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz",
+ "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==",
+ "dev": true,
+ "dependencies": {
+ "@types/events": "*",
+ "@types/minimatch": "*",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/is-windows": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/@types/is-windows/-/is-windows-0.2.0.tgz",
+ "integrity": "sha1-byTuSHMdMRaOpRBhDW3RXl/Jxv8=",
+ "dev": true
+ },
+ "node_modules/@types/istanbul-lib-coverage": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz",
+ "integrity": "sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg==",
+ "dev": true
+ },
+ "node_modules/@types/minimatch": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz",
+ "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==",
+ "dev": true
+ },
+ "node_modules/@types/mocha": {
+ "version": "5.2.7",
+ "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz",
+ "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==",
+ "dev": true
+ },
+ "node_modules/@types/node": {
+ "version": "12.12.4",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.4.tgz",
+ "integrity": "sha512-tJUH7//zNZ/539DH4cgZS3NsmW0b9ShDeRBzoCEMCEAlHn5WHUghOfHdycvpo4RCxxEPmQ3WfjDogh+DCCvuSg==",
+ "dev": true
+ },
+ "node_modules/@types/rimraf": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@types/rimraf/-/rimraf-2.0.3.tgz",
+ "integrity": "sha512-dZfyfL/u9l/oi984hEXdmAjX3JHry7TLWw43u1HQ8HhPv6KtfxnrZ3T/bleJ0GEvnk9t5sM7eePkgMqz3yBcGg==",
+ "dev": true,
+ "dependencies": {
+ "@types/glob": "*",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/ansi-align": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz",
+ "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^3.0.0"
+ }
+ },
+ "node_modules/ansi-align/node_modules/string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ansi-colors": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz",
+ "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ansi-escapes": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
+ "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "node_modules/array-find-index": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
+ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/arrify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+ "dev": true
+ },
+ "node_modules/boxen": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/boxen/-/boxen-3.2.0.tgz",
+ "integrity": "sha512-cU4J/+NodM3IHdSL2yN8bqYqnmlBTidDR4RC7nJs61ZmtGz8VZzM3HLQX0zY5mrSmPtR3xWwsq2jOUQqFZN8+A==",
+ "dev": true,
+ "dependencies": {
+ "ansi-align": "^3.0.0",
+ "camelcase": "^5.3.1",
+ "chalk": "^2.4.2",
+ "cli-boxes": "^2.2.0",
+ "string-width": "^3.0.0",
+ "term-size": "^1.2.0",
+ "type-fest": "^0.3.0",
+ "widest-line": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/boxen/node_modules/camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/boxen/node_modules/string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/browser-stdout": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
+ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
+ "dev": true
+ },
+ "node_modules/buffer-from": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
+ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
+ "dev": true
+ },
+ "node_modules/builtin-modules": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
+ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/c8": {
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/c8/-/c8-5.0.4.tgz",
+ "integrity": "sha512-MgWIJ3HYe4NTtqwD+v16OdHvfqSzSLOmsptMuUxkzsYMoZzEeUv3yVep2d84qFjgio/3WbVEd9bkYQCFSDKeMw==",
+ "dev": true,
+ "dependencies": {
+ "@bcoe/v8-coverage": "^0.2.3",
+ "find-up": "^4.0.0",
+ "foreground-child": "^2.0.0",
+ "furi": "^1.3.0",
+ "istanbul-lib-coverage": "^2.0.5",
+ "istanbul-lib-report": "^2.0.8",
+ "istanbul-reports": "^2.2.6",
+ "rimraf": "^3.0.0",
+ "test-exclude": "^5.2.3",
+ "v8-to-istanbul": "^3.2.3",
+ "yargs": "^14.0.0",
+ "yargs-parser": "^14.0.0"
+ },
+ "bin": {
+ "c8": "bin/c8.js"
+ },
+ "engines": {
+ "node": ">=10.12.0"
+ }
+ },
+ "node_modules/c8/node_modules/camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/c8/node_modules/find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/c8/node_modules/locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/c8/node_modules/p-limit": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
+ "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==",
+ "dev": true,
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/c8/node_modules/p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/c8/node_modules/p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/c8/node_modules/path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/c8/node_modules/rimraf": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz",
+ "integrity": "sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==",
+ "dev": true,
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/c8/node_modules/yargs-parser": {
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-14.0.0.tgz",
+ "integrity": "sha512-zn/Mnx+tbFjkCFUodEpjXckNS65NfpB5oyqOkDDEG/8uxlfLZJu2IoBLQFjukUkn9rBbGkVYNzrDh6qy4NUd3g==",
+ "dev": true,
+ "dependencies": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ },
+ "node_modules/cacheable-request": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
+ "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
+ "dev": true,
+ "dependencies": {
+ "clone-response": "^1.0.2",
+ "get-stream": "^5.1.0",
+ "http-cache-semantics": "^4.0.0",
+ "keyv": "^3.0.0",
+ "lowercase-keys": "^2.0.0",
+ "normalize-url": "^4.1.0",
+ "responselike": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cacheable-request/node_modules/get-stream": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz",
+ "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==",
+ "dev": true,
+ "dependencies": {
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cacheable-request/node_modules/lowercase-keys": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
+ "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/camelcase": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/camelcase-keys": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz",
+ "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=",
+ "dev": true,
+ "dependencies": {
+ "camelcase": "^4.1.0",
+ "map-obj": "^2.0.0",
+ "quick-lru": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/chardet": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
+ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
+ "dev": true
+ },
+ "node_modules/ci-info": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
+ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
+ "dev": true
+ },
+ "node_modules/cli-boxes": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz",
+ "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/cli-cursor": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
+ "dev": true,
+ "dependencies": {
+ "restore-cursor": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cli-width": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
+ "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
+ "dev": true
+ },
+ "node_modules/cliui": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
+ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^3.1.0",
+ "strip-ansi": "^5.2.0",
+ "wrap-ansi": "^5.1.0"
+ }
+ },
+ "node_modules/cliui/node_modules/string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/clone-response": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
+ "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
+ "dev": true,
+ "dependencies": {
+ "mimic-response": "^1.0.0"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
+ "node_modules/commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+ "dev": true
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
+ },
+ "node_modules/configstore": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/configstore/-/configstore-4.0.0.tgz",
+ "integrity": "sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ==",
+ "dev": true,
+ "dependencies": {
+ "dot-prop": "^4.1.0",
+ "graceful-fs": "^4.1.2",
+ "make-dir": "^1.0.0",
+ "unique-string": "^1.0.0",
+ "write-file-atomic": "^2.0.0",
+ "xdg-basedir": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/convert-source-map": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz",
+ "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==",
+ "dev": true,
+ "dependencies": {
+ "safe-buffer": "~5.1.1"
+ }
+ },
+ "node_modules/convert-source-map/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true
+ },
+ "node_modules/cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^4.0.1",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ },
+ "node_modules/crypto-random-string": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz",
+ "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/currently-unhandled": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
+ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
+ "dev": true,
+ "dependencies": {
+ "array-find-index": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/decamelize-keys": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz",
+ "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=",
+ "dev": true,
+ "dependencies": {
+ "decamelize": "^1.1.0",
+ "map-obj": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/decamelize-keys/node_modules/map-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/decompress-response": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
+ "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
+ "dev": true,
+ "dependencies": {
+ "mimic-response": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/defer-to-connect": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.0.2.tgz",
+ "integrity": "sha512-k09hcQcTDY+cwgiwa6PYKLm3jlagNzQ+RSvhjzESOGOx+MNOuXkxTfEvPrO1IOQ81tArCFYQgi631clB70RpQw==",
+ "dev": true
+ },
+ "node_modules/define-properties": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
+ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "dev": true,
+ "dependencies": {
+ "object-keys": "^1.0.12"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/diff": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz",
+ "integrity": "sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.3.1"
+ }
+ },
+ "node_modules/dot-prop": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz",
+ "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==",
+ "dev": true,
+ "dependencies": {
+ "is-obj": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/duplexer3": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
+ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
+ "dev": true
+ },
+ "node_modules/emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "dev": true
+ },
+ "node_modules/end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "dev": true,
+ "dependencies": {
+ "once": "^1.4.0"
+ }
+ },
+ "node_modules/error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dev": true,
+ "dependencies": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "node_modules/es-abstract": {
+ "version": "1.16.0",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.0.tgz",
+ "integrity": "sha512-xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg==",
+ "dev": true,
+ "dependencies": {
+ "es-to-primitive": "^1.2.0",
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.0",
+ "is-callable": "^1.1.4",
+ "is-regex": "^1.0.4",
+ "object-inspect": "^1.6.0",
+ "object-keys": "^1.1.1",
+ "string.prototype.trimleft": "^2.1.0",
+ "string.prototype.trimright": "^2.1.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-to-primitive": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz",
+ "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
+ "dev": true,
+ "dependencies": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "dev": true,
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/execa": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
+ "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
+ "dev": true,
+ "dependencies": {
+ "cross-spawn": "^5.0.1",
+ "get-stream": "^3.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/external-editor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
+ "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
+ "dev": true,
+ "dependencies": {
+ "chardet": "^0.7.0",
+ "iconv-lite": "^0.4.24",
+ "tmp": "^0.0.33"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/figures": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
+ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
+ "dev": true,
+ "dependencies": {
+ "escape-string-regexp": "^1.0.5"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/flat": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz",
+ "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==",
+ "dev": true,
+ "dependencies": {
+ "is-buffer": "~2.0.3"
+ },
+ "bin": {
+ "flat": "cli.js"
+ }
+ },
+ "node_modules/foreground-child": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz",
+ "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==",
+ "dev": true,
+ "dependencies": {
+ "cross-spawn": "^7.0.0",
+ "signal-exit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/foreground-child/node_modules/cross-spawn": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz",
+ "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==",
+ "dev": true,
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/foreground-child/node_modules/path-key": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.0.tgz",
+ "integrity": "sha512-8cChqz0RP6SHJkMt48FW0A7+qUOn+OsnOsVtzI59tZ8m+5bCSk7hzwET0pulwOM2YMn9J1efb07KB9l9f30SGg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/foreground-child/node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/foreground-child/node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/foreground-child/node_modules/which": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.1.tgz",
+ "integrity": "sha512-N7GBZOTswtB9lkQBZA4+zAXrjEIWAUOB93AvzUiudRzRxhUdLURQ7D/gAIMY1gatT/LTbmbcv8SiYazy3eYB7w==",
+ "dev": true,
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "which": "bin/which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true
+ },
+ "node_modules/furi": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/furi/-/furi-1.3.0.tgz",
+ "integrity": "sha512-TYoXEeRLKHXNWcCBP0VH1psPktQ9G8Y0GfZwMXCvwVbhbfNx7JItKWhB5mMBYufNjqxEHq+Ivd1nLtr5vQyVoQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/is-windows": "^0.2.0",
+ "is-windows": "^1.0.2"
+ }
+ },
+ "node_modules/get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "dev": true,
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
+ },
+ "node_modules/get-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+ "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/glob": {
+ "version": "7.1.5",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz",
+ "integrity": "sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==",
+ "dev": true,
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/global-dirs": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz",
+ "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=",
+ "dev": true,
+ "dependencies": {
+ "ini": "^1.3.4"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/got": {
+ "version": "9.6.0",
+ "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
+ "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
+ "dev": true,
+ "dependencies": {
+ "@sindresorhus/is": "^0.14.0",
+ "@szmarczak/http-timer": "^1.1.2",
+ "cacheable-request": "^6.0.0",
+ "decompress-response": "^3.3.0",
+ "duplexer3": "^0.1.4",
+ "get-stream": "^4.1.0",
+ "lowercase-keys": "^1.0.1",
+ "mimic-response": "^1.0.1",
+ "p-cancelable": "^1.0.0",
+ "to-readable-stream": "^1.0.0",
+ "url-parse-lax": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/got/node_modules/get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "dev": true,
+ "dependencies": {
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
+ "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
+ "dev": true
+ },
+ "node_modules/growl": {
+ "version": "1.10.5",
+ "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
+ "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.x"
+ }
+ },
+ "node_modules/gts": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/gts/-/gts-1.1.0.tgz",
+ "integrity": "sha512-xgBIXItKWkpdFh+Ewg3hpe1aXc3rUqNLgsjVQd5L8tu1P3WS1X+CEZ+JAkWay3n0M/ejxHyVi7Tf89/8/DQogg==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^2.4.1",
+ "diff": "^4.0.1",
+ "inquirer": "^6.0.0",
+ "meow": "^5.0.0",
+ "ncp": "^2.0.0",
+ "prettier": "^1.15.3",
+ "rimraf": "^2.6.2",
+ "tslint": "^5.12.0",
+ "tslint-config-prettier": "^1.18.0",
+ "update-notifier": "^3.0.0",
+ "write-file-atomic": "^2.3.0"
+ },
+ "bin": {
+ "gts": "build/src/cli.js"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/gts/node_modules/rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dev": true,
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/handlebars": {
+ "version": "4.5.2",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.5.2.tgz",
+ "integrity": "sha512-29Zxv/cynYB7mkT1rVWQnV7mGX6v7H/miQ6dbEpYTKq5eJBN7PsRB+ViYJlcT6JINTSu4dVB9kOqEun78h6Exg==",
+ "dev": true,
+ "dependencies": {
+ "neo-async": "^2.6.0",
+ "optimist": "^0.6.1",
+ "source-map": "^0.6.1"
+ },
+ "bin": {
+ "handlebars": "bin/handlebars"
+ },
+ "engines": {
+ "node": ">=0.4.7"
+ },
+ "optionalDependencies": {
+ "uglify-js": "^3.1.4"
+ }
+ },
+ "node_modules/has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/has-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
+ "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/has-yarn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz",
+ "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/he": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+ "dev": true,
+ "bin": {
+ "he": "bin/he"
+ }
+ },
+ "node_modules/hosted-git-info": {
+ "version": "2.8.5",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz",
+ "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==",
+ "dev": true
+ },
+ "node_modules/http-cache-semantics": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz",
+ "integrity": "sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew==",
+ "dev": true
+ },
+ "node_modules/iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "dev": true,
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/import-lazy": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
+ "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.19"
+ }
+ },
+ "node_modules/indent-string": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz",
+ "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ },
+ "node_modules/ini": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
+ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/inline-fixtures": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/inline-fixtures/-/inline-fixtures-1.1.0.tgz",
+ "integrity": "sha512-wIQ0SS5nncjuTXHEgNuvAj6l3kwvYv75YVcQecDRaoL1YHwynG/fxKxrDV0f45Eu6EsUPlomFKqFDR9DD6hxlQ==",
+ "dev": true,
+ "dependencies": {
+ "make-dir": "^2.1.0",
+ "tmp": "0.0.33"
+ },
+ "engines": {
+ "node": ">= 8.0.0"
+ }
+ },
+ "node_modules/inline-fixtures/node_modules/make-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+ "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+ "dev": true,
+ "dependencies": {
+ "pify": "^4.0.1",
+ "semver": "^5.6.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/inline-fixtures/node_modules/pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/inquirer": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz",
+ "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-escapes": "^3.2.0",
+ "chalk": "^2.4.2",
+ "cli-cursor": "^2.1.0",
+ "cli-width": "^2.0.0",
+ "external-editor": "^3.0.3",
+ "figures": "^2.0.0",
+ "lodash": "^4.17.12",
+ "mute-stream": "0.0.7",
+ "run-async": "^2.2.0",
+ "rxjs": "^6.4.0",
+ "string-width": "^2.1.0",
+ "strip-ansi": "^5.1.0",
+ "through": "^2.3.6"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+ "dev": true
+ },
+ "node_modules/is-buffer": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz",
+ "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/is-callable": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
+ "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/is-ci": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
+ "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
+ "dev": true,
+ "dependencies": {
+ "ci-info": "^2.0.0"
+ },
+ "bin": {
+ "is-ci": "bin.js"
+ }
+ },
+ "node_modules/is-date-object": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
+ "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/is-installed-globally": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz",
+ "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=",
+ "dev": true,
+ "dependencies": {
+ "global-dirs": "^0.1.0",
+ "is-path-inside": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/is-npm": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-3.0.0.tgz",
+ "integrity": "sha512-wsigDr1Kkschp2opC4G3yA6r9EgVA6NjRpWzIi9axXqeIaAATPRJc4uLujXe3Nd9uO8KoDyA4MD6aZSeXTADhA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
+ "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-path-inside": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
+ "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
+ "dev": true,
+ "dependencies": {
+ "path-is-inside": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-plain-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-promise": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
+ "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
+ "dev": true
+ },
+ "node_modules/is-regex": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
+ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
+ "dev": true,
+ "dependencies": {
+ "has": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-symbol": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
+ "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
+ "dev": true,
+ "dependencies": {
+ "has-symbols": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/is-windows": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-yarn-global": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz",
+ "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==",
+ "dev": true
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "node_modules/istanbul-lib-coverage": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz",
+ "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/istanbul-lib-report": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz",
+ "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==",
+ "dev": true,
+ "dependencies": {
+ "istanbul-lib-coverage": "^2.0.5",
+ "make-dir": "^2.1.0",
+ "supports-color": "^6.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/istanbul-lib-report/node_modules/make-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+ "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+ "dev": true,
+ "dependencies": {
+ "pify": "^4.0.1",
+ "semver": "^5.6.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/istanbul-lib-report/node_modules/pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/istanbul-lib-report/node_modules/supports-color": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+ "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/istanbul-reports": {
+ "version": "2.2.6",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.6.tgz",
+ "integrity": "sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA==",
+ "dev": true,
+ "dependencies": {
+ "handlebars": "^4.1.2"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "dev": true
+ },
+ "node_modules/js-yaml": {
+ "version": "3.13.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
+ "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
+ "dev": true,
+ "dependencies": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/json-buffer": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
+ "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=",
+ "dev": true
+ },
+ "node_modules/json-parse-better-errors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
+ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
+ "dev": true
+ },
+ "node_modules/keyv": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
+ "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
+ "dev": true,
+ "dependencies": {
+ "json-buffer": "3.0.0"
+ }
+ },
+ "node_modules/latest-version": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz",
+ "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==",
+ "dev": true,
+ "dependencies": {
+ "package-json": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/load-json-file": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
+ "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
+ "dev": true,
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^4.0.0",
+ "pify": "^3.0.0",
+ "strip-bom": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/lodash": {
+ "version": "4.17.15",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
+ "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
+ "dev": true
+ },
+ "node_modules/log-symbols": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
+ "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/loud-rejection": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
+ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
+ "dev": true,
+ "dependencies": {
+ "currently-unhandled": "^0.4.1",
+ "signal-exit": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/lowercase-keys": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
+ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/lru-cache": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+ "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+ "dev": true,
+ "dependencies": {
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
+ }
+ },
+ "node_modules/make-dir": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
+ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
+ "dev": true,
+ "dependencies": {
+ "pify": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/map-obj": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz",
+ "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/meow": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz",
+ "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==",
+ "dev": true,
+ "dependencies": {
+ "camelcase-keys": "^4.0.0",
+ "decamelize-keys": "^1.0.0",
+ "loud-rejection": "^1.0.0",
+ "minimist-options": "^3.0.1",
+ "normalize-package-data": "^2.3.4",
+ "read-pkg-up": "^3.0.0",
+ "redent": "^2.0.0",
+ "trim-newlines": "^2.0.0",
+ "yargs-parser": "^10.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/mimic-fn": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/mimic-response": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+ "dev": true
+ },
+ "node_modules/minimist-options": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz",
+ "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==",
+ "dev": true,
+ "dependencies": {
+ "arrify": "^1.0.1",
+ "is-plain-obj": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "dev": true,
+ "dependencies": {
+ "minimist": "0.0.8"
+ },
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ }
+ },
+ "node_modules/mocha": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.2.tgz",
+ "integrity": "sha512-FgDS9Re79yU1xz5d+C4rv1G7QagNGHZ+iXF81hO8zY35YZZcLEsJVfFolfsqKFWunATEvNzMK0r/CwWd/szO9A==",
+ "dev": true,
+ "dependencies": {
+ "ansi-colors": "3.2.3",
+ "browser-stdout": "1.3.1",
+ "debug": "3.2.6",
+ "diff": "3.5.0",
+ "escape-string-regexp": "1.0.5",
+ "find-up": "3.0.0",
+ "glob": "7.1.3",
+ "growl": "1.10.5",
+ "he": "1.2.0",
+ "js-yaml": "3.13.1",
+ "log-symbols": "2.2.0",
+ "minimatch": "3.0.4",
+ "mkdirp": "0.5.1",
+ "ms": "2.1.1",
+ "node-environment-flags": "1.0.5",
+ "object.assign": "4.1.0",
+ "strip-json-comments": "2.0.1",
+ "supports-color": "6.0.0",
+ "which": "1.3.1",
+ "wide-align": "1.1.3",
+ "yargs": "13.3.0",
+ "yargs-parser": "13.1.1",
+ "yargs-unparser": "1.6.0"
+ },
+ "bin": {
+ "_mocha": "bin/_mocha",
+ "mocha": "bin/mocha"
+ },
+ "engines": {
+ "node": ">= 6.0.0"
+ }
+ },
+ "node_modules/mocha/node_modules/camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/mocha/node_modules/diff": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
+ "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.3.1"
+ }
+ },
+ "node_modules/mocha/node_modules/find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/mocha/node_modules/glob": {
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
+ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
+ "dev": true,
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/mocha/node_modules/locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/mocha/node_modules/p-limit": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
+ "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==",
+ "dev": true,
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/mocha/node_modules/p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/mocha/node_modules/p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/mocha/node_modules/string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/mocha/node_modules/supports-color": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz",
+ "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/mocha/node_modules/yargs": {
+ "version": "13.3.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz",
+ "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==",
+ "dev": true,
+ "dependencies": {
+ "cliui": "^5.0.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^3.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^13.1.1"
+ }
+ },
+ "node_modules/mocha/node_modules/yargs-parser": {
+ "version": "13.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz",
+ "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==",
+ "dev": true,
+ "dependencies": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+ "dev": true
+ },
+ "node_modules/mute-stream": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
+ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
+ "dev": true
+ },
+ "node_modules/ncp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz",
+ "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=",
+ "dev": true,
+ "bin": {
+ "ncp": "bin/ncp"
+ }
+ },
+ "node_modules/neo-async": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz",
+ "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==",
+ "dev": true
+ },
+ "node_modules/node-environment-flags": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz",
+ "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==",
+ "dev": true,
+ "dependencies": {
+ "object.getownpropertydescriptors": "^2.0.3",
+ "semver": "^5.7.0"
+ }
+ },
+ "node_modules/normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "dev": true,
+ "dependencies": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "node_modules/normalize-url": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz",
+ "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/npm-run-path": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+ "dev": true,
+ "dependencies": {
+ "path-key": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/object-inspect": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz",
+ "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==",
+ "dev": true
+ },
+ "node_modules/object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/object.assign": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
+ "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
+ "dev": true,
+ "dependencies": {
+ "define-properties": "^1.1.2",
+ "function-bind": "^1.1.1",
+ "has-symbols": "^1.0.0",
+ "object-keys": "^1.0.11"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/object.getownpropertydescriptors": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
+ "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=",
+ "dev": true,
+ "dependencies": {
+ "define-properties": "^1.1.2",
+ "es-abstract": "^1.5.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/onetime": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+ "dev": true,
+ "dependencies": {
+ "mimic-fn": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/optimist": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
+ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
+ "dev": true,
+ "dependencies": {
+ "minimist": "~0.0.1",
+ "wordwrap": "~0.0.2"
+ }
+ },
+ "node_modules/os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/p-cancelable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
+ "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/p-limit": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+ "dev": true,
+ "dependencies": {
+ "p-try": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/p-try": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/package-json": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz",
+ "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==",
+ "dev": true,
+ "dependencies": {
+ "got": "^9.6.0",
+ "registry-auth-token": "^4.0.0",
+ "registry-url": "^5.0.0",
+ "semver": "^6.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/package-json/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=",
+ "dev": true,
+ "dependencies": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-is-inside": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
+ "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
+ "dev": true
+ },
+ "node_modules/path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+ "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+ "dev": true
+ },
+ "node_modules/path-type": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
+ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+ "dev": true,
+ "dependencies": {
+ "pify": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/prepend-http": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
+ "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/prettier": {
+ "version": "1.19.1",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz",
+ "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==",
+ "dev": true,
+ "bin": {
+ "prettier": "bin-prettier.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/pseudomap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
+ "dev": true
+ },
+ "node_modules/pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "dev": true,
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "node_modules/quick-lru": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-1.1.0.tgz",
+ "integrity": "sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/rc": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "dev": true,
+ "dependencies": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "bin": {
+ "rc": "cli.js"
+ }
+ },
+ "node_modules/rc/node_modules/minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "dev": true
+ },
+ "node_modules/read-pkg": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
+ "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
+ "dev": true,
+ "dependencies": {
+ "load-json-file": "^4.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/read-pkg-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz",
+ "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=",
+ "dev": true,
+ "dependencies": {
+ "find-up": "^2.0.0",
+ "read-pkg": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/redent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz",
+ "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=",
+ "dev": true,
+ "dependencies": {
+ "indent-string": "^3.0.0",
+ "strip-indent": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/registry-auth-token": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.0.0.tgz",
+ "integrity": "sha512-lpQkHxd9UL6tb3k/aHAVfnVtn+Bcs9ob5InuFLLEDqSqeq+AljB8GZW9xY0x7F+xYwEcjKe07nyoxzEYz6yvkw==",
+ "dev": true,
+ "dependencies": {
+ "rc": "^1.2.8",
+ "safe-buffer": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/registry-url": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz",
+ "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==",
+ "dev": true,
+ "dependencies": {
+ "rc": "^1.2.8"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
+ "dev": true
+ },
+ "node_modules/resolve": {
+ "version": "1.12.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz",
+ "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==",
+ "dev": true,
+ "dependencies": {
+ "path-parse": "^1.0.6"
+ }
+ },
+ "node_modules/responselike": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
+ "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
+ "dev": true,
+ "dependencies": {
+ "lowercase-keys": "^1.0.0"
+ }
+ },
+ "node_modules/restore-cursor": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
+ "dev": true,
+ "dependencies": {
+ "onetime": "^2.0.0",
+ "signal-exit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/rimraf": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz",
+ "integrity": "sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==",
+ "dev": true,
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/run-async": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
+ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
+ "dev": true,
+ "dependencies": {
+ "is-promise": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/rxjs": {
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz",
+ "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==",
+ "dev": true,
+ "dependencies": {
+ "tslib": "^1.9.0"
+ },
+ "engines": {
+ "npm": ">=2.0.0"
+ }
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz",
+ "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==",
+ "dev": true
+ },
+ "node_modules/safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "dev": true
+ },
+ "node_modules/semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/semver-diff": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz",
+ "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=",
+ "dev": true,
+ "dependencies": {
+ "semver": "^5.0.3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
+ "dev": true
+ },
+ "node_modules/shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "dev": true,
+ "dependencies": {
+ "shebang-regex": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/signal-exit": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
+ "dev": true
+ },
+ "node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map-support": {
+ "version": "0.5.16",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz",
+ "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==",
+ "dev": true,
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "node_modules/spdx-correct": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
+ "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==",
+ "dev": true,
+ "dependencies": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/spdx-exceptions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
+ "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==",
+ "dev": true
+ },
+ "node_modules/spdx-expression-parse": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
+ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
+ "dev": true,
+ "dependencies": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/spdx-license-ids": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz",
+ "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==",
+ "dev": true
+ },
+ "node_modules/sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
+ "dev": true
+ },
+ "node_modules/string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "dependencies": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/string-width/node_modules/strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/string.prototype.trimleft": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz",
+ "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==",
+ "dev": true,
+ "dependencies": {
+ "define-properties": "^1.1.3",
+ "function-bind": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/string.prototype.trimright": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz",
+ "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==",
+ "dev": true,
+ "dependencies": {
+ "define-properties": "^1.1.3",
+ "function-bind": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/strip-ansi/node_modules/ansi-regex": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
+ "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/strip-eof": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/strip-indent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz",
+ "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/term-size": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz",
+ "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=",
+ "dev": true,
+ "dependencies": {
+ "execa": "^0.7.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/test-exclude": {
+ "version": "5.2.3",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz",
+ "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==",
+ "dev": true,
+ "dependencies": {
+ "glob": "^7.1.3",
+ "minimatch": "^3.0.4",
+ "read-pkg-up": "^4.0.0",
+ "require-main-filename": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/test-exclude/node_modules/find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/test-exclude/node_modules/locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/test-exclude/node_modules/p-limit": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
+ "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==",
+ "dev": true,
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/test-exclude/node_modules/p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/test-exclude/node_modules/p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/test-exclude/node_modules/read-pkg-up": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz",
+ "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==",
+ "dev": true,
+ "dependencies": {
+ "find-up": "^3.0.0",
+ "read-pkg": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
+ "dev": true
+ },
+ "node_modules/tmp": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "dev": true,
+ "dependencies": {
+ "os-tmpdir": "~1.0.2"
+ },
+ "engines": {
+ "node": ">=0.6.0"
+ }
+ },
+ "node_modules/to-readable-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
+ "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/trim-newlines": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz",
+ "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
+ "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
+ "dev": true
+ },
+ "node_modules/tslint": {
+ "version": "5.20.0",
+ "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.0.tgz",
+ "integrity": "sha512-2vqIvkMHbnx8acMogAERQ/IuINOq6DFqgF8/VDvhEkBqQh/x6SP0Y+OHnKth9/ZcHQSroOZwUQSN18v8KKF0/g==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.0.0",
+ "builtin-modules": "^1.1.1",
+ "chalk": "^2.3.0",
+ "commander": "^2.12.1",
+ "diff": "^4.0.1",
+ "glob": "^7.1.1",
+ "js-yaml": "^3.13.1",
+ "minimatch": "^3.0.4",
+ "mkdirp": "^0.5.1",
+ "resolve": "^1.3.2",
+ "semver": "^5.3.0",
+ "tslib": "^1.8.0",
+ "tsutils": "^2.29.0"
+ },
+ "bin": {
+ "tslint": "bin/tslint"
+ },
+ "engines": {
+ "node": ">=4.8.0"
+ }
+ },
+ "node_modules/tslint-config-prettier": {
+ "version": "1.18.0",
+ "resolved": "https://registry.npmjs.org/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz",
+ "integrity": "sha512-xPw9PgNPLG3iKRxmK7DWr+Ea/SzrvfHtjFt5LBl61gk2UBG/DB9kCXRjv+xyIU1rUtnayLeMUVJBcMX8Z17nDg==",
+ "dev": true,
+ "bin": {
+ "tslint-config-prettier-check": "bin/check.js"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/tsutils": {
+ "version": "2.29.0",
+ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz",
+ "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==",
+ "dev": true,
+ "dependencies": {
+ "tslib": "^1.8.1"
+ }
+ },
+ "node_modules/type-fest": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz",
+ "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/typescript": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz",
+ "integrity": "sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==",
+ "dev": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=4.2.0"
+ }
+ },
+ "node_modules/uglify-js": {
+ "version": "3.6.9",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.9.tgz",
+ "integrity": "sha512-pcnnhaoG6RtrvHJ1dFncAe8Od6Nuy30oaJ82ts6//sGSXOP5UjBMEthiProjXmMNHOfd93sqlkztifFMcb+4yw==",
+ "dev": true,
+ "optional": true,
+ "dependencies": {
+ "commander": "~2.20.3",
+ "source-map": "~0.6.1"
+ },
+ "bin": {
+ "uglifyjs": "bin/uglifyjs"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/unique-string": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz",
+ "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=",
+ "dev": true,
+ "dependencies": {
+ "crypto-random-string": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/update-notifier": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-3.0.1.tgz",
+ "integrity": "sha512-grrmrB6Zb8DUiyDIaeRTBCkgISYUgETNe7NglEbVsrLWXeESnlCSP50WfRSj/GmzMPl6Uchj24S/p80nP/ZQrQ==",
+ "dev": true,
+ "dependencies": {
+ "boxen": "^3.0.0",
+ "chalk": "^2.0.1",
+ "configstore": "^4.0.0",
+ "has-yarn": "^2.1.0",
+ "import-lazy": "^2.1.0",
+ "is-ci": "^2.0.0",
+ "is-installed-globally": "^0.1.0",
+ "is-npm": "^3.0.0",
+ "is-yarn-global": "^0.3.0",
+ "latest-version": "^5.0.0",
+ "semver-diff": "^2.0.0",
+ "xdg-basedir": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/url-parse-lax": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
+ "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
+ "dev": true,
+ "dependencies": {
+ "prepend-http": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/v8-to-istanbul": {
+ "version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-3.2.5.tgz",
+ "integrity": "sha512-l135Njhu4nELb12HTowzFqrtkRIk6JZ7A/469pTXsCwSrUGsNeTtgkjP5pVgVamVayJ7x/sxm7UpIxGAOMmi+A==",
+ "dev": true,
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "^2.0.1",
+ "convert-source-map": "^1.6.0",
+ "source-map": "^0.7.3"
+ },
+ "engines": {
+ "node": ">=10.10.0"
+ }
+ },
+ "node_modules/v8-to-istanbul/node_modules/source-map": {
+ "version": "0.7.3",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
+ "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "dev": true,
+ "dependencies": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "node_modules/which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dev": true,
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "which": "bin/which"
+ }
+ },
+ "node_modules/which-module": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+ "dev": true
+ },
+ "node_modules/wide-align": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^1.0.2 || 2"
+ }
+ },
+ "node_modules/widest-line": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz",
+ "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/wordwrap": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
+ "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/wrap-ansi": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
+ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^3.2.0",
+ "string-width": "^3.0.0",
+ "strip-ansi": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "node_modules/write-file-atomic": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz",
+ "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
+ "dev": true,
+ "dependencies": {
+ "graceful-fs": "^4.1.11",
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^3.0.2"
+ }
+ },
+ "node_modules/xdg-basedir": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz",
+ "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/y18n": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+ "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
+ "dev": true
+ },
+ "node_modules/yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+ "dev": true
+ },
+ "node_modules/yargs": {
+ "version": "14.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.0.tgz",
+ "integrity": "sha512-/is78VKbKs70bVZH7w4YaZea6xcJWOAwkhbR0CFuZBmYtfTYF0xjGJF43AYd8g2Uii1yJwmS5GR2vBmrc32sbg==",
+ "dev": true,
+ "dependencies": {
+ "cliui": "^5.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^3.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^15.0.0"
+ }
+ },
+ "node_modules/yargs-parser": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz",
+ "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==",
+ "dev": true,
+ "dependencies": {
+ "camelcase": "^4.1.0"
+ }
+ },
+ "node_modules/yargs-unparser": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz",
+ "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==",
+ "dev": true,
+ "dependencies": {
+ "flat": "^4.1.0",
+ "lodash": "^4.17.15",
+ "yargs": "^13.3.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/yargs-unparser/node_modules/camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/yargs-unparser/node_modules/find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/yargs-unparser/node_modules/locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/yargs-unparser/node_modules/p-limit": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
+ "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==",
+ "dev": true,
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/yargs-unparser/node_modules/p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/yargs-unparser/node_modules/p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/yargs-unparser/node_modules/string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/yargs-unparser/node_modules/yargs": {
+ "version": "13.3.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz",
+ "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==",
+ "dev": true,
+ "dependencies": {
+ "cliui": "^5.0.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^3.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^13.1.1"
+ }
+ },
+ "node_modules/yargs-unparser/node_modules/yargs-parser": {
+ "version": "13.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz",
+ "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==",
+ "dev": true,
+ "dependencies": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ },
+ "node_modules/yargs/node_modules/camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/yargs/node_modules/find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/yargs/node_modules/locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/yargs/node_modules/p-limit": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
+ "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==",
+ "dev": true,
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/yargs/node_modules/p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/yargs/node_modules/p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/yargs/node_modules/string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/yargs/node_modules/yargs-parser": {
+ "version": "15.0.0",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.0.tgz",
+ "integrity": "sha512-xLTUnCMc4JhxrPEPUYD5IBR1mWCK/aT6+RJ/K29JY2y1vD+FhtgKK0AXRWvI262q3QSffAQuTouFIKUuHX89wQ==",
+ "dev": true,
+ "dependencies": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ }
+ },
"dependencies": {
"@babel/code-frame": {
"version": "7.5.5",
diff --git a/packages/typescript/BUILD.bazel b/packages/typescript/BUILD.bazel
index 64c07e41c7..33f3cf9d4e 100644
--- a/packages/typescript/BUILD.bazel
+++ b/packages/typescript/BUILD.bazel
@@ -63,10 +63,10 @@ genrule(
name = "generate_README",
srcs = [
"index.md",
- "install.md",
+ "_README.md",
],
outs = ["README.md"],
- cmd = """cat $(execpath install.md) $(execpath index.md) | sed 's/^##/\\\n##/' > $@""",
+ cmd = """cat $(execpath _README.md) $(execpath index.md) | sed 's/^##/\\\n##/' > $@""",
tags = ["fix-windows"],
visibility = ["//docs:__pkg__"],
)
diff --git a/packages/typescript/_README.md b/packages/typescript/_README.md
new file mode 100644
index 0000000000..4dc39f7252
--- /dev/null
+++ b/packages/typescript/_README.md
@@ -0,0 +1,135 @@
+# TypeScript rules for Bazel
+
+The TypeScript rules integrate the TypeScript compiler with Bazel.
+
+## Alternatives
+
+This package provides Bazel wrappers around the TypeScript compiler.
+
+At a high level, there are three alternatives provided: `tsc`, `ts_project`, `ts_library`.
+This section describes the trade-offs between these rules.
+
+### tsc
+
+`tsc` is the TypeScript compiler published by the team at Microsoft.
+You can call it without any custom Bazel rules.
+
+To use this option, you **do not need to install the `@bazel/typescript` package**.
+
+The only reason to use raw `tsc` is if you want to compile a directory of `.ts` files and cannot enumerate them ahead-of-time in your BUILD file so that Bazel can predict all the output files.
+(For example if the `.ts` files are generated by some tool).
+This will produce an opaque directory of `.js` file outputs, which you won't be able to individually reference.
+
+Any other use case for `tsc` is better served by using `ts_project`, see below.
+
+Like we do for any npm package that exposes a binary, rules_nodejs will see your dependency on
+`typescript` and will generate an `index.bzl` file allowing you to run `tsc`.
+To use it, add the load statement `load("@npm//typescript:index.bzl", "tsc")` to your BUILD file.
+(Possibly replacing `@npm` with the name of the repository where you installed dependencies)
+
+Then call it, using the [`npm_package_bin`](Built-ins#npm_package_bin) documentation.
+
+Here is an example:
+https://github.com/bazelbuild/rules_nodejs/blob/3.2.2/internal/node/test/BUILD.bazel#L491-L507
+
+### ts_project
+
+`ts_project` simply runs `tsc --project`, with Bazel knowing which outputs to expect based on the TypeScript compiler options,
+and with interoperability with other TypeScript rules via the [DeclarationInfo] Provider that transmits the type information.
+
+It is intended as an easy on-boarding for existing TypeScript code and should be familiar if your background is in frontend ecosystem idioms.
+
+Any behavior of `ts_project` should be reproducible outside of Bazel, with a couple of caveats noted in the rule documentation below.
+
+`ts_project` is recommended for all new code.
+
+Exhaustive examples of calling `ts_project` are in the test suite:
+https://github.com/bazelbuild/rules_nodejs/tree/stable/packages/typescript/test/ts_project
+
+And there are also many uses of it in our
+
+[DeclarationInfo]: Built-ins#declarationinfo
+
+### ts_library
+
+`ts_library` should not be used for new code, and may be deprecated in the future.
+
+`ts_library` is an open-sourced version of the rule used to compile TS code at Google.
+However there is no support from the team that maintains that internal version.
+It is very complex, involving code generation of the `tsconfig.json` file, a custom compiler binary, and a lot of extra features.
+
+It is also opinionated, and may not work with existing TypeScript code. For example:
+
+- Your TS code must compile under the `--declaration` flag so that downstream libraries depend only on types, not implementation. This makes Bazel faster by avoiding cascading rebuilds in cases where the types aren't changed.
+- We control the output format and module syntax so that downstream rules can rely on them.
+- Some other options are incompatible. For example you cannot use the `--noEmit` compiler option in `tsconfig.json`.
+
+The only reason to use `ts_library` for new code is if you are bought-in to using a [concatjs] bundler, which requires the named AMD module format. This may be faster than other tooling, and this format can be consumed by the Closure Compiler (via integration with [tsickle](https://github.com/angular/tsickle)).
+However it is very challenging to configure and there is little available support for problems you'll run into.
+
+[concatjs]: https://www.npmjs.com/package/@bazel/concatjs
+
+## Installation
+
+Add a `devDependency` on `@bazel/typescript`
+
+```sh
+$ yarn add -D @bazel/typescript
+# or
+$ npm install --save-dev @bazel/typescript
+```
+
+Watch for any `peerDependency` warnings - we assume you have already installed the `typescript` package from npm.
+
+## Typical Usage
+
+The `ts_project` rule invokes the TypeScript compiler on one compilation unit,
+or "library" (generally one directory of source files). In TypeScript terms, this is one "Project"
+which can use "Project References" to break up a large application.
+
+Create a `BUILD` file next to your sources:
+
+```starlark
+load("//packages/typescript:index.bzl", "ts_project")
+
+ts_project(
+ name = "my_code",
+ # glob is a quick way to select all the code,
+ # but has performance penalty in that Bazel must evaluate it.
+ srcs = glob(["*.ts"]),
+ deps = ["//path/to/other:library"],
+)
+```
+
+Here, `//path/to/other:library` is another target in your repo that produces TypeScript typings (for example, another `ts_project` rule).
+Be sure to set the `rootDirs` in your tsconfig.json as noted below, so that TypeScript can find the `.d.ts` files produced by that other target.
+
+To use third-party libraries from npm, first install them (likely using `npm_install` or `yarn_install` rules) then add those to the `deps` as well:
+
+```starlark
+ts_project(
+ name = "my_code",
+ srcs = glob(["*.ts"]),
+ deps = [
+ "@npm//@types/node",
+ "@npm//@types/foo",
+ "@npm//somelib",
+ "//path/to/other:library",
+ ],
+)
+```
+
+You can also use the `@npm//@types` grouping target which will include all
+packages in the `@types` scope as dependencies.
+
+To build a `ts_library` target run:
+
+`bazel build //path/to/package:target`
+
+Note that the `tsconfig.json` file used for compilation should be the same one
+your editor references, or `extends` from it, to keep consistent settings for the TypeScript compiler.
+
+Anything you do with TypeScript is possible with `ts_project`, including json imports, type-checking only,
+transpile only, outdir, rootdir, and so on.
+See many examples in our test cases:
+https://github.com/bazelbuild/rules_nodejs/tree/stable/packages/typescript/test/ts_project
diff --git a/packages/typescript/install.md b/packages/typescript/install.md
deleted file mode 100644
index eb10061cb5..0000000000
--- a/packages/typescript/install.md
+++ /dev/null
@@ -1,306 +0,0 @@
-# TypeScript rules for Bazel
-
-The TypeScript rules integrate the TypeScript compiler with Bazel.
-
-## Alternatives
-
-This package provides Bazel wrappers around the TypeScript compiler.
-
-At a high level, there are three alternatives provided: `tsc`, `ts_project`, `ts_library`.
-This section describes the trade-offs between these rules.
-
-`tsc` is the raw TypeScript compiler published by the team at Microsoft.
-Like any npm package that exposes a binary, rules_nodejs will generate an `index.bzl` file allowing
-you to run `tsc`.
-
-To use it, add the load statement `load("@npm//typescript:index.bzl", "tsc")` to your BUILD file.
-Then call it, using the [`npm_package_bin`](Built-ins#npm_package_bin) documentation.
-
-The only reason to use raw `tsc` is if you want to compile an opaque directory of `.ts` files and cannot enumerate them to Bazel.
-(For example if the `.ts` files are generated by some tool).
-This will produce an opaque directory of `.js` file outputs, which you won't be able to individually reference.
-Any other use case for `tsc` is better served by using `ts_project`.
-
-`ts_project` simply runs `tsc --project`, with Bazel knowing which outputs to expect based on the TypeScript compiler options, and with interoperability with other TypeScript rules via a Bazel Provider (DeclarationInfo) that transmits the type information.
-It is intended as an easy on-boarding for existing TypeScript code and should be familiar if your background is in frontend ecosystem idioms.
-Any behavior of `ts_project` should be reproducible outside of Bazel, with a couple of caveats noted in the rule documentation below.
-
-`ts_library` is an open-sourced version of the rule used to compile TS code at Google.
-It should be familiar if your background is in Bazel idioms.
-It is very complex, involving code generation of the `tsconfig.json` file, a custom compiler binary, and a lot of extra features.
-It is also opinionated, and may not work with existing TypeScript code. For example:
-
-- Your TS code must compile under the `--declaration` flag so that downstream libraries depend only on types, not implementation. This makes Bazel faster by avoiding cascading rebuilds in cases where the types aren't changed.
-- We control the output format and module syntax so that downstream rules can rely on them.
-
-On the other hand, `ts_library` is also fast and optimized.
-We keep a running TypeScript compile running as a daemon, using Bazel workers.
-This process avoids re-parse and re-JIT of the >1MB `typescript.js` and keeps cached bound ASTs for input files which saves time.
-We also produce JS code which can be loaded faster (using named AMD module format) and which can be consumed by the Closure Compiler (via integration with [tsickle](https://github.com/angular/tsickle)).
-
-## Installation
-
-Add a `devDependency` on `@bazel/typescript`
-
-```sh
-$ yarn add -D @bazel/typescript
-# or
-$ npm install --save-dev @bazel/typescript
-```
-
-Watch for any `peerDependency` warnings - we assume you have already installed the `typescript` package from npm.
-
-Create a `BUILD.bazel` file in your workspace root. If your `tsconfig.json` file is in the root, use
-
-```python
-exports_files(["tsconfig.json"], visibility = ["//visibility:public"])
-```
-
-otherwise create an alias:
-
-```python
-alias(
- name = "tsconfig.json",
- actual = "//path/to/my:tsconfig.json",
-)
-```
-
-Make sure to remove the `--noEmit` compiler option from your `tsconfig.json`. This is not compatible with the `ts_library` rule.
-
-## User-managed npm dependencies
-
-We recommend you use Bazel managed dependencies, but if you would like
-Bazel to also install a `node_modules` in your workspace you can also
-point the `node_repositories` repository rule in your `WORKSPACE` file to
-your `package.json`.
-
-```python
-node_repositories(package_json = ["//:package.json"])
-```
-
-You can then run `yarn` in your workspace with:
-
-```sh
-$ bazel run @nodejs//:yarn_node_repositories
-```
-
-To use your workspace `node_modules` folder as a dependency in `ts_library` and
-other rules, add the following to your root `BUILD.bazel` file:
-
-```python
-js_library(
- name = "node_modules",
- srcs = glob(
- include = [
- "node_modules/**/*.js",
- "node_modules/**/*.d.ts",
- "node_modules/**/*.json",
- "node_modules/.bin/*",
- ],
- exclude = [
- # Files under test & docs may contain file names that
- # are not legal Bazel labels (e.g.,
- # node_modules/ecstatic/test/public/中文/檔案.html)
- "node_modules/**/test/**",
- "node_modules/**/docs/**",
- # Files with spaces in the name are not legal Bazel labels
- "node_modules/**/* */**",
- "node_modules/**/* *",
- ],
- ),
- # Provide ExternalNpmPackageInfo which is used by downstream rules
- # that use these npm dependencies
- external_npm_package = True,
-)
-
-# Create a tsc_wrapped compiler rule to use in the ts_library
-# compiler attribute when using user-managed dependencies
-nodejs_binary(
- name = "@bazel/typescript/tsc_wrapped",
- entry_point = "@npm//:node_modules/@bazel/typescript/internal/tsc_wrapped/tsc_wrapped.js",
- # Point bazel to your node_modules to find the entry point
- data = ["//:node_modules"],
-)
-```
-
-See the [dependencies docs](dependencies.html) for more information on managing npm dependencies with Bazel.
-
-## Customizing the TypeScript compiler binary
-
-An example use case is needing to increase the NodeJS heap size used for compilations.
-
-Similar to above, you declare your own binary for running `tsc_wrapped`, e.g.:
-
-```python
-nodejs_binary(
- name = "tsc_wrapped_bin",
- entry_point = "@npm//:node_modules/@bazel/typescript/internal/tsc_wrapped/tsc_wrapped.js",
- templated_args = [
- "--node_options=--max-old-space-size=2048",
- ],
- data = [
- "@npm//protobufjs",
- "@npm//source-map-support",
- "@npm//tsutils",
- "@npm//typescript",
- "@npm//@bazel/typescript",
- ],
-)
-```
-
-then refer to that target in the `compiler` attribute of your `ts_library` rule.
-
-Note that `nodejs_binary` targets generated by `npm_install`/`yarn_install` can include data dependencies
-on packages which aren't declared as dependencies. For example, if you use [tsickle](https://github.com/angular/tsickle) to generate Closure Compiler-compatible JS, then it needs to be a data dependency of `tsc_wrapped` so that it can be loaded at runtime.
-
-## Usage
-
-### Compiling TypeScript: `ts_library`
-
-The `ts_library` rule invokes the TypeScript compiler on one compilation unit,
-or "library" (generally one directory of source files).
-
-Create a `BUILD` file next to your sources:
-
-```python
-package(default_visibility=["//visibility:public"])
-load("//packages/typescript:index.bzl", "ts_library")
-
-ts_library(
- name = "my_code",
- srcs = glob(["*.ts"]),
- deps = ["//path/to/other:library"],
-)
-```
-
-If your ts_library target has npm dependencies you can specify these
-with fine grained npm dependency targets created by the `yarn_install` or
-`npm_install` rules:
-
-```python
-ts_library(
- name = "my_code",
- srcs = glob(["*.ts"]),
- deps = [
- "@npm//@types/node",
- "@npm//@types/foo",
- "@npm//foo",
- "//path/to/other:library",
- ],
-)
-```
-
-You can also use the `@npm//@types` target which will include all
-packages in the `@types` scope as dependencies.
-
-If you are using user-managed npm dependencies, you can pass your `//:node_modules`
-target defined in your root `BUILD.bazel` file to the deps of `ts_library`.
-You'll also need to override the `compiler` attribute if you do this
-as the Bazel-managed deps and user-managed cannot be used together
-in the same rule.
-
-```python
-ts_library(
- name = "my_code",
- srcs = glob(["*.ts"]),
- deps = [
- "//path/to/other:library",
- "//:node_modules",
- ],
- compiler = "//:@bazel/typescript/tsc_wrapped",
-)
-```
-
-To build a `ts_library` target run:
-
-`bazel build //path/to/package:target`
-
-The resulting `.d.ts` file paths will be printed. Additionally, the `.js`
-outputs from TypeScript will be written to disk, next to the `.d.ts` files 1.
-
-Note that the `tsconfig.json` file used for compilation should be the same one
-your editor references, to keep consistent settings for the TypeScript compiler.
-By default, `ts_library` uses the `tsconfig.json` file in the workspace root
-directory. See the notes about the `tsconfig` attribute in the [ts_library API docs].
-
-> 1 The
-> [declarationDir](https://www.typescriptlang.org/docs/handbook/compiler-options.html)
-> compiler option will be silently overwritten if present.
-
-[ts_library API docs]: http://tsetse.info/api/build_defs.html#ts_library
-
-## Accessing JavaScript outputs
-
-The default output of the `ts_library` rule is the `.d.ts` files.
-This is for a couple reasons:
-
-- help ensure that downstream rules which access default outputs will not require
- a cascading re-build when only the implementation changes but not the types
-- make you think about whether you want the `devmode` (named `UMD`) or `prodmode` outputs
-
-You can access the JS output by adding a `filegroup` rule after the `ts_library`,
-for example
-
-```python
-ts_library(
- name = "compile",
- srcs = ["thing.ts"],
-)
-
-filegroup(
- name = "thing.js",
- srcs = ["compile"],
- # Change to es6_sources to get the 'prodmode' JS
- output_group = "es5_sources",
-)
-
-my_rule(
- name = "uses_js",
- deps = ["thing.js"],
-)
-```
-
-## Serving TypeScript for development
-
-This is now documented in the `@bazel/concatjs` package.
-
-## Writing TypeScript code for Bazel
-
-Bazel's TypeScript compiler has your workspace path mapped, so you can import
-from an absolute path starting from your workspace.
-
-`/WORKSPACE`:
-```python
-workspace(name = "myworkspace")
-```
-
-`/some/long/path/to/deeply/nested/subdirectory.ts`:
-```javascript
-import {thing} from 'myworkspace/place';
-```
-
-will import from `/place.ts`.
-
-
-Since this is an extension to the vanilla TypeScript compiler, editors which use the TypeScript language services to provide code completion and inline type checking will not be able to resolve the modules. In the above example, adding
-```json
-"paths": {
- "myworkspace/*": ["*"]
-}
-```
-to `tsconfig.json` will fix the imports for the common case of using absolute paths.
-See [path mapping] for more details on the paths syntax.
-
-Similarly, you can use path mapping to teach the editor how to resolve imports
-from `ts_library` rules which set the `module_name` attribute.
-
-### Notes
-
-If you'd like a "watch mode", try [ibazel].
-
-At some point, we plan to release a tool similar to [gazelle] to generate the
-`BUILD` files from your source code.
-
-[gazelle]: https://github.com/bazelbuild/bazel-gazelle
-[ibazel]: https://github.com/bazelbuild/bazel-watcher
-[path mapping]: https://www.typescriptlang.org/docs/handbook/module-resolution.html#path-mapping
diff --git a/packages/typescript/internal/build_defs.bzl b/packages/typescript/internal/build_defs.bzl
index 7ccc50ee46..d94e5c8459 100644
--- a/packages/typescript/internal/build_defs.bzl
+++ b/packages/typescript/internal/build_defs.bzl
@@ -22,6 +22,51 @@ load("@build_bazel_rules_typescript//internal:common/compilation.bzl", "COMMON_A
load("@build_bazel_rules_typescript//internal:common/tsconfig.bzl", "create_tsconfig")
load("//packages/typescript/internal:ts_config.bzl", "TsConfigInfo")
+_DOC = """type-check and compile a set of TypeScript sources to JavaScript.
+
+It produces declarations files (`.d.ts`) which are used for compiling downstream
+TypeScript targets and JavaScript for the browser and Closure compiler.
+
+By default, `ts_library` uses the `tsconfig.json` file in the workspace root
+directory. See the notes about the `tsconfig` attribute below.
+
+## Serving TypeScript for development
+
+`ts_library` is typically served by the concatjs_devserver rule, documented in the `@bazel/concatjs` package.
+
+## Accessing JavaScript outputs
+
+The default output of the `ts_library` rule is the `.d.ts` files.
+This is for a couple reasons:
+
+- help ensure that downstream rules which access default outputs will not require
+ a cascading re-build when only the implementation changes but not the types
+- make you think about whether you want the `devmode` (named `UMD`) or `prodmode` outputs
+
+You can access the JS output by adding a `filegroup` rule after the `ts_library`,
+for example
+
+```python
+ts_library(
+ name = "compile",
+ srcs = ["thing.ts"],
+)
+
+filegroup(
+ name = "thing.js",
+ srcs = ["compile"],
+ # Change to es6_sources to get the 'prodmode' JS
+ output_group = "es5_sources",
+)
+
+my_rule(
+ name = "uses_js",
+ deps = ["thing.js"],
+)
+```
+
+"""
+
# NB: substituted with "//@bazel/typescript/bin:tsc_wrapped" in the pkg_npm rule
_DEFAULT_COMPILER = "@build_bazel_rules_typescript//internal:tsc_wrapped_bin"
@@ -32,7 +77,7 @@ _TYPESCRIPT_TYPINGS = Label(
"//typescript:typescript__typings",
)
-_TYPESCRIPT_SCRIPT_TARGETS = ["es3", "es5", "es2015", "es2016", "es2017", "es2018", "esnext"]
+_TYPESCRIPT_SCRIPT_TARGETS = ["es3", "es5", "es2015", "es2016", "es2017", "es2018", "es2019", "es2020", "esnext"]
_TYPESCRIPT_MODULE_KINDS = ["none", "commonjs", "amd", "umd", "system", "es2015", "esnext"]
_DEVMODE_TARGET_DEFAULT = "es2015"
@@ -329,6 +374,34 @@ and Angular compilations can replace this with `ngc`.
The default ts_library compiler depends on the `//@bazel/typescript`
target which is setup for projects that use bazel managed npm deps and
install the @bazel/typescript npm package.
+
+You can also use a custom compiler to increase the NodeJS heap size used for compilations.
+
+To do this, declare your own binary for running `tsc_wrapped`, e.g.:
+
+```python
+nodejs_binary(
+ name = "tsc_wrapped_bin",
+ entry_point = "@npm//:node_modules/@bazel/typescript/internal/tsc_wrapped/tsc_wrapped.js",
+ templated_args = [
+ "--node_options=--max-old-space-size=2048",
+ ],
+ data = [
+ "@npm//protobufjs",
+ "@npm//source-map-support",
+ "@npm//tsutils",
+ "@npm//typescript",
+ "@npm//@bazel/typescript",
+ ],
+)
+```
+
+then refer to that target in the `compiler` attribute.
+
+Note that `nodejs_binary` targets generated by `npm_install`/`yarn_install` can include data dependencies
+on packages which aren't declared as dependencies.
+For example, if you use [tsickle](https://github.com/angular/tsickle) to generate Closure Compiler-compatible JS,
+then it needs to be a data dependency of `tsc_wrapped` so that it can be loaded at runtime.
""",
default = Label(_DEFAULT_COMPILER),
allow_files = True,
@@ -400,6 +473,8 @@ either:
- Have your `tsconfig.json` file in the workspace root directory
- Use an alias in the root BUILD.bazel file to point to the location of tsconfig:
`alias(name="tsconfig.json", actual="//path/to:tsconfig-something.json")`
+ and also make the tsconfig.json file visible to other Bazel packages:
+ `exports_files(["tsconfig.json"], visibility = ["//visibility:public"])`
- Give an explicit `tsconfig` attribute to all `ts_library` targets
""",
allow_single_file = True,
@@ -418,11 +493,7 @@ either:
outputs = {
"tsconfig": "%{name}_tsconfig.json",
},
- doc = """`ts_library` type-checks and compiles a set of TypeScript sources to JavaScript.
-
-It produces declarations files (`.d.ts`) which are used for compiling downstream
-TypeScript targets and JavaScript for the browser and Closure compiler.
-""",
+ doc = _DOC,
)
def ts_library_macro(tsconfig = None, **kwargs):
diff --git a/packages/typescript/internal/ts_project.bzl b/packages/typescript/internal/ts_project.bzl
index 28d76c0317..a216aa6d95 100644
--- a/packages/typescript/internal/ts_project.bzl
+++ b/packages/typescript/internal/ts_project.bzl
@@ -161,16 +161,7 @@ def _ts_project_impl(ctx):
inputs.extend(depset(transitive = deps_depsets).to_list())
# Gather TsConfig info from both the direct (tsconfig) and indirect (extends) attribute
- tsconfig_inputs = []
- if TsConfigInfo in ctx.attr.tsconfig:
- tsconfig_inputs.extend(ctx.attr.tsconfig[TsConfigInfo].deps)
- else:
- tsconfig_inputs.append(ctx.file.tsconfig)
- if hasattr(ctx.attr, "extends") and ctx.attr.extends:
- if TsConfigInfo in ctx.attr.extends:
- tsconfig_inputs.extend(ctx.attr.extends[TsConfigInfo].deps)
- else:
- tsconfig_inputs.extend(ctx.attr.extends.files.to_list())
+ tsconfig_inputs = _tsconfig_inputs(ctx)
inputs.extend(tsconfig_inputs)
# We do not try to predeclare json_outs, because their output locations generally conflict with their path in the source tree.
@@ -249,6 +240,20 @@ def _ts_project_impl(ctx):
return providers
+def _tsconfig_inputs(ctx):
+ """Returns all transitively referenced tsconfig files from "tsconfig" and "extends" attributes."""
+ inputs = []
+ if TsConfigInfo in ctx.attr.tsconfig:
+ inputs.extend(ctx.attr.tsconfig[TsConfigInfo].deps)
+ else:
+ inputs.append(ctx.file.tsconfig)
+ if hasattr(ctx.attr, "extends") and ctx.attr.extends:
+ if TsConfigInfo in ctx.attr.extends:
+ inputs.extend(ctx.attr.extends[TsConfigInfo].deps)
+ else:
+ inputs.extend(ctx.attr.extends.files.to_list())
+ return inputs
+
ts_project = rule(
implementation = _ts_project_impl,
attrs = dict(_ATTRS, **_OUTPUTS),
@@ -271,11 +276,7 @@ def _validate_options_impl(ctx):
ts_build_info_file = ctx.attr.ts_build_info_file,
).to_json()])
- inputs = ctx.files.extends[:]
- if TsConfigInfo in ctx.attr.tsconfig:
- inputs.extend(ctx.attr.tsconfig[TsConfigInfo].deps)
- else:
- inputs.append(ctx.file.tsconfig)
+ inputs = _tsconfig_inputs(ctx)
run_node(
ctx,
diff --git a/packages/typescript/test/ts_project/extends_chain/BUILD.bazel b/packages/typescript/test/ts_project/extends_chain/BUILD.bazel
new file mode 100644
index 0000000000..ead12d3b7e
--- /dev/null
+++ b/packages/typescript/test/ts_project/extends_chain/BUILD.bazel
@@ -0,0 +1,8 @@
+load("//packages/typescript:index.bzl", "ts_config")
+
+ts_config(
+ name = "tsconfig_node",
+ src = "tsconfig.node.json",
+ visibility = [":__subpackages__"],
+ deps = ["tsconfig.base.json"],
+)
diff --git a/packages/typescript/test/ts_project/extends_chain/main/BUILD.bazel b/packages/typescript/test/ts_project/extends_chain/main/BUILD.bazel
new file mode 100644
index 0000000000..5a16b5d0a9
--- /dev/null
+++ b/packages/typescript/test/ts_project/extends_chain/main/BUILD.bazel
@@ -0,0 +1,8 @@
+load("//packages/typescript:index.bzl", "ts_project")
+
+ts_project(
+ name = "main",
+ srcs = ["main.ts"],
+ extends = "//packages/typescript/test/ts_project/extends_chain:tsconfig_node",
+ tsconfig = ":tsconfig.json",
+)
diff --git a/packages/typescript/test/ts_project/extends_chain/main/main.ts b/packages/typescript/test/ts_project/extends_chain/main/main.ts
new file mode 100644
index 0000000000..b9d3e23cbf
--- /dev/null
+++ b/packages/typescript/test/ts_project/extends_chain/main/main.ts
@@ -0,0 +1 @@
+console.log('Hello world!');
diff --git a/packages/typescript/test/ts_project/extends_chain/main/tsconfig.json b/packages/typescript/test/ts_project/extends_chain/main/tsconfig.json
new file mode 100644
index 0000000000..5aae8b926c
--- /dev/null
+++ b/packages/typescript/test/ts_project/extends_chain/main/tsconfig.json
@@ -0,0 +1,3 @@
+{
+ "extends": "../tsconfig.node.json"
+}
diff --git a/packages/typescript/test/ts_project/extends_chain/tsconfig.base.json b/packages/typescript/test/ts_project/extends_chain/tsconfig.base.json
new file mode 100644
index 0000000000..da332ac9d2
--- /dev/null
+++ b/packages/typescript/test/ts_project/extends_chain/tsconfig.base.json
@@ -0,0 +1,6 @@
+{
+ "compilerOptions": {
+ "noImplicitAny": true,
+ "types": []
+ }
+}
diff --git a/packages/typescript/test/ts_project/extends_chain/tsconfig.node.json b/packages/typescript/test/ts_project/extends_chain/tsconfig.node.json
new file mode 100644
index 0000000000..b27ad182ad
--- /dev/null
+++ b/packages/typescript/test/ts_project/extends_chain/tsconfig.node.json
@@ -0,0 +1,7 @@
+{
+ "extends": "./tsconfig.base.json",
+ "compilerOptions": {
+ "moduleResolution": "Node",
+ "module": "commonjs"
+ }
+}
diff --git a/third_party/github.com/bazelbuild/rules_typescript/internal/common/compilation.bzl b/third_party/github.com/bazelbuild/rules_typescript/internal/common/compilation.bzl
index c721a877dd..8785ae8d35 100644
--- a/third_party/github.com/bazelbuild/rules_typescript/internal/common/compilation.bzl
+++ b/third_party/github.com/bazelbuild/rules_typescript/internal/common/compilation.bzl
@@ -474,7 +474,7 @@ def compile_ts(
"declarations": declarations_provider,
"instrumented_files": {
"dependency_attributes": ["deps", "runtime_deps"],
- "extensions": ["ts"],
+ "extensions": ["ts", "tsx"],
"source_attributes": ["srcs"],
},
# Expose the module_name so that packaging rules can access it.
diff --git a/third_party/github.com/source-map-support/BUILD.bazel b/third_party/github.com/source-map-support/BUILD.bazel
index 7453fa9728..bd45f20182 100644
--- a/third_party/github.com/source-map-support/BUILD.bazel
+++ b/third_party/github.com/source-map-support/BUILD.bazel
@@ -8,6 +8,7 @@ exports_files(["LICENSE"])
_CONTENT = [
"package.json",
+ "register.js",
"source-map-support.js",
]
diff --git a/third_party/github.com/source-map-support/register.js b/third_party/github.com/source-map-support/register.js
new file mode 100644
index 0000000000..2111f53d74
--- /dev/null
+++ b/third_party/github.com/source-map-support/register.js
@@ -0,0 +1 @@
+require('./').install({environment: 'node'})
diff --git a/toolchains/node/BUILD.bazel b/toolchains/node/BUILD.bazel
index a2c6c98e28..342e530342 100644
--- a/toolchains/node/BUILD.bazel
+++ b/toolchains/node/BUILD.bazel
@@ -20,40 +20,40 @@ licenses(["notice"]) # Apache 2.0
platform(
name = "darwin_amd64",
constraint_values = [
- "@bazel_tools//platforms:osx",
- "@bazel_tools//platforms:x86_64",
+ "@platforms//os:osx",
+ "@platforms//cpu:x86_64",
],
)
platform(
name = "linux_amd64",
constraint_values = [
- "@bazel_tools//platforms:linux",
- "@bazel_tools//platforms:x86_64",
+ "@platforms//os:linux",
+ "@platforms//cpu:x86_64",
],
)
platform(
name = "linux_arm64",
constraint_values = [
- "@bazel_tools//platforms:linux",
- "@bazel_tools//platforms:aarch64",
+ "@platforms//os:linux",
+ "@platforms//cpu:aarch64",
],
)
platform(
name = "windows_amd64",
constraint_values = [
- "@bazel_tools//platforms:windows",
- "@bazel_tools//platforms:x86_64",
+ "@platforms//os:windows",
+ "@platforms//cpu:x86_64",
],
)
platform(
name = "linux_s390x",
constraint_values = [
- "@bazel_tools//platforms:linux",
- "@bazel_tools//platforms:s390x",
+ "@platforms//os:linux",
+ "@platforms//cpu:s390x",
],
)
@@ -104,8 +104,8 @@ alias(
toolchain(
name = "node_linux_amd64_toolchain",
target_compatible_with = [
- "@bazel_tools//platforms:linux",
- "@bazel_tools//platforms:x86_64",
+ "@platforms//os:linux",
+ "@platforms//cpu:x86_64",
],
toolchain = "@nodejs_linux_amd64_config//:toolchain",
toolchain_type = ":toolchain_type",
@@ -114,8 +114,8 @@ toolchain(
toolchain(
name = "node_linux_arm64_toolchain",
target_compatible_with = [
- "@bazel_tools//platforms:linux",
- "@bazel_tools//platforms:aarch64",
+ "@platforms//os:linux",
+ "@platforms//cpu:aarch64",
],
toolchain = "@nodejs_linux_arm64_config//:toolchain",
toolchain_type = ":toolchain_type",
@@ -124,8 +124,8 @@ toolchain(
toolchain(
name = "node_darwin_amd64_toolchain",
target_compatible_with = [
- "@bazel_tools//platforms:osx",
- "@bazel_tools//platforms:x86_64",
+ "@platforms//os:osx",
+ "@platforms//cpu:x86_64",
],
toolchain = "@nodejs_darwin_amd64_config//:toolchain",
toolchain_type = ":toolchain_type",
@@ -134,8 +134,8 @@ toolchain(
toolchain(
name = "node_windows_amd64_toolchain",
target_compatible_with = [
- "@bazel_tools//platforms:windows",
- "@bazel_tools//platforms:x86_64",
+ "@platforms//os:windows",
+ "@platforms//cpu:x86_64",
],
toolchain = "@nodejs_windows_amd64_config//:toolchain",
toolchain_type = ":toolchain_type",
@@ -144,8 +144,8 @@ toolchain(
toolchain(
name = "node_linux_s390x_toolchain",
target_compatible_with = [
- "@bazel_tools//platforms:linux",
- "@bazel_tools//platforms:s390x",
+ "@platforms//os:linux",
+ "@platforms//cpu:s390x",
],
toolchain = "@nodejs_linux_s390x_config//:toolchain",
toolchain_type = ":toolchain_type",
diff --git a/version.bzl b/version.bzl
index 6d8761bda3..7fc7a704ea 100644
--- a/version.bzl
+++ b/version.bzl
@@ -19,4 +19,4 @@
# It will be automatically synced via the npm "version" script
# that is run when running `npm version` during the release
# process. See `Releasing` section in README.md.
-VERSION = "3.2.2"
+VERSION = "3.2.3"
diff --git a/yarn.lock b/yarn.lock
index a2609dd57f..264b7f25db 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5472,13 +5472,13 @@ jasmine-core@~3.4.0:
resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.4.0.tgz#2a74618e966026530c3518f03e9f845d26473ce3"
integrity sha512-HU/YxV4i6GcmiH4duATwAbJQMlE0MsDIR5XmSVxURxKHn3aGAdbY1/ZJFmVRbKtnLwIxxMJD7gYaPsypcbYimg==
-jasmine-reporters@~2.3.2:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/jasmine-reporters/-/jasmine-reporters-2.3.2.tgz#898818ffc234eb8b3f635d693de4586f95548d43"
- integrity sha512-u/7AT9SkuZsUfFBLLzbErohTGNsEUCKaQbsVYnLFW1gEuL2DzmBL4n8v90uZsqIqlWvWUgian8J6yOt5Fyk/+A==
+jasmine-reporters@~2.4.0:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/jasmine-reporters/-/jasmine-reporters-2.4.0.tgz#708c17ae70ba6671e3a930bb1b202aab80a31409"
+ integrity sha512-jxONSrBLN1vz/8zCx5YNWQSS8iyDAlXQ5yk1LuqITe4C6iXCDx5u6Q0jfNtkKhL4qLZPe69fL+AWvXFt9/x38w==
dependencies:
mkdirp "^0.5.1"
- xmldom "^0.1.22"
+ xmldom "^0.5.0"
jasmine@2.8.0:
version "2.8.0"
@@ -10357,10 +10357,10 @@ xmlchars@^2.1.1:
resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb"
integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==
-xmldom@^0.1.22:
- version "0.1.31"
- resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.31.tgz#b76c9a1bd9f0a9737e5a72dc37231cf38375e2ff"
- integrity sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==
+xmldom@^0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.5.0.tgz#193cb96b84aa3486127ea6272c4596354cb4962e"
+ integrity sha512-Foaj5FXVzgn7xFzsKeNIde9g6aFBxTPi37iwsno8QvApmtg7KYrr+OPyRHcJF7dud2a5nGRBXK3n0dL62Gf7PA==
xmlhttprequest-ssl@~1.5.4:
version "1.5.5"