diff --git a/.circleci/bazel.rc b/.circleci/bazel.rc index f2edab5ba..36d3fe76e 100644 --- a/.circleci/bazel.rc +++ b/.circleci/bazel.rc @@ -23,7 +23,7 @@ build --experimental_repository_cache=/home/circleci/bazel_repository_cache # Workaround https://github.com/bazelbuild/bazel/issues/3645 # Bazel doesn't calculate the memory ceiling correctly when running under Docker. -# Limit Bazel to consuming 3072K of RAM -build --local_resources=3072,2.0,1.0 +# Limit Bazel to consuming 2560K of RAM +build --local_resources=2560,1.0,1.0 # Also limit Bazel's own JVM heap to stay within our 4G container limit -startup --host_jvm_args=-Xmx2G +startup --host_jvm_args=-Xmx1g diff --git a/.circleci/config.yml b/.circleci/config.yml index 6a2917c3e..c1396a14f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -60,7 +60,9 @@ jobs: - run: bazel info release # Install the dependencies from NPM - - run: bazel run @nodejs//:yarn install + # TODO(gmagolan): Use `bazel run :install` once bootstrap issue resolved. + # See https://github.com/bazelbuild/rules_nodejs/issues/275. + - run: yarn # Build and Test # Use bazel query so that we explicitly ask for all buildable targets to @@ -70,10 +72,6 @@ jobs: # Run the benchmark - run: node_modules/.bin/ibazel-benchmark-runner //src:devserver src/hello-world/hello-world.component.ts --url=http://localhost:5432 - - # Run the protractor end-to-end test - it's not a Bazel target because - # we didn't write a protractor rule yet. - - run: xvfb-run -a yarn e2e - store_artifacts: path: dist/bin/src/bundle.min.js diff --git a/BUILD.bazel b/BUILD.bazel index 67b7588e4..3da6a447d 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -5,11 +5,17 @@ alias( actual = "@nodejs//:yarn", ) +# ts_library and ng_module use the `//:tsconfig.json` target +# by default. This alias allows omitting explicit tsconfig +# attribute. +alias( + name = "tsconfig.json", + actual = "//src:tsconfig.json", +) + # This export allows targets in other packages to reference files that live # in this package. exports_files([ - # Let ts_library targets reference the root tsconfig.json file - "tsconfig.json", # Let devserver and testing targets reference zone.js distro "node_modules/zone.js/dist/zone.min.js", "node_modules/zone.js/dist/zone-testing-bundle.js", @@ -18,46 +24,33 @@ exports_files([ # NOTE: this will move to node_modules/BUILD in a later release filegroup( name = "node_modules", - # NB: rxjs is not in this list, because we build it from sources using the - # label @rxjs//:rxjs + # NB: angular & rxjs are not in this list, because we build them from sources srcs = glob(["/".join([ "node_modules", pkg, "**", ext, ]) for pkg in [ - "@angular", "@ngrx", "@types", + "bytebuffer", + "protobufjs", "protractor", + "reflect-metadata", "tsickle", + "tslib", "tsutils", "typescript", + "zone.js", ] for ext in [ "*.js", "*.json", "*.d.ts", - ]]), -) - -ANGULAR_TESTING = [ - "node_modules/@angular/*/bundles/*-testing.umd.js", - # We use AOT, so the compiler and the dynamic platform-browser should be - # visible only in tests - "node_modules/@angular/compiler/bundles/*.umd.js", - "node_modules/@angular/platform-browser-dynamic/bundles/*.umd.js", -] - -filegroup( - name = "angular_bundles", - srcs = glob( - ["node_modules/@angular/*/bundles/*.umd.js"], - exclude = ANGULAR_TESTING, - ), -) - -filegroup( - name = "angular_test_bundles", - testonly = 1, - srcs = glob(ANGULAR_TESTING), + ]] + [ + "node_modules/protractor/**", + ]) + ["@build_bazel_rules_typescript//:node_modules"], + # "@build_bazel_rules_typescript//:node_modules" is incluced + # in `//:node_modules` so that npm dependencies that are hoisted to + # node_modules/@bazel/typescript/node_modules because of conflicting + # versions can be resolved correctly ) diff --git a/README.md b/README.md index e3b74528d..a947890ab 100644 --- a/README.md +++ b/README.md @@ -38,14 +38,23 @@ npm install -g @bazel/ibazel ## Setup Before building the app, we install packages, just as with any npm-based development workflow. -However, to get the same version of the toolchain as co-workers and our continuous integration, let's have Bazel run the -package manager using a pinned version it manages. You should not even need -node, npm, or yarn installed on a machine where you develop with Bazel. ```bash -$ bazel run :install +$ yarn install ``` +or + +```bash +$ npm install +``` + +For the time being, you need to run your locally installed `yarn` or `npm` to install dependencies +as shown above. This is because we pull down the `@bazel/typescript` bazel dependency from npm and +that dependency needs to be in place before we can build the project. We're investigating +how to resolve this bootstrapping issue so in the future you will be able run `bazel run :install` to +install your npm packages without needing a local installation of `node`, `yarn` or `npm`. + ## Development Next we'll run the development server: @@ -68,15 +77,29 @@ is less than two seconds, even for a large application. Control-C twice to kill the devserver and also stop `ibazel`. -We can also run all the unit tests: +## Testing + +We can also run all the unit and e2e tests: ```bash $ ibazel test ... ``` -This will run all the tests. In this example, there is a test for the -`hello-world` component. Note that Bazel will only re-run the tests whose inputs -changed since the last run. +This will run all the tests. + +In this example, there is a unit test for the `hello-world` component which uses +the `ts_web_test_suite` rule. There are also protractor e2e tests for both the +`prodserver` and `devserver` which use the `protractor_web_test_suite` rule. + +You can also run these tests individually using, + +```bash +$ bazel test //src/hello-world:test +$ bazel test //test/e2e:prodserver_test +$ bazel test //test/e2e:devserver_test +``` + +Note that Bazel will only re-run the tests whose inputs changed since the last run. ## Production @@ -89,14 +112,6 @@ bundlers can be integrated with Bazel. $ ibazel run src:prodserver ``` -We also use Protractor to run end-to-end tests. We don't have a protractor rule -yet, so we'll take the build results from Bazel and run the test outside of Bazel. - -```bash -$ yarn e2e -``` - ## Coming soon -- Protractor bazel rule - Code-splitting and lazy loading (planned for Q2/Q3 2018) diff --git a/WORKSPACE b/WORKSPACE index 7058dbdd7..f5a543648 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -14,9 +14,17 @@ workspace(name = "angular_bazel_example") # Allows Bazel to run tooling in Node.js http_archive( name = "build_bazel_rules_nodejs", - urls = ["https://github.com/bazelbuild/rules_nodejs/archive/0.10.0.zip"], - strip_prefix = "rules_nodejs-0.10.0", - sha256 = "2f77623311da8b5009b1c7eade12de8e15fa3cd2adf9dfcc9f87cb2082b2211f", + urls = ["https://github.com/bazelbuild/rules_nodejs/archive/0.11.3.zip"], + strip_prefix = "rules_nodejs-0.11.3", + sha256 = "e8842fa5f5e38f2c826167ff94323d4b5aabd13217cee867d971d6f860cfd730" +) + +# build_bazel_rules_nodejs depends on skylib +http_archive( + name = "bazel_skylib", + urls = ["https://github.com/bazelbuild/bazel-skylib/archive/0.3.1.zip"], + strip_prefix = "bazel-skylib-0.3.1", + sha256 = "95518adafc9a2b656667bbf517a952e54ce7f350779d0dd95133db4eb5c27fb1", ) # The Bazel buildtools repo contains tools like the BUILD file formatter, buildifier @@ -33,21 +41,32 @@ http_archive( ) # Runs the TypeScript compiler -http_archive( +local_repository( name = "build_bazel_rules_typescript", - url = "https://github.com/bazelbuild/rules_typescript/archive/0.15.3.zip", - strip_prefix = "rules_typescript-0.15.3", - sha256 = "a2b26ac3fc13036011196063db1bf7f1eae81334449201dc28087ebfa3708c99", + path = "node_modules/@bazel/typescript", +) + +# build_bazel_rules_typescript depends on io_bazel_skydoc +http_archive( + name = "io_bazel_skydoc", + urls = ["https://github.com/bazelbuild/skydoc/archive/0ef7695c9d70084946a3e99b89ad5a99ede79580.zip"], + strip_prefix = "skydoc-0ef7695c9d70084946a3e99b89ad5a99ede79580", + sha256 = "491f9e142b870b18a0ec8eb3d66636eeceabe5f0c73025706c86f91a1a2acb4d", ) # Used by the ts_web_test_suite rule to provision browsers http_archive( name = "io_bazel_rules_webtesting", - # Use a commit SHA because we need a release - # https://github.com/bazelbuild/rules_webtesting/issues/273 - url = "https://github.com/bazelbuild/rules_webtesting/archive/bbfc846d98dacb0fb40dd9173acfe4070e3e0f62.zip", - strip_prefix = "rules_webtesting-bbfc846d98dacb0fb40dd9173acfe4070e3e0f62", - sha256 = "a79e2d681b7c9ddc51e7974ddb385b9ee2b389cdc823dd3e78e18936337e4c5a", + url = "https://github.com/bazelbuild/rules_webtesting/archive/0.2.1.zip", + strip_prefix = "rules_webtesting-0.2.1", + sha256 = "7d490aadff9b5262e5251fa69427ab2ffd1548422467cb9f9e1d110e2c36f0fa", +) + +# bazel_gazelle is a transitive dep of rules_typescript and rules_webtesting +http_archive( + name = "bazel_gazelle", + urls = ["https://github.com/bazelbuild/bazel-gazelle/releases/download/0.13.0/bazel-gazelle-0.13.0.tar.gz"], + sha256 = "bc653d3e058964a5a26dcad02b6c72d7d63e6bb88d94704990b908a1445b8758", ) # Runs the Sass CSS preprocessor @@ -65,13 +84,12 @@ http_archive( sha256 = "ba79c532ac400cefd1859cbc8a9829346aa69e3b99482cd5a54432092cbc3933", ) -#################################### -# Tell Bazel about some workspaces that were installed from npm. - # The @angular repo contains rule for building Angular applications -local_repository( +http_archive( name = "angular", - path = "node_modules/@angular/bazel", + url = "https://github.com/angular/angular/archive/6.1.2.zip", + strip_prefix = "angular-6.1.2", + sha256 = "e7553542cebd1113069a92d97a464a2d2aa412242926686653b8cf0101935617", ) # The @rxjs repo contains targets for building rxjs with bazel @@ -83,7 +101,7 @@ local_repository( #################################### # Load and install our dependencies downloaded above. -load("@build_bazel_rules_nodejs//:defs.bzl", "check_bazel_version", "node_repositories", "yarn_install") +load("@build_bazel_rules_nodejs//:defs.bzl", "node_repositories", "yarn_install") node_repositories(package_json = ["//:package.json"]) @@ -100,14 +118,25 @@ browser_repositories( firefox = True, ) -load("@build_bazel_rules_typescript//:defs.bzl", "ts_setup_workspace") +load("@build_bazel_rules_typescript//:defs.bzl", "ts_setup_workspace", "check_rules_typescript_version") ts_setup_workspace() +# 0.16.0: tsc_wrapped uses user's typescript version & check_rules_typescript_version +check_rules_typescript_version("0.16.0") + load("@io_bazel_rules_sass//sass:sass_repositories.bzl", "sass_repositories") sass_repositories() +# +# Load and install our dependencies from local repositories +# + +load("@angular//:index.bzl", "ng_setup_workspace") + +ng_setup_workspace() + #################################### # Setup our local toolchain diff --git a/package.json b/package.json index c8f9f15b1..dde105fd6 100644 --- a/package.json +++ b/package.json @@ -4,38 +4,29 @@ "description": "Demo of bazel rules for angular", "license": "Apache 2.0", "dependencies": { - "@angular/animations": "6.0.4", - "@angular/common": "6.0.4", - "@angular/core": "6.0.4", - "@angular/forms": "6.0.4", - "@angular/platform-browser": "6.0.4", - "@angular/router": "6.0.4", - "@angular/upgrade": "6.0.4", "@ngrx/store": "6.1.0", "rxjs": "6.2.2", + "tslib": "1.9.3", "zone.js": "0.8.26" }, "devDependencies": { - "@angular/bazel": "6.0.4", - "@angular/compiler": "6.0.4", - "@angular/compiler-cli": "6.0.4", - "@angular/platform-browser-dynamic": "6.0.4", + "@angular/compiler": "6.1.2", + "@angular/compiler-cli": "6.1.2", + "@angular/core": "6.1.2", "@bazel/benchmark-runner": "0.1.0", "@bazel/ibazel": "0.4.0", + "@bazel/typescript": "0.16.0", "@types/jasmine": "2.8.8", + "@types/node": "6.0.88", "clang-format": "1.2.3", - "concurrently": "3.6.1", "husky": "0.14.3", "protractor": "5.4.0", - "typescript": "2.7.2" + "tsickle": "0.32.1", + "typescript": "2.9.1" }, "scripts": { - "postinstall": "concurrently \"webdriver-manager update $CHROMEDRIVER_VERSION_ARG\" \"ngc -p postinstall.tsconfig.json\"", + "postinstall": "ngc -p postinstall.tsconfig.json", "serve": "ibazel run //src:devserver", - "pree2e": "bazel build test/...", - "e2e": "yarn e2e-prodserver && yarn e2e-devserver", - "e2e-prodserver": "concurrently \"bazel run //src:prodserver\" \"while ! nc -z 127.0.0.1 5432; do sleep 1; done && protractor\" --kill-others --success first", - "e2e-devserver": "concurrently \"bazel run //src:devserver\" \"while ! nc -z 127.0.0.1 5432; do sleep 1; done && protractor\" --kill-others --success first", "prebuildifier": "bazel build @com_github_bazelbuild_buildtools//buildifier", "buildifier": "note: working around https://github.com/alexeagle/angular-bazel-example/issues/60", "buildifier": "find . -type f \\( -name BUILD -or -name BUILD.bazel \\) ! -path \"./node_modules/*\" | xargs $(bazel info bazel-bin)/external/com_github_bazelbuild_buildtools/buildifier/*/buildifier", diff --git a/postinstall.tsconfig.json b/postinstall.tsconfig.json index 96582ade2..4f408ed5d 100644 --- a/postinstall.tsconfig.json +++ b/postinstall.tsconfig.json @@ -1,6 +1,18 @@ // WORKAROUND https://github.com/angular/angular/issues/18810 -// This file is required to run ngc on angular and other libraries, -// to write files like node_modules/@angular/core/core.ngsummary.json +// +// This file is required to run ngc on 3rd party libraries such as @ngrx, +// to write files like node_modules/@ngrx/store/store.ngsummary.json. +// +// Using ngc to create generated files is sufficient as long +// as there are no components or directives in the 3rd party library +// that are used. If there are, then there is an existing issue where +// components & modules that use these 3rd party components or directives +// can't be tested with ts_web_test_suite(). +// See https://github.com/bazelbuild/rules_typescript/issues/192 +// +// The work-around for this right now is to compile the 3rd party +// from source using Bazel so that Bazel is used to create +// its generated files. { "compilerOptions": { "lib": [ @@ -11,14 +23,9 @@ "types": [] }, "include": [ - "node_modules/@angular/**/*", "node_modules/@ngrx/**/*" ], "exclude": [ - "node_modules/@angular/bazel/**", - "node_modules/@angular/compiler-cli/**", - "node_modules/@angular/tsc-wrapped/**", - "node_modules/@angular/*/testing/**", "node_modules/@ngrx/store/migrations/**", "node_modules/@ngrx/store/schematics/**", "node_modules/@ngrx/store/schematics-core/**" diff --git a/protractor.conf.js b/protractor.conf.js deleted file mode 100644 index 97ef55158..000000000 --- a/protractor.conf.js +++ /dev/null @@ -1,9 +0,0 @@ -exports.config = { - specs: ['dist/bin/test/e2e/*.spec.js'], - capabilities: {browserName: 'chrome', chromeOptions: {args: ['--no-sandbox']}}, - directConnect: true, - baseUrl: 'http://localhost:5432/', - framework: 'jasmine', - getPageTimeout: 60 * 1000, - allScriptsTimeout: 60 * 1000, -}; diff --git a/src/BUILD.bazel b/src/BUILD.bazel index 8e51bea9f..3db0c4f77 100644 --- a/src/BUILD.bazel +++ b/src/BUILD.bazel @@ -12,6 +12,8 @@ ng_module( deps = [ "//src/hello-world", "//src/todos", + "@angular//packages/core", + "@angular//packages/router", ], ) @@ -21,16 +23,17 @@ ts_devserver( name = "devserver", additional_root_paths = [ "angular_bazel_example/node_modules/zone.js/dist", + "angular_bazel_example/node_modules/tslib", "angular_bazel_example/node_modules/@ngrx/store/bundles", ], entry_module = "angular_bazel_example/src/main", scripts = [ ":require.config.js", - "//:angular_bundles", ], serving_path = "/bundle.min.js", static_files = [ "//:node_modules/zone.js/dist/zone.min.js", + "//:node_modules/tslib/tslib.js", "//:node_modules/@ngrx/store/bundles/store.umd.min.js", "index.html", ], diff --git a/src/hello-world/BUILD.bazel b/src/hello-world/BUILD.bazel index 7a5b974ce..0cd0e7760 100644 --- a/src/hello-world/BUILD.bazel +++ b/src/hello-world/BUILD.bazel @@ -20,9 +20,10 @@ ng_module( ":hello-world.component.html", ":hello-world-styles", ], - tsconfig = "//src:tsconfig.json", deps = [ "//src/lib", + "@angular//packages/core", + "@angular//packages/forms", "@rxjs", ], ) @@ -31,19 +32,28 @@ ts_library( name = "test_lib", testonly = 1, srcs = glob(["*.spec.ts"]), - deps = [":hello-world"], + deps = [ + ":hello-world", + "@angular//packages/core", + "@angular//packages/core/testing", + "@angular//packages/platform-browser", + "@angular//packages/platform-browser-dynamic/testing", + ], ) ts_web_test_suite( name = "test", - bootstrap = ["//:node_modules/zone.js/dist/zone-testing-bundle.js"], + srcs = ["//:node_modules/tslib/tslib.js"], + # do not sort + bootstrap = [ + "//:node_modules/zone.js/dist/zone-testing-bundle.js", + "//:node_modules/reflect-metadata/Reflect.js", + ], browsers = [ "@io_bazel_rules_webtesting//browsers:chromium-local", "@io_bazel_rules_webtesting//browsers:firefox-local", ], deps = [ ":test_lib", - "//:angular_bundles", - "//:angular_test_bundles", ], ) diff --git a/src/hello-world/hello-world.component.html b/src/hello-world/hello-world.component.html index 9441004ca..d61ec5487 100644 --- a/src/hello-world/hello-world.component.html +++ b/src/hello-world/hello-world.component.html @@ -2,4 +2,4 @@

Home

Hello {{ name }}
- + diff --git a/src/hello-world/hello-world.component.spec.ts b/src/hello-world/hello-world.component.spec.ts index c23d8c6b8..edde5e4f2 100644 --- a/src/hello-world/hello-world.component.spec.ts +++ b/src/hello-world/hello-world.component.spec.ts @@ -1,4 +1,3 @@ -import {DebugElement} from '@angular/core'; import {async, ComponentFixture, TestBed} from '@angular/core/testing'; import {By} from '@angular/platform-browser'; import {BrowserDynamicTestingModule, platformBrowserDynamicTesting} from '@angular/platform-browser-dynamic/testing'; diff --git a/src/hello-world/hello-world.module.ts b/src/hello-world/hello-world.module.ts index 30b94a3f2..1b3e162b1 100644 --- a/src/hello-world/hello-world.module.ts +++ b/src/hello-world/hello-world.module.ts @@ -1,9 +1,11 @@ import {NgModule} from '@angular/core'; +import {FormsModule} from '@angular/forms'; import {HelloWorldComponent} from './hello-world.component'; @NgModule({ declarations: [HelloWorldComponent], + imports: [FormsModule], exports: [HelloWorldComponent], }) export class HelloWorldModule { diff --git a/src/main.ts b/src/main.ts index beeae5e4b..e0e985ce4 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,3 +1,9 @@ +// `tslib` must be imported explicitly into the application +// when building angular from source using bazel +// TODO(gmagolan): Remove this import once it is no longer needed. +// See https://github.com/bazelbuild/rules_typescript/issues/252 +import 'tslib'; + import {platformBrowser} from '@angular/platform-browser'; import {AppModuleNgFactory} from './app.module.ngfactory'; diff --git a/src/reducers/BUILD.bazel b/src/reducers/BUILD.bazel index b5b1809c5..29ae66db2 100644 --- a/src/reducers/BUILD.bazel +++ b/src/reducers/BUILD.bazel @@ -5,5 +5,4 @@ load("@build_bazel_rules_typescript//:defs.bzl", "ts_library") ts_library( name = "reducers", srcs = glob(["*.ts"]), - tsconfig = "//src:tsconfig.json", ) diff --git a/src/todos/BUILD.bazel b/src/todos/BUILD.bazel index d71ab1d4e..51544e5c8 100644 --- a/src/todos/BUILD.bazel +++ b/src/todos/BUILD.bazel @@ -20,10 +20,12 @@ ng_module( "todos.component.html", ":todos-styles", ], - tsconfig = "//src:tsconfig.json", deps = [ "//src/lib", "//src/reducers", + "@angular//packages/common", + "@angular//packages/core", + "@angular//packages/forms", "@rxjs", ], ) diff --git a/test/e2e/BUILD.bazel b/test/e2e/BUILD.bazel index f023d58b5..81da92964 100644 --- a/test/e2e/BUILD.bazel +++ b/test/e2e/BUILD.bazel @@ -1,7 +1,24 @@ load("@build_bazel_rules_typescript//:defs.bzl", "ts_library") +load("@angular//:index.bzl", "protractor_web_test_suite") ts_library( name = "e2e", testonly = 1, srcs = glob(["*.ts"]), ) + +protractor_web_test_suite( + name = "prodserver_test", + data = ["@angular//packages/bazel/src/protractor/utils"], + on_prepare = ":protractor.on-prepare.js", + server = "//src:prodserver", + deps = [":e2e"], +) + +protractor_web_test_suite( + name = "devserver_test", + data = ["@angular//packages/bazel/src/protractor/utils"], + on_prepare = ":protractor.on-prepare.js", + server = "//src:devserver", + deps = [":e2e"], +) diff --git a/test/e2e/protractor.on-prepare.js b/test/e2e/protractor.on-prepare.js new file mode 100644 index 000000000..55c33b0ba --- /dev/null +++ b/test/e2e/protractor.on-prepare.js @@ -0,0 +1,23 @@ +// The function exported from this file is used by the protractor_web_test_suite. +// It is passed to the `onPrepare` configuration setting in protractor and executed +// before running tests. +// +// If the function returns a promise, as it does here, protractor will wait +// for the promise to resolve before running tests. + +const protractorUtils = require('@angular/bazel/protractor-utils'); +const protractor = require('protractor'); + +module.exports = function(config) { + // In this example, `@angular/bazel/protractor-utils` is used to run + // the server. protractorUtils.runServer() runs the server on a randomly + // selected port (given a port flag to pass to the server as an argument). + // The port used is returned in serverSpec and the protractor serverUrl + // is the configured. + const portFlag = config.server.endsWith('prodserver') ? '-p' : '-port'; + return protractorUtils.runServer(config.workspace, config.server, portFlag, []) + .then(serverSpec => { + const serverUrl = `http://localhost:${serverSpec.port}`; + protractor.browser.baseUrl = serverUrl; + }); +}; diff --git a/tools/bazel.rc b/tools/bazel.rc index f6d358218..d8831cb01 100644 --- a/tools/bazel.rc +++ b/tools/bazel.rc @@ -12,3 +12,6 @@ build --strategy=AngularTemplateCompile=worker build --symlink_prefix=dist/ test --test_output=errors + +# Use the Angular 6 compiler +build --define=compile=legacy \ No newline at end of file diff --git a/tools/history-server/index.bzl b/tools/history-server/index.bzl index 27140cf50..4e7d4b53e 100644 --- a/tools/history-server/index.bzl +++ b/tools/history-server/index.bzl @@ -3,12 +3,11 @@ See https://www.npmjs.com/package/history-server """ load("@build_bazel_rules_nodejs//:defs.bzl", "nodejs_binary") -def history_server(port = 5432, args = [], **kwargs): - if not args: - args = [native.package_name()] - args.extend(["-p", str(port)]) +def history_server(templated_args = [], **kwargs): + if not templated_args: + templated_args = [native.package_name()] nodejs_binary( node_modules = "@history-server_runtime_deps//:node_modules", entry_point = "history-server/modules/cli.js", - args = args, + templated_args = templated_args, **kwargs) diff --git a/yarn.lock b/yarn.lock index 8e9eda143..379cb5149 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,76 +2,24 @@ # yarn lockfile v1 -"@angular/animations@6.0.4": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-6.0.4.tgz#4e22612e8fed3193983d985c748514a03404bd96" - dependencies: - tslib "^1.9.0" - -"@angular/bazel@6.0.4": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@angular/bazel/-/bazel-6.0.4.tgz#a87edd5b5c9b23cdb2b3f2188d95d18f87c1d1a4" - dependencies: - "@bazel/typescript" "^0.15.0" - "@types/node" "6.0.84" - "@types/shelljs" "0.7.7" - protobufjs "5.0.0" - shelljs "0.7.8" - -"@angular/common@6.0.4": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@angular/common/-/common-6.0.4.tgz#e3d194a1bb1e143044774488d610437a982179fa" - dependencies: - tslib "^1.9.0" - -"@angular/compiler-cli@6.0.4": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-6.0.4.tgz#03596a2365aaed418e09999493560ba82fd45190" +"@angular/compiler-cli@6.1.2": + version "6.1.2" + resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-6.1.2.tgz#00829df848210a8a06c3641428f36525fdf41e53" dependencies: chokidar "^1.4.2" minimist "^1.2.0" reflect-metadata "^0.1.2" - tsickle "^0.29.0" - -"@angular/compiler@6.0.4": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-6.0.4.tgz#86d3adc2c915ee98aa8e00c542c2ef1c09f9c61f" - dependencies: - tslib "^1.9.0" - -"@angular/core@6.0.4": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@angular/core/-/core-6.0.4.tgz#80b19624493126b6c7e3a180a33dee92c84b4bd6" - dependencies: - tslib "^1.9.0" - -"@angular/forms@6.0.4": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-6.0.4.tgz#abc5ea355b5261c49f111366f41a812aa9d3d1d3" - dependencies: - tslib "^1.9.0" - -"@angular/platform-browser-dynamic@6.0.4": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-6.0.4.tgz#3b86f6b826d45418520da583eb8ba0526f62a4bb" - dependencies: - tslib "^1.9.0" - -"@angular/platform-browser@6.0.4": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-6.0.4.tgz#3a86890324fd9de37df8d7195fcedf4145eefb3b" - dependencies: - tslib "^1.9.0" + tsickle "^0.32.1" -"@angular/router@6.0.4": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@angular/router/-/router-6.0.4.tgz#81c96dfa42a8c4a218cbd450b1e8959a76ea9595" +"@angular/compiler@6.1.2": + version "6.1.2" + resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-6.1.2.tgz#56fada04cb7dc77a5d3f0b786be713130293d468" dependencies: tslib "^1.9.0" -"@angular/upgrade@6.0.4": - version "6.0.4" - resolved "https://registry.yarnpkg.com/@angular/upgrade/-/upgrade-6.0.4.tgz#b12a016bab98db77bacbe9b1a83c4c2a47e5baf5" +"@angular/core@6.1.2": + version "6.1.2" + resolved "https://registry.yarnpkg.com/@angular/core/-/core-6.1.2.tgz#412dd32a91ec1d5d6db508babbb36e9799235d8d" dependencies: tslib "^1.9.0" @@ -92,45 +40,29 @@ version "0.4.0" resolved "https://registry.yarnpkg.com/@bazel/ibazel/-/ibazel-0.4.0.tgz#e3e5c8e5b6b36c4d72952da405e6ee4f63545a15" -"@bazel/typescript@^0.15.0": - version "0.15.0" - resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-0.15.0.tgz#bd588b8b9fcc5763c3f14787fdb29ba4e127258d" +"@bazel/typescript@0.16.0": + version "0.16.0" + resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-0.16.0.tgz#020b44998c851131d631eab18783f53ed7e6e826" + dependencies: + protobufjs "5.0.0" + tsickle "0.25.x" + tsutils "2.20.0" "@ngrx/store@6.1.0": version "6.1.0" resolved "https://registry.yarnpkg.com/@ngrx/store/-/store-6.1.0.tgz#5b027647a797bf027912568214b10375dd75af38" -"@types/events@*": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@types/events/-/events-1.2.0.tgz#81a6731ce4df43619e5c8c945383b3e62a89ea86" - -"@types/glob@*": - version "5.0.35" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-5.0.35.tgz#1ae151c802cece940443b5ac246925c85189f32a" - dependencies: - "@types/events" "*" - "@types/minimatch" "*" - "@types/node" "*" - "@types/jasmine@2.8.8": version "2.8.8" resolved "https://registry.yarnpkg.com/@types/jasmine/-/jasmine-2.8.8.tgz#bf53a7d193ea8b03867a38bfdb4fbb0e0bf066c9" -"@types/minimatch@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" - -"@types/node@*": - version "10.3.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.3.1.tgz#51092fbacaed768a122a293814474fbf6e5e8b6d" - -"@types/node@6.0.84": - version "6.0.84" - resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.84.tgz#193ffe5a9f42864d425ffd9739d95b753c6a1eab" +"@types/node@6.0.88": + version "6.0.88" + resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.88.tgz#f618f11a944f6a18d92b5c472028728a3e3d4b66" "@types/node@^6.0.46": - version "6.0.112" - resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.112.tgz#0f37473b1d1ecd30c8bf57215ef4fb558f99cc86" + version "6.0.116" + resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.116.tgz#2f9cd62b4ecc4927e3942e2655c182eecf5b45f1" "@types/q@^0.0.32": version "0.0.32" @@ -140,24 +72,17 @@ version "3.0.10" resolved "https://registry.yarnpkg.com/@types/selenium-webdriver/-/selenium-webdriver-3.0.10.tgz#e98cc6f05b4b436277671c784ee2f9d05a634f9b" -"@types/shelljs@0.7.7": - version "0.7.7" - resolved "https://registry.yarnpkg.com/@types/shelljs/-/shelljs-0.7.7.tgz#1f7bfa28947661afea06365db9b1135bbc903ec4" - dependencies: - "@types/glob" "*" - "@types/node" "*" - abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" -adm-zip@^0.4.7: +adm-zip@^0.4.9: version "0.4.11" resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.11.tgz#2aa54c84c4b01a9d0fb89bb11982a51f13e3d62a" agent-base@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.0.tgz#9838b5c3392b962bad031e6a4c5e1024abec45ce" + version "4.2.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" dependencies: es6-promisify "^5.0.0" @@ -182,12 +107,6 @@ ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - dependencies: - color-convert "^1.9.0" - ansi-styles@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178" @@ -246,8 +165,10 @@ ascli@~1: optjs "~3.2.2" asn1@~0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + dependencies: + safer-buffer "~2.1.0" assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" @@ -274,16 +195,16 @@ aws-sign2@~0.7.0: resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" aws4@^1.6.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.7.0.tgz#d4d0e9b9dbfca77bf08eeb0a8a471550fe39e289" + version "1.8.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" bcrypt-pbkdf@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" dependencies: tweetnacl "^0.14.3" @@ -319,12 +240,8 @@ browserstack@^1.5.1: https-proxy-agent "^2.2.1" buffer-from@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.0.tgz#87fcaa3a298358e0ade6e442cfce840740d1ad04" - -builtin-modules@^1.0.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" bytebuffer@~5: version "5.0.1" @@ -350,14 +267,6 @@ chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - chalk@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f" @@ -413,16 +322,6 @@ code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" -color-convert@^1.9.0: - version "1.9.2" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.2.tgz#49881b8fba67df12a96bdf3f56c0aab9e7913147" - dependencies: - color-name "1.1.1" - -color-name@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689" - colour@~0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/colour/-/colour-0.7.1.tgz#9cb169917ec5d12c0736d3e8685746df1cadf778" @@ -433,10 +332,6 @@ combined-stream@1.0.6, combined-stream@~1.0.5: dependencies: delayed-stream "~1.0.0" -commander@2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.6.0.tgz#9df7e52fb2a0cb0fb89058ee80c3104225f37e1d" - concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -450,20 +345,6 @@ concat-stream@1.6.2: readable-stream "^2.2.2" typedarray "^0.0.6" -concurrently@3.6.1: - version "3.6.1" - resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-3.6.1.tgz#2f95baec5c4051294dfbb55b57a3b98a3e2b45ec" - dependencies: - chalk "^2.4.1" - commander "2.6.0" - date-fns "^1.23.0" - lodash "^4.5.1" - read-pkg "^3.0.0" - rx "2.3.24" - spawn-command "^0.0.2-1" - supports-color "^3.2.3" - tree-kill "^1.1.0" - console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" @@ -486,10 +367,6 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -date-fns@^1.23.0: - version "1.29.0" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.29.0.tgz#12e609cdcb935127311d04d33334e2960a2a54e6" - debug@2.6.9, debug@^2.1.2, debug@^2.6.8: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -534,17 +411,16 @@ detect-libc@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" +diff@^3.2.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + ecc-jsbn@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" dependencies: jsbn "~0.1.0" - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - dependencies: - is-arrayish "^0.2.1" + safer-buffer "^2.1.0" es6-promise@^4.0.3: version "4.2.4" @@ -560,7 +436,7 @@ es6-promisify@^5.0.0: dependencies: es6-promise "^4.0.3" -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: +escape-string-regexp@^1.0.2: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -581,8 +457,8 @@ expand-range@^1.8.1: fill-range "^2.1.0" extend@~3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" extglob@^0.3.1: version "0.3.2" @@ -763,22 +639,10 @@ has-color@~0.1.0: version "0.1.7" resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" -hosted-git-info@^2.1.4: - version "2.6.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.6.0.tgz#23235b29ab230c576aab0d4f13fc046b0b038222" - http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" @@ -833,18 +697,10 @@ ini@^1.3.4, ini@~1.3.0: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" -interpret@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" - invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - is-binary-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" @@ -855,12 +711,6 @@ is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" -is-builtin-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" - dependencies: - builtin-modules "^1.0.0" - is-ci@^1.0.10: version "1.1.0" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.1.0.tgz#247e4162e7860cebbdaf30b774d6b0ac7dcfe7a5" @@ -957,6 +807,12 @@ jasmine-core@~2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.8.0.tgz#bcc979ae1f9fd05701e45e52e65d3a5d63f1a24e" +jasmine-diff@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/jasmine-diff/-/jasmine-diff-0.1.3.tgz#93ccc2dcc41028c5ddd4606558074839f2deeaa8" + dependencies: + diff "^3.2.0" + jasmine@2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/jasmine/-/jasmine-2.8.0.tgz#6b089c0a11576b1f16df11b80146d91d4e8b8a3e" @@ -973,10 +829,6 @@ jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" -json-parse-better-errors@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - json-schema-traverse@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" @@ -1030,19 +882,6 @@ lie@~3.1.0: dependencies: immediate "~3.0.5" -load-json-file@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" - dependencies: - graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.0.0" - strip-bom "^3.0.0" - -lodash@^4.5.1: - version "4.17.10" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" - long@~3: version "3.2.0" resolved "https://registry.yarnpkg.com/long/-/long-3.2.0.tgz#d821b7138ca1cb581c172990ef14db200b5c474b" @@ -1069,15 +908,15 @@ micromatch@^2.1.5: parse-glob "^3.0.4" regex-cache "^0.4.2" -mime-db@~1.33.0: - version "1.33.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" +mime-db@~1.35.0: + version "1.35.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.35.0.tgz#0569d657466491283709663ad379a99b90d9ab47" mime-types@^2.1.12, mime-types@~2.1.17: - version "2.1.18" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" + version "2.1.19" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.19.tgz#71e464537a7ef81c15f2db9d97e913fc0ff606f0" dependencies: - mime-db "~1.33.0" + mime-db "~1.35.0" mime@^1.3.4: version "1.6.0" @@ -1128,7 +967,7 @@ nan@^2.9.2: version "2.10.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" -needle@^2.2.0: +needle@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.1.tgz#b5e325bd3aae8c2678902fa296f729455d1d3a7d" dependencies: @@ -1137,16 +976,16 @@ needle@^2.2.0: sax "^1.2.4" node-pre-gyp@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.0.tgz#6e4ef5bb5c5203c6552448828c852c40111aac46" + version "0.10.3" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc" dependencies: detect-libc "^1.0.2" mkdirp "^0.5.1" - needle "^2.2.0" + needle "^2.2.1" nopt "^4.0.1" npm-packlist "^1.1.6" npmlog "^4.0.2" - rc "^1.1.7" + rc "^1.2.7" rimraf "^2.6.1" semver "^5.3.0" tar "^4" @@ -1165,15 +1004,6 @@ nopt@^4.0.1: abbrev "1" osenv "^0.1.4" -normalize-package-data@^2.3.2: - version "2.4.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" - dependencies: - hosted-git-info "^2.1.4" - is-builtin-module "^1.0.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - normalize-path@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379" @@ -1189,8 +1019,8 @@ npm-bundled@^1.0.1: resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.3.tgz#7e71703d973af3370a9591bafe3a63aca0be2308" npm-packlist@^1.1.6: - version "1.1.10" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.10.tgz#1039db9e985727e464df066f4cf0ab6ef85c398a" + version "1.1.11" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.11.tgz#84e8c683cbe7867d34b1d357d893ce29e28a02de" dependencies: ignore-walk "^3.0.1" npm-bundled "^1.0.1" @@ -1274,13 +1104,6 @@ parse-glob@^3.0.4: is-extglob "^1.0.0" is-glob "^2.0.0" -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" @@ -1290,14 +1113,8 @@ path-is-inside@^1.0.1: resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" path-parse@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" - -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - dependencies: - pify "^3.0.0" + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" pend@~1.2.0: version "1.2.0" @@ -1311,10 +1128,6 @@ pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" @@ -1405,14 +1218,14 @@ qs@~6.5.1: resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" randomatic@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.0.0.tgz#d35490030eb4f7578de292ce6dfb04a91a128923" + version "3.1.0" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.0.tgz#36f2ca708e9e567f5ed2ec01949026d50aa10116" dependencies: is-number "^4.0.0" kind-of "^6.0.0" math-random "^1.0.1" -rc@^1.1.7: +rc@^1.2.7: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" dependencies: @@ -1421,14 +1234,6 @@ rc@^1.1.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -read-pkg@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" - dependencies: - load-json-file "^4.0.0" - normalize-package-data "^2.3.2" - path-type "^3.0.0" - readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.2.2: version "2.3.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" @@ -1461,12 +1266,6 @@ readdirp@^2.0.0: readable-stream "^2.0.2" set-immediate-shim "^1.0.1" -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" - dependencies: - resolve "^1.1.6" - reflect-metadata@^0.1.2: version "0.1.12" resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.12.tgz#311bf0c6b63cd782f228a81abe146a2bfa9c56f2" @@ -1489,7 +1288,7 @@ repeat-string@^1.5.2: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" -request@^2.78.0: +request@^2.87.0: version "2.87.0" resolved "https://registry.yarnpkg.com/request/-/request-2.87.0.tgz#32f00235cd08d482b4d0d68db93a829c0ed5756e" dependencies: @@ -1515,8 +1314,8 @@ request@^2.78.0: uuid "^3.1.0" resolve@^1.1.6: - version "1.7.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.7.1.tgz#aadd656374fd298aee895bc026b8297418677fd3" + version "1.8.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" dependencies: path-parse "^1.0.5" @@ -1526,10 +1325,6 @@ rimraf@^2.2.8, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.1: dependencies: glob "^7.0.5" -rx@2.3.24: - version "2.3.24" - resolved "https://registry.yarnpkg.com/rx/-/rx-2.3.24.tgz#14f950a4217d7e35daa71bbcbe58eff68ea4b2b7" - rxjs@6.2.2: version "6.2.2" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.2.2.tgz#eb75fa3c186ff5289907d06483a77884586e1cf9" @@ -1540,7 +1335,7 @@ safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" -"safer-buffer@>= 2.1.2 < 3": +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -1563,7 +1358,7 @@ selenium-webdriver@3.6.0, selenium-webdriver@^3.0.1: tmp "0.0.30" xml2js "^0.4.17" -"semver@2 || 3 || 4 || 5", semver@^5.3.0: +semver@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" @@ -1575,18 +1370,16 @@ set-immediate-shim@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" -shelljs@0.7.8: - version "0.7.8" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3" - dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - signal-exit@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" +source-map-support@^0.4.2, source-map-support@~0.4.0: + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + dependencies: + source-map "^0.5.6" + source-map-support@^0.5.0: version "0.5.6" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.6.tgz#4435cee46b1aab62b8e8610ce60f788091c51c13" @@ -1594,12 +1387,6 @@ source-map-support@^0.5.0: buffer-from "^1.0.0" source-map "^0.6.0" -source-map-support@~0.4.0: - version "0.4.18" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" - dependencies: - source-map "^0.5.6" - source-map@^0.5.6: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" @@ -1608,40 +1395,15 @@ source-map@^0.6.0: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" -spawn-command@^0.0.2-1: - version "0.0.2-1" - resolved "https://registry.yarnpkg.com/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" - -spdx-correct@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82" - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9" - -spdx-expression-parse@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87" - sshpk@^1.7.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.1.tgz#130f5975eddad963f1d56f92b9ac6c51fa9f83eb" + version "1.14.2" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.2.tgz#c6fc61648a3d9c4e764fd3fcdf4ea105e492ba98" dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" dashdash "^1.12.0" getpass "^0.1.1" + safer-buffer "^2.0.2" optionalDependencies: bcrypt-pbkdf "^1.0.0" ecc-jsbn "~0.1.1" @@ -1689,10 +1451,6 @@ strip-ansi@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991" -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - strip-indent@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" @@ -1705,21 +1463,9 @@ supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" -supports-color@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - dependencies: - has-flag "^1.0.0" - -supports-color@^5.3.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" - dependencies: - has-flag "^3.0.0" - tar@^4: - version "4.4.4" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.4.tgz#ec8409fae9f665a4355cc3b4087d0820232bb8cd" + version "4.4.6" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.6.tgz#63110f09c00b4e60ac8bcfe1bf3c8660235fbc9b" dependencies: chownr "^1.0.1" fs-minipass "^1.2.5" @@ -1752,22 +1498,34 @@ tough-cookie@~2.3.3: dependencies: punycode "^1.4.1" -tree-kill@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.0.tgz#5846786237b4239014f05db156b643212d4c6f36" +tsickle@0.25.x: + version "0.25.6" + resolved "https://registry.yarnpkg.com/tsickle/-/tsickle-0.25.6.tgz#b595db16b236721824eeeda8bb262365b47ef334" + dependencies: + minimist "^1.2.0" + mkdirp "^0.5.1" + source-map "^0.5.6" + source-map-support "^0.4.2" -tsickle@^0.29.0: - version "0.29.0" - resolved "https://registry.yarnpkg.com/tsickle/-/tsickle-0.29.0.tgz#812806554bb46c1aa16eb0fe2a051da95ca8f5a4" +tsickle@0.32.1, tsickle@^0.32.1: + version "0.32.1" + resolved "https://registry.yarnpkg.com/tsickle/-/tsickle-0.32.1.tgz#f16e94ba80b32fc9ebe320dc94fbc2ca7f3521a5" dependencies: + jasmine-diff "^0.1.3" minimist "^1.2.0" mkdirp "^0.5.1" source-map "^0.6.0" source-map-support "^0.5.0" -tslib@^1.9.0: - version "1.9.2" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.2.tgz#8be0cc9a1f6dc7727c38deb16c2ebd1a2892988e" +tslib@1.9.3, tslib@^1.8.1, tslib@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" + +tsutils@2.20.0: + version "2.20.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.20.0.tgz#303394064bc80be8ee04e10b8609ae852e9312d3" + dependencies: + tslib "^1.8.1" tunnel-agent@^0.6.0: version "0.6.0" @@ -1783,9 +1541,9 @@ typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" -typescript@2.7.2: - version "2.7.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.7.2.tgz#2d615a1ef4aee4f574425cdff7026edf81919836" +typescript@2.9.1: + version "2.9.1" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.9.1.tgz#fdb19d2c67a15d11995fd15640e373e09ab09961" ultron@~1.1.0: version "1.1.1" @@ -1806,15 +1564,8 @@ util-deprecate@~1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" uuid@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" - -validate-npm-package-license@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338" - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" + version "3.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" verror@1.10.0: version "1.10.0" @@ -1832,17 +1583,17 @@ webdriver-js-extender@2.0.0: selenium-webdriver "^3.0.1" webdriver-manager@^12.0.6: - version "12.0.6" - resolved "https://registry.yarnpkg.com/webdriver-manager/-/webdriver-manager-12.0.6.tgz#3df1a481977010b4cbf8c9d85c7a577828c0e70b" + version "12.1.0" + resolved "https://registry.yarnpkg.com/webdriver-manager/-/webdriver-manager-12.1.0.tgz#f6601e52de5f0c97fc7024c889eeb2416f2f1d9d" dependencies: - adm-zip "^0.4.7" + adm-zip "^0.4.9" chalk "^1.1.1" del "^2.2.0" glob "^7.0.3" ini "^1.3.4" minimist "^1.2.0" q "^1.4.1" - request "^2.78.0" + request "^2.87.0" rimraf "^2.5.2" semver "^5.3.0" xml2js "^0.4.17"