Tear out OSS-only parts of rules_typescript These already moved to rules_nodejs Closes #429 PiperOrigin-RevId: 241422158
diff --git a/.bazelci/presubmit.yml b/.bazelci/presubmit.yml index 92b8746..dc31779 100644 --- a/.bazelci/presubmit.yml +++ b/.bazelci/presubmit.yml
@@ -17,9 +17,6 @@ - "@nodejs//:yarn" build_targets: - "..." - # Run some targets again, but addressed as an external repo - # TODO(alexeagle): run all of them after fixing https://github.com/bazelbuild/rules_typescript/issues/243 - - "@npm_bazel_typescript//examples/some_library:lib" test_flags: # TODO(gregmagolan): shared libs needed by chrome & firefox not available on ubuntu1604 - "--test_tag_filters=-browser:chromium-local,-browser:firefox-local"
diff --git a/BUILD.bazel b/BUILD.bazel index 74d8f24..d542231 100644 --- a/BUILD.bazel +++ b/BUILD.bazel
@@ -22,48 +22,19 @@ load("@build_bazel_rules_nodejs//:defs.bzl", "npm_package") load("@build_bazel_rules_nodejs//internal/js_library:js_library.bzl", "js_library") -# ts_library defaults to this label in the top-level package. -# Point to where the file actually lives. -alias( - name = "tsconfig.json", - actual = "//examples:tsconfig.json", - visibility = ["//visibility:public"], -) - -exports_files(["LICENSE"]) +exports_files(["LICENSE", "tsconfig.json"]) gazelle( name = "gazelle", prefix = "github.com/bazelbuild/rules_typescript", ) -# Runtime libraries needed by the protobufjs library. -# Any JS code produced by the ts_proto_library rule has a runtime dependency on these scripts. -js_library( - name = "protobufjs_bootstrap_scripts", - srcs = [ - "@build_bazel_rules_typescript_protobufs_compiletime_deps//node_modules/long:dist/long.js", - "@build_bazel_rules_typescript_protobufs_compiletime_deps//node_modules/protobufjs:dist/minimal/protobuf.min.js", - ], - # Make devmode loading work when it does require("protobufjs/minimal") - # so this is shimmed to define it to equal global.protobuf - amd_names = { - "long": "Long", - "protobufjs/minimal": "protobuf", - }, - visibility = ["//visibility:public"], -) - - # This package is included in the npm_bazel_typescript package in rules_nodejs/packages/typescript npm_package( name = "npm_bazel_typescript_package", srcs = [ "//third_party/github.com/bazelbuild/bazel/src/main/protobuf:npm_package_assets", - "//internal:common/compilation.bzl", - "//internal:common/json_marshal.bzl", - "//internal:common/module_mappings.bzl", - "//internal:common/tsconfig.bzl", + "//internal:npm_package_assets", ], deps = [ "//internal:generated_BUILD",
diff --git a/README.md b/README.md index 8c999b3..41028ad 100644 --- a/README.md +++ b/README.md
@@ -1,8 +1,5 @@ # build_bazel_rules_typescript -> Looking for documentation for TypeScript bazel rules that used to be here? -> See https://npmjs.com/package/@bazel/typescript - This repo contains a mirror of some Google-internal bits that support TypeScript development under Bazel. It contains these utilities:
diff --git a/WORKSPACE b/WORKSPACE index e6fc9e8..7bb6346 100644 --- a/WORKSPACE +++ b/WORKSPACE
@@ -12,26 +12,15 @@ # See the License for the specific language governing permissions and # limitations under the License. -workspace(name = "npm_bazel_typescript") - -# Load nested npm_bazel_karma repository -local_repository( - name = "npm_bazel_karma", - path = "internal/karma", -) +workspace(name = "build_bazel_rules_typescript") # Load our dependencies load("//:package.bzl", "rules_typescript_dev_dependencies") rules_typescript_dev_dependencies() -# Load rules_karma dependencies -load("@npm_bazel_karma//:package.bzl", "rules_karma_dependencies") - -rules_karma_dependencies() - # Setup nodejs toolchain -load("@build_bazel_rules_nodejs//:defs.bzl", "node_repositories", "yarn_install") +load("@build_bazel_rules_nodejs//:defs.bzl", "yarn_install") # Use a bazel-managed npm dependency, allowing us to test resolution to these paths yarn_install( @@ -40,9 +29,6 @@ yarn_lock = "//examples/bazel_managed_deps:yarn.lock", ) -# Install a hermetic version of node. -node_repositories() - # Download npm dependencies yarn_install( name = "npm", @@ -50,6 +36,9 @@ yarn_lock = "//:yarn.lock", ) +load("@npm//:install_bazel_dependencies.bzl", "install_bazel_dependencies") +install_bazel_dependencies() + # Setup rules_go toolchain load("@io_bazel_rules_go//go:def.bzl", "go_register_toolchains", "go_rules_dependencies") @@ -67,21 +56,6 @@ ts_setup_dev_workspace() -# Dependencies for generating documentation -load("@io_bazel_rules_sass//sass:sass_repositories.bzl", "sass_repositories") - -sass_repositories() - -# Setup rules_webtesting toolchain -load("@io_bazel_rules_webtesting//web:repositories.bzl", "web_test_repositories") - -web_test_repositories() - -# Setup browser repositories -load("@npm_bazel_karma//:browser_repositories.bzl", "browser_repositories") - -browser_repositories() - local_repository( name = "devserver_test_workspace", path = "devserver/devserver/test/test-workspace",
diff --git a/defs.bzl b/defs.bzl deleted file mode 100644 index 2e223e8..0000000 --- a/defs.bzl +++ /dev/null
@@ -1,33 +0,0 @@ -# Copyright 2017 The Bazel Authors. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -""" Public API surface is re-exported here. - -Users should not load files under "/internal" -""" - -load("//internal/devserver:ts_devserver.bzl", _ts_devserver = "ts_devserver_macro") -load("//internal/protobufjs:ts_proto_library.bzl", _ts_proto_library = "ts_proto_library") -load("//internal:build_defs.bzl", _ts_library = "ts_library_macro") -load("//internal:ts_config.bzl", _ts_config = "ts_config") -load("//internal:ts_repositories.bzl", _ts_setup_workspace = "ts_setup_workspace") - -ts_setup_workspace = _ts_setup_workspace -ts_library = _ts_library -ts_config = _ts_config -ts_devserver = _ts_devserver - -ts_proto_library = _ts_proto_library -# DO NOT ADD MORE rules here unless they appear in the generated docsite. -# Run yarn skydoc to re-generate the docsite.
diff --git a/devserver/devserver/devserver_test.go b/devserver/devserver/devserver_test.go index 1fa9129..0c0ba56 100644 --- a/devserver/devserver/devserver_test.go +++ b/devserver/devserver/devserver_test.go
@@ -47,9 +47,9 @@ handler := CreateFileHandler("/app.js", "manifest.MF", []string{ // This verifies that we can resolve relatively to the current package. Usually the // devserver Bazel rule adds the current package here. - "npm_bazel_typescript/devserver/devserver", + "build_bazel_rules_typescript/devserver/devserver", // Verifies that we can specify subfolders of workspaces - "npm_bazel_typescript/devserver/devserver/test", + "build_bazel_rules_typescript/devserver/devserver/test", // Verifies that we can specify external workspaces as root dirs. "devserver_test_workspace", // Verifies that we can specify subfolders from external workspaces.
diff --git a/examples/BUILD.bazel b/examples/BUILD.bazel deleted file mode 100644 index a5a3072..0000000 --- a/examples/BUILD.bazel +++ /dev/null
@@ -1,60 +0,0 @@ -# Copyright 2017 The Bazel Authors. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -load("//:defs.bzl", "ts_config") -load("//internal:defaults.bzl", "ts_library") - -package(default_visibility = ["//visibility:public"]) - -exports_files(["tsconfig.json"]) - -ts_library( - name = "types", - srcs = ["types.d.ts"], -) - -ts_library( - name = "foo_ts_library", - srcs = ["foo.ts"], - tsconfig = ":tsconfig.json", - deps = [ - ":types", - "//examples/generated_ts", - ], -) - -ts_library( - name = "bar_ts_library", - srcs = ["bar.ts"], - tsconfig = ":tsconfig-bar.json", - deps = [ - ":foo_ts_library", - "//examples/generated_ts", - "//examples/some_library:lib", - "@npm//typescript", - # Example of using the `@npm//@types` target to depend on all - # @types packages and with the types attribute of tsconfig not - # specified. In this case, typescript will automatically discover - # all types under node_modules/@types and included them in the compile. - # See getAutomaticTypeDirectiveNames in - # https://github.com/Microsoft/TypeScript/blob/master/src/compiler/moduleNameResolver.ts. - "@npm//@types", - ], -) - -ts_config( - name = "tsconfig-test", - src = "tsconfig-test.json", - deps = [":tsconfig.json"], -)
diff --git a/examples/app/BUILD.bazel b/examples/app/BUILD.bazel deleted file mode 100644 index 89842d1..0000000 --- a/examples/app/BUILD.bazel +++ /dev/null
@@ -1,45 +0,0 @@ -load("@build_bazel_rules_nodejs//:defs.bzl", "http_server", "rollup_bundle") -load("//:defs.bzl", "ts_devserver") -load("//internal:defaults.bzl", "ts_library") - -ts_library( - name = "app", - srcs = ["app.ts"], -) - -ts_devserver( - name = "devserver", - port = 8080, - # This is the path we'll request from the browser, see index.html - serving_path = "/bundle.min.js", - # The devserver can serve our static files too - static_files = ["index.html"], - # We'll collect all the devmode JS sources from these TypeScript libraries - deps = [":app"], -) - -rollup_bundle( - name = "bundle", - entry_point = "examples/app/app", - deps = [":app"], -) - -http_server( - name = "prodserver", - data = [ - "index.html", - ":bundle", - ], -) - -ts_library( - name = "e2e", - testonly = 1, - srcs = ["app_e2e_test.ts"], - tsconfig = "//examples:tsconfig-test", - deps = [ - "@npm//@types/jasmine", - "@npm//@types/node", - "@npm//protractor", - ], -)
diff --git a/examples/app/app.ts b/examples/app/app.ts deleted file mode 100644 index 6c1c6e9..0000000 --- a/examples/app/app.ts +++ /dev/null
@@ -1,4 +0,0 @@ -const el: HTMLDivElement = document.createElement('div'); -el.innerText = 'Hello, TypeScript'; -el.className = 'ts1'; -document.body.appendChild(el);
diff --git a/examples/app/app_e2e_test.ts b/examples/app/app_e2e_test.ts deleted file mode 100644 index 1ce56fb..0000000 --- a/examples/app/app_e2e_test.ts +++ /dev/null
@@ -1,25 +0,0 @@ -import {browser, by, element, ExpectedConditions} from 'protractor'; - -// This test uses Protractor without Angular, so disable Angular features -browser.waitForAngularEnabled(false); - -// Since we don't have a protractor bazel rule yet, the test is brought up in -// parallel with building the service under test. So the timeout must include -// compiling the application as well as starting the server. -const timeoutMs = 90 * 1000; - -describe('app', () => { - beforeAll(() => { - browser.get(''); - // Don't run any specs until we see a <div> on the page. - browser.wait( - ExpectedConditions.presenceOf(element(by.css('div.ts1'))), - timeoutMs); - }, timeoutMs); - - it('should display: Hello, TypeScript', (done) => { - const div = element(by.css('div.ts1')); - div.getText().then(t => expect(t).toEqual(`Hello, TypeScript`)); - done(); - }); -});
diff --git a/examples/app/index.html b/examples/app/index.html deleted file mode 100644 index 8af1e7f..0000000 --- a/examples/app/index.html +++ /dev/null
@@ -1,21 +0,0 @@ -<!doctype html> - -<!-- - This HTML file is an example of how you can write and serve your own - index page. It's not required for ts_devserver - if no index.html file is - found to serve, a simple one will be generated. ---> -<html> - <head> - <title>ts_devserver example</title> - </head> - <body> - <!-- - For development mode, this script will be bundled on-the-fly by - the devserver, based on the latest JS files built by Bazel. - For production, you should be able to use the same index.html file, but - this JS resource would be served from a static file. - --> - <script src="/bundle.min.js"></script> - </body> -</html>
diff --git a/examples/bar.ts b/examples/bar.ts deleted file mode 100644 index d363ae3..0000000 --- a/examples/bar.ts +++ /dev/null
@@ -1,27 +0,0 @@ -/** - * @license - * Copyright 2017 The Bazel Authors. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * - * You may obtain a copy of the License at - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import {Greeter} from 'npm_bazel_typescript/examples/foo'; -import {a} from 'npm_bazel_typescript/examples/generated_ts/foo'; -// Repro for #31, should automatically discover @types/node -import * as fs from 'fs'; -import {cool} from 'some-lib'; -import * as ts from 'typescript'; - -import('./foo').then(({greeter}) => { - console.log(Greeter, fs, cool, ts, greeter, a); -}); \ No newline at end of file
diff --git a/examples/bazel_managed_deps/BUILD.bazel b/examples/bazel_managed_deps/BUILD.bazel deleted file mode 100644 index 43c5bd6..0000000 --- a/examples/bazel_managed_deps/BUILD.bazel +++ /dev/null
@@ -1,8 +0,0 @@ -load("//internal:defaults.bzl", "ts_library") - -ts_library( - name = "bazel_managed_deps", - srcs = ["index.ts"], - node_modules = "@build_bazel_rules_typescript_internal_bazel_managed_deps//:node_modules", - tsconfig = ":tsconfig.json", -)
diff --git a/examples/bazel_managed_deps/README.md b/examples/bazel_managed_deps/README.md deleted file mode 100644 index c0cff30..0000000 --- a/examples/bazel_managed_deps/README.md +++ /dev/null
@@ -1,12 +0,0 @@ -# Bazel-managed deps - -The NodeJS rules allow you to skip the install step, and have Bazel run yarn/npm for you. - -See the /WORKSPACE file where we declare a workspace called -build_bazel_rules_typescript_internal_bazel_managed_deps -that will be installed automatically by Bazel. - -We then can build the code in this directory without installing the package.json located here. - -Regression test for -https://github.com/bazelbuild/rules_typescript/issues/179
diff --git a/examples/bazel_managed_deps/index.ts b/examples/bazel_managed_deps/index.ts deleted file mode 100644 index 5b3b16a..0000000 --- a/examples/bazel_managed_deps/index.ts +++ /dev/null
@@ -1 +0,0 @@ -import * as t from 'three';
diff --git a/examples/bazel_managed_deps/package.json b/examples/bazel_managed_deps/package.json deleted file mode 100644 index 4a39fc5..0000000 --- a/examples/bazel_managed_deps/package.json +++ /dev/null
@@ -1,8 +0,0 @@ -{ - "name": "bazel_managed_deps", - "devDependencies": { - "@types/three": "^0.91.10", - "three": "^0.92.0", - "typescript": "^2.8.3" - } -}
diff --git a/examples/bazel_managed_deps/tsconfig.json b/examples/bazel_managed_deps/tsconfig.json deleted file mode 100644 index aee0ec9..0000000 --- a/examples/bazel_managed_deps/tsconfig.json +++ /dev/null
@@ -1,5 +0,0 @@ -{ - "compilerOptions": { - "strict": true - } -}
diff --git a/examples/bazel_managed_deps/yarn.lock b/examples/bazel_managed_deps/yarn.lock deleted file mode 100644 index 4ba79ac..0000000 --- a/examples/bazel_managed_deps/yarn.lock +++ /dev/null
@@ -1,21 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@types/three@^0.91.10": - version "0.91.10" - resolved "https://registry.yarnpkg.com/@types/three/-/three-0.91.10.tgz#996b82993902d564daa1c29d0c3d653f2b15243a" - dependencies: - "@types/webvr-api" "*" - -"@types/webvr-api@*": - version "0.0.34" - resolved "https://registry.yarnpkg.com/@types/webvr-api/-/webvr-api-0.0.34.tgz#8fa49028de925c7b8bce3d559d3374ce2c89ee28" - -three@^0.92.0: - version "0.92.0" - resolved "https://registry.yarnpkg.com/three/-/three-0.92.0.tgz#8d3d1f5af890e62da7f4cb45d20c09fa51057dcd" - -typescript@^2.8.3: - version "2.8.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.8.3.tgz#5d817f9b6f31bb871835f4edf0089f21abe6c170"
diff --git a/examples/devmode_consumer/BUILD.bazel b/examples/devmode_consumer/BUILD.bazel deleted file mode 100644 index 78d6a46..0000000 --- a/examples/devmode_consumer/BUILD.bazel +++ /dev/null
@@ -1,15 +0,0 @@ -load(":devmode_consumer.bzl", "devmode_consumer") - -devmode_consumer( - name = "devmode_consumer", - deps = ["//examples:bar_ts_library"], -) - -sh_test( - name = "devmode_consumer_test", - srcs = ["devmode_consumer_test.sh"], - data = [ - ":devmode_consumer", - "@bazel_tools//tools/bash/runfiles", - ], -)
diff --git a/examples/devmode_consumer/devmode_consumer.bzl b/examples/devmode_consumer/devmode_consumer.bzl deleted file mode 100644 index b23a4b4..0000000 --- a/examples/devmode_consumer/devmode_consumer.bzl +++ /dev/null
@@ -1,40 +0,0 @@ -# Copyright 2017 The Bazel Authors. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -"""Example of a rule that requires es2015 (devmode) inputs. -""" - -load("@build_bazel_rules_nodejs//internal/common:sources_aspect.bzl", "sources_aspect") - -def _devmode_consumer(ctx): - files = depset() - - # Since we apply the sources_aspect to our deps below, we can iterate through - # the deps and grab the attribute attached by that aspect, which is called - # "node_sources". - # See https://github.com/bazelbuild/rules_nodejs/blob/master/internal/node.bzl - for d in ctx.attr.deps: - files = depset(transitive = [files, d.node_sources]) - - return [DefaultInfo( - files = files, - runfiles = ctx.runfiles(files.to_list()), - )] - -devmode_consumer = rule( - implementation = _devmode_consumer, - attrs = { - "deps": attr.label_list(aspects = [sources_aspect]), - }, -)
diff --git a/examples/devmode_consumer/devmode_consumer_test.sh b/examples/devmode_consumer/devmode_consumer_test.sh deleted file mode 100755 index eb51180..0000000 --- a/examples/devmode_consumer/devmode_consumer_test.sh +++ /dev/null
@@ -1,88 +0,0 @@ -#!/bin/bash -set -e - -# --- begin runfiles.bash initialization --- -# Source the runfiles library: -# https://github.com/bazelbuild/bazel/blob/master/tools/bash/runfiles/runfiles.bash -# The runfiles library defines rlocation, which is a platform independent function -# used to lookup the runfiles locations. This code snippet is needed at the top -# of scripts that use rlocation to lookup the location of runfiles.bash and source it -if [[ ! -d "${RUNFILES_DIR:-/dev/null}" && ! -f "${RUNFILES_MANIFEST_FILE:-/dev/null}" ]]; then - if [[ -f "$0.runfiles_manifest" ]]; then - export RUNFILES_MANIFEST_FILE="$0.runfiles_manifest" - elif [[ -f "$0.runfiles/MANIFEST" ]]; then - export RUNFILES_MANIFEST_FILE="$0.runfiles/MANIFEST" - elif [[ -f "$0.runfiles/bazel_tools/tools/bash/runfiles/runfiles.bash" ]]; then - export RUNFILES_DIR="$0.runfiles" - fi -fi -if [[ -f "${RUNFILES_DIR:-/dev/null}/bazel_tools/tools/bash/runfiles/runfiles.bash" ]]; then - source "${RUNFILES_DIR}/bazel_tools/tools/bash/runfiles/runfiles.bash" -elif [[ -f "${RUNFILES_MANIFEST_FILE:-/dev/null}" ]]; then - source "$(grep -m1 "^bazel_tools/tools/bash/runfiles/runfiles.bash " \ - "$RUNFILES_MANIFEST_FILE" | cut -d ' ' -f 2-)" -else - echo >&2 "ERROR: cannot find @bazel_tools//tools/bash/runfiles:runfiles.bash" - exit 1 -fi -# --- end runfiles.bash initialization --- - -readonly LIBRARY_JS=$(cat $(rlocation "npm_bazel_typescript/examples/some_library/library.js")) -readonly BAR_JS=$(cat $(rlocation "npm_bazel_typescript/examples/bar.js")) -readonly FOO_JS=$(cat $(rlocation "npm_bazel_typescript/examples/foo.js")) - -# should produce named UMD modules -if [[ "$LIBRARY_JS" != *"define(\"some-lib\""* ]]; then - echo "Expected library.js to declare module named some-lib, but was" - echo "$LIBRARY_JS" - exit 1 -fi - -# should produce named UMD modules -if [[ "$BAR_JS" != *"define(\"npm_bazel_typescript/examples/bar\""* ]]; then - echo "Expected bar.js to declare named module, but was" - echo "$BAR_JS" - exit 1 -fi - -# should give a name to required modules -if [[ "$BAR_JS" != *"require(\"npm_bazel_typescript/examples/foo\")"* ]]; then - echo "Expected bar.js to require named module foo, but was" - echo "$BAR_JS" - exit 1 -fi - -# should give a name to required modules from other compilation unit -if [[ "$BAR_JS" != *"require(\"some-lib\")"* ]]; then - echo "Expected bar.js to require named module library, but was" - echo "$BAR_JS" - exit 1 -fi - -# should give a name to required generated modules without bazel-bin -if [[ "$BAR_JS" != *"require(\"npm_bazel_typescript/examples/generated_ts/foo\")"* ]]; then - echo "Expected bar.js to require generated named module foo, but was" - echo "$BAR_JS" - exit 1 -fi - -# should not give a module name to external modules -if [[ "$BAR_JS" != *"require(\"typescript\")"* ]]; then - echo "Expected bar.js to require typescript by its original name, but was" - echo "$BAR_JS" - exit 1 -fi - -# should produce named UMD modules -if [[ "$FOO_JS" != *"define(\"npm_bazel_typescript/examples/foo\""* ]]; then - echo "Expected foo.js to declare named module, but was" - echo "$FOO_JS" - exit 1 -fi - -# should produce es2015 classes -if [[ "$FOO_JS" != *"class Greeter"* ]]; then - echo "Expected foo.js produce a es2015, but was" - echo "$FOO_JS" - exit 1 -fi \ No newline at end of file
diff --git a/examples/devserver/BUILD.bazel b/examples/devserver/BUILD.bazel deleted file mode 100644 index 249e728..0000000 --- a/examples/devserver/BUILD.bazel +++ /dev/null
@@ -1,44 +0,0 @@ -load("//:defs.bzl", "ts_devserver") -load("//internal:defaults.bzl", "ts_library") - -ts_library( - name = "app", - srcs = ["app.ts"], - tsconfig = "//examples:tsconfig.json", - deps = [ - "@npm//@types/node", - ], -) - -ts_devserver( - name = "devserver", - additional_root_paths = [ - "npm/node_modules/tslib", - "npm_bazel_typescript/examples/devserver/", - ], - port = 80, - serving_path = "/bundle.js", - static_files = [ - # Files you want to import from the "additional_root_paths", still need to be explicitly specified - # as files that should be served. The root paths just make it more convenient to import those dependencies. - "@npm//tslib", - ":say-hello", - ":print-host", - ":index.html", - ], - # Dependencies that produce JavaScript output will be automatically picked up by ConcatJS and will be - # part of the serving_path bundle. - deps = [":app"], -) - -genrule( - name = "say-hello", - outs = ["say-hello.js"], - cmd = "echo 'console.log(\"Hello!\")' > $@", -) - -genrule( - name = "print-host", - outs = ["test/print-host.js"], - cmd = "echo 'console.log(location.host)' > $@", -)
diff --git a/examples/devserver/app.ts b/examples/devserver/app.ts deleted file mode 100644 index a200b40..0000000 --- a/examples/devserver/app.ts +++ /dev/null
@@ -1,7 +0,0 @@ -const body = document.body; -const textElement = document.createElement('span'); - -textElement.innerText = 'Hello from TypeScript'; - -// Append element to the body. -body.appendChild(textElement); \ No newline at end of file
diff --git a/examples/devserver/index.html b/examples/devserver/index.html deleted file mode 100644 index 991a2f1..0000000 --- a/examples/devserver/index.html +++ /dev/null
@@ -1,16 +0,0 @@ -<html> -<head> - <title>Devserver example</title> -</head> -<body> - <!-- Scripts loaded through the additional_root_paths. --> - <script src="/say-hello.js"></script> - <script src="/tslib.js"></script> - - <!-- Bundle that comes from concatjs. Specified with serving_path. --> - <script src="/bundle.js"></script> - - <!-- Script that is imported relatively to the package directory. --> - <script src="/test/print-host.js"></script> -</body> -</html> \ No newline at end of file
diff --git a/examples/es6_output/BUILD.bazel b/examples/es6_output/BUILD.bazel deleted file mode 100644 index b5ff91c..0000000 --- a/examples/es6_output/BUILD.bazel +++ /dev/null
@@ -1,31 +0,0 @@ -# Copyright 2017 The Bazel Authors. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -load(":es6_consumer.bzl", "es6_consumer") - -package(default_visibility = ["//visibility:public"]) - -es6_consumer( - name = "es6_output", - deps = ["//examples:bar_ts_library"], -) - -sh_test( - name = "es6_output_test", - srcs = ["es6_output_test.sh"], - data = [ - ":es6_output", - "@bazel_tools//tools/bash/runfiles", - ], -)
diff --git a/examples/es6_output/es6_consumer.bzl b/examples/es6_output/es6_consumer.bzl deleted file mode 100644 index 16726ba..0000000 --- a/examples/es6_output/es6_consumer.bzl +++ /dev/null
@@ -1,33 +0,0 @@ -# Copyright 2017 The Bazel Authors. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -"""Example of a rule that requires ES6 inputs. -""" - -load("@build_bazel_rules_nodejs//internal/common:collect_es6_sources.bzl", "collect_es6_sources") - -def _es6_consumer(ctx): - es6_sources = collect_es6_sources(ctx) - - return [DefaultInfo( - files = es6_sources, - runfiles = ctx.runfiles(es6_sources.to_list()), - )] - -es6_consumer = rule( - implementation = _es6_consumer, - attrs = { - "deps": attr.label_list(), - }, -)
diff --git a/examples/es6_output/es6_output_test.sh b/examples/es6_output/es6_output_test.sh deleted file mode 100755 index c6a0102..0000000 --- a/examples/es6_output/es6_output_test.sh +++ /dev/null
@@ -1,53 +0,0 @@ -#!/bin/bash -set -e - -# --- begin runfiles.bash initialization --- -# Source the runfiles library: -# https://github.com/bazelbuild/bazel/blob/master/tools/bash/runfiles/runfiles.bash -# The runfiles library defines rlocation, which is a platform independent function -# used to lookup the runfiles locations. This code snippet is needed at the top -# of scripts that use rlocation to lookup the location of runfiles.bash and source it -if [[ ! -d "${RUNFILES_DIR:-/dev/null}" && ! -f "${RUNFILES_MANIFEST_FILE:-/dev/null}" ]]; then - if [[ -f "$0.runfiles_manifest" ]]; then - export RUNFILES_MANIFEST_FILE="$0.runfiles_manifest" - elif [[ -f "$0.runfiles/MANIFEST" ]]; then - export RUNFILES_MANIFEST_FILE="$0.runfiles/MANIFEST" - elif [[ -f "$0.runfiles/bazel_tools/tools/bash/runfiles/runfiles.bash" ]]; then - export RUNFILES_DIR="$0.runfiles" - fi -fi -if [[ -f "${RUNFILES_DIR:-/dev/null}/bazel_tools/tools/bash/runfiles/runfiles.bash" ]]; then - source "${RUNFILES_DIR}/bazel_tools/tools/bash/runfiles/runfiles.bash" -elif [[ -f "${RUNFILES_MANIFEST_FILE:-/dev/null}" ]]; then - source "$(grep -m1 "^bazel_tools/tools/bash/runfiles/runfiles.bash " \ - "$RUNFILES_MANIFEST_FILE" | cut -d ' ' -f 2-)" -else - echo >&2 "ERROR: cannot find @bazel_tools//tools/bash/runfiles:runfiles.bash" - exit 1 -fi -# --- end runfiles.bash initialization --- - -readonly FOO_JS=$(cat $(rlocation "npm_bazel_typescript/examples/es6_output/es6_output.es6/examples/foo.js")) -readonly BAR_JS=$(cat $(rlocation "npm_bazel_typescript/examples/es6_output/es6_output.es6/examples/bar.js")) -readonly LIBRARY_JS=$(cat $(rlocation "npm_bazel_typescript/examples/es6_output/es6_output.es6/examples/some_library/library.js")) - -# should not down-level ES2015 syntax, eg. `class` -if [[ "$FOO_JS" != *"class Greeter"* ]]; then - echo "Expected foo.js to contain 'class Greeter' but was" - echo "$FOO_JS" - exit 1 -fi - -# should not down-level ES Modules -if [[ "$LIBRARY_JS" != *"export const cool = 1;"* ]]; then - echo "Expected library.js to contain 'export const cool = 1;' but was" - echo "$LIBRARY_JS" - exit 1 -fi - -# should not down-level dynamic import -if [[ "$BAR_JS" != *"import('./foo')"* ]]; then - echo "Expected bar.js to contain 'import('./foo')' but was" - echo "$BAR_JS" - exit 1 -fi
diff --git a/examples/foo.ts b/examples/foo.ts deleted file mode 100644 index b05c8ce..0000000 --- a/examples/foo.ts +++ /dev/null
@@ -1,28 +0,0 @@ -/** - * @license - * Copyright 2017 The Bazel Authors. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * - * You may obtain a copy of the License at - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import {Polite} from './types'; - -export class Greeter implements Polite { - constructor(public greeting: string) {} - greet(): Promise<string> { - return Promise.resolve('<h1>' + this.greeting + '</h1>'); - } -} - -export const greeter = new Greeter('Hello, world!'); -greeter.greet().then(msg => { document.body.innerHTML = msg; });
diff --git a/examples/generated_ts/BUILD.bazel b/examples/generated_ts/BUILD.bazel deleted file mode 100644 index d786981..0000000 --- a/examples/generated_ts/BUILD.bazel +++ /dev/null
@@ -1,14 +0,0 @@ -load("//internal:defaults.bzl", "ts_library") - -package(default_visibility = ["//visibility:public"]) - -genrule( - name = "foo_ts", - outs = ["foo.ts"], - cmd = "echo 'export const a = 1;' > $@", -) - -ts_library( - name = "generated_ts", - srcs = [":foo.ts"], -)
diff --git a/examples/googmodule/BUILD.bazel b/examples/googmodule/BUILD.bazel deleted file mode 100644 index efaa52e..0000000 --- a/examples/googmodule/BUILD.bazel +++ /dev/null
@@ -1,23 +0,0 @@ -load("@build_bazel_rules_nodejs//:defs.bzl", "jasmine_node_test") -load("//examples/devmode_consumer:devmode_consumer.bzl", "devmode_consumer") -load("//internal:defaults.bzl", "ts_library") - -ts_library( - name = "googmodule", - srcs = ["a.ts"], - tsconfig = "tsconfig.json", -) - -devmode_consumer( - name = "devmode_output", - deps = [":googmodule"], -) - -jasmine_node_test( - name = "googmodule_output_test", - srcs = ["googmodule_output_test.js"], - data = [ - ":devmode_output", - "@npm//jasmine", - ], -)
diff --git a/examples/googmodule/a.ts b/examples/googmodule/a.ts deleted file mode 100644 index 4f633f6..0000000 --- a/examples/googmodule/a.ts +++ /dev/null
@@ -1 +0,0 @@ -const a: number = 1;
diff --git a/examples/googmodule/googmodule_output_test.js b/examples/googmodule/googmodule_output_test.js deleted file mode 100644 index 82d9e20..0000000 --- a/examples/googmodule/googmodule_output_test.js +++ /dev/null
@@ -1,20 +0,0 @@ -const fs = require('fs'); - -describe('googmodule', () => { - let output; - beforeAll(() => { - output = require.resolve( - 'npm_bazel_typescript/examples/googmodule/a.js'); - }); - - it('should have goog module syntax in devmode', () => { - expect(fs.readFileSync(output, {encoding: 'utf-8'})) - .toContain( - `goog.module('npm_bazel_typescript.examples.googmodule.a')`); - }); - it('should have tsickle type annotations', () => { - expect(fs.readFileSync(output, { - encoding: 'utf-8' - })).toContain(`@type {number}`); - }); -}); \ No newline at end of file
diff --git a/examples/googmodule/tsconfig.json b/examples/googmodule/tsconfig.json deleted file mode 100644 index c3c478f..0000000 --- a/examples/googmodule/tsconfig.json +++ /dev/null
@@ -1,12 +0,0 @@ -{ - "compilerOptions": { - // Explicitly set types settings so typescript doesn't auto-discover types. - // If all types are discovered then all types need to be included as deps - // or typescript may error out with TS2688: Cannot find type definition file for 'foo'. - "types": [] - }, - "bazelOptions": { - "tsickle": true, - "googmodule": true - } -} \ No newline at end of file
diff --git a/examples/protocol_buffers/BUILD.bazel b/examples/protocol_buffers/BUILD.bazel deleted file mode 100644 index 4594ffe..0000000 --- a/examples/protocol_buffers/BUILD.bazel +++ /dev/null
@@ -1,139 +0,0 @@ -load("@build_bazel_rules_nodejs//:defs.bzl", "http_server", "rollup_bundle") -load("@io_bazel_rules_go//go:def.bzl", "go_library") -load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library") -load("@npm_bazel_karma//:defaults.bzl", "ts_web_test_suite") -load( - "//:defs.bzl", - "ts_devserver", - "ts_proto_library", -) -load("//internal:defaults.bzl", "ts_library") - -proto_library( - name = "tire_proto", - srcs = ["tire.proto"], -) - -proto_library( - name = "car_proto", - srcs = ["car.proto"], - deps = [":tire_proto"], -) - -ts_proto_library( - # The result will be "car.d.ts" named after this target. - # We could use the output_name attribute if we want the output named - # differently than the target. - name = "car", - deps = [":car_proto"], -) - -ts_library( - name = "test_lib", - testonly = True, - srcs = ["car.spec.ts"], - tsconfig = "//examples:tsconfig-test", - deps = [ - ":car", - "@npm//@types/jasmine", - "@npm//@types/long", - "@npm//@types/node", - "@npm//long", - ], -) - -ts_web_test_suite( - name = "test", - bootstrap = ["@npm_bazel_typescript//:protobufjs_bootstrap_scripts"], - browsers = [ - "@io_bazel_rules_webtesting//browsers:chromium-local", - "@io_bazel_rules_webtesting//browsers:firefox-local", - ], - deps = ["test_lib"], -) - -ts_library( - name = "app", - srcs = ["app.ts"], - deps = [":car"], -) - -ts_devserver( - name = "devserver", - bootstrap = ["@npm_bazel_typescript//:protobufjs_bootstrap_scripts"], - entry_module = "npm_bazel_typescript/examples/protocol_buffers/app", - port = 8080, - deps = [":bundle"], -) - -# Test for production mode -rollup_bundle( - name = "bundle", - entry_point = "examples/protocol_buffers/app", - # TODO(alexeagle): we should be able to get this from //:protobufjs_bootstrap_scripts - # and automatically plumb it through to Rollup. - globals = { - "long": "Long", - "protobufjs/minimal": "protobuf", - }, - deps = [":app"], -) - -# Needed because the prodserver only loads static files that appear under this -# package. -genrule( - name = "protobufjs", - srcs = [ - "@build_bazel_rules_typescript_protobufs_compiletime_deps//node_modules/protobufjs:dist/minimal/protobuf.min.js", - "@build_bazel_rules_typescript_protobufs_compiletime_deps//node_modules/long:dist/long.js", - ], - outs = [ - "protobuf.min.js", - "long.js", - ], - cmd = "outs=($(OUTS)); d=$$(dirname $${outs[0]}); for s in $(SRCS); do cp $$s $$d; done", -) - -http_server( - name = "prodserver", - data = [ - "index.html", - ":bundle", - ":protobufjs", - ], -) - -ts_library( - name = "e2e", - testonly = 1, - srcs = ["app_e2e_test.ts"], - tsconfig = "//examples:tsconfig-test", - deps = [ - "@npm//@types/jasmine", - "@npm//@types/node", - "@npm//protractor", - ], -) - -proto_library( - name = "rules_typescript_proto", - srcs = [ - "car.proto", - "tire.proto", - ], - visibility = ["//visibility:public"], -) - -go_proto_library( - name = "rules_typescript_go_proto", - importpath = "github.com/bazelbuild/rules_typescript/examples/protocol_buffers", - proto = ":rules_typescript_proto", - visibility = ["//visibility:public"], -) - -go_library( - name = "go_default_library", - embed = [":rules_typescript_go_proto"], - importpath = "github.com/bazelbuild/rules_typescript/examples/protocol_buffers", - visibility = ["//visibility:public"], -)
diff --git a/examples/protocol_buffers/app.ts b/examples/protocol_buffers/app.ts deleted file mode 100644 index 0cf23d9..0000000 --- a/examples/protocol_buffers/app.ts +++ /dev/null
@@ -1,8 +0,0 @@ -import {Car} from './car'; - -const serverResponse = `{"make": "Porsche"}`; -const car = Car.create(JSON.parse(serverResponse)); -const el: HTMLDivElement = document.createElement('div'); -el.innerText = `Car from server: ${car.make}`; -el.className = 'ts1'; -document.body.appendChild(el);
diff --git a/examples/protocol_buffers/app_e2e_test.ts b/examples/protocol_buffers/app_e2e_test.ts deleted file mode 100644 index 639392e..0000000 --- a/examples/protocol_buffers/app_e2e_test.ts +++ /dev/null
@@ -1,25 +0,0 @@ -import {browser, by, element, ExpectedConditions} from 'protractor'; - -// This test uses Protractor without Angular, so disable Angular features -browser.waitForAngularEnabled(false); - -// Since we don't have a protractor bazel rule yet, the test is brought up in -// parallel with building the service under test. So the timeout must include -// compiling the application as well as starting the server. -const timeoutMs = 90 * 1000; - -describe('protocol_buffers', () => { - beforeAll(() => { - browser.get(''); - // Don't run any specs until we see a <div> on the page. - browser.wait( - ExpectedConditions.presenceOf(element(by.css('div.ts1'))), - timeoutMs); - }, timeoutMs); - - it('should display: Car from server: Porsche', (done) => { - const div = element(by.css('div.ts1')); - div.getText().then(t => expect(t).toEqual(`Car from server: Porsche`)); - done(); - }); -});
diff --git a/examples/protocol_buffers/car.proto b/examples/protocol_buffers/car.proto deleted file mode 100644 index d8b04d1..0000000 --- a/examples/protocol_buffers/car.proto +++ /dev/null
@@ -1,12 +0,0 @@ -syntax = "proto3"; - -import "examples/protocol_buffers/tire.proto"; - -message Car { - string make = 1; - string model = 2; - int32 year = 3; - Tire front_tires = 4; - Tire rear_tires = 5; - int64 mileage = 6; -}
diff --git a/examples/protocol_buffers/car.spec.ts b/examples/protocol_buffers/car.spec.ts deleted file mode 100644 index 803b9df..0000000 --- a/examples/protocol_buffers/car.spec.ts +++ /dev/null
@@ -1,35 +0,0 @@ -import {Car} from './car'; -import Long = require('long'); - -describe('protocol buffers', () => { - - it('allows creation of an object described by proto', () => { - const pontiac = Car.create({ - make: "pontiac", - frontTires: { - width: 225, - aspectRatio: 65, - construction: 'R', - diameter: 17, - }, - }); - expect(pontiac.make).toEqual('pontiac'); - if (!pontiac.frontTires) { - fail('Should have frontTires set'); - } else { - expect(pontiac.frontTires.width).toEqual(225); - } - }); - - // Asserts that longs are handled correctly. - // This value comes from https://github.com/dcodeIO/long.js#background - it('handles long values correctly', () => { - const pontiac = Car.create({ - make: "pontiac", - // Long.MAX_VALUE - mileage: new Long(0xFFFFFFFF, 0x7FFFFFFF), - }); - const object = Car.toObject(pontiac, {longs: String}); - expect(object["mileage"]).toEqual("9223372036854775807"); - }); -});
diff --git a/examples/protocol_buffers/index.html b/examples/protocol_buffers/index.html deleted file mode 100644 index 6f8690e..0000000 --- a/examples/protocol_buffers/index.html +++ /dev/null
@@ -1,10 +0,0 @@ -<html> -<head> - <title>protocol_buffers example</title> -</head> -<body> -<script src="/protobuf.min.js"></script> -<script src="/long.js"></script> -<script src="/bundle.min.js"></script> -</body> -</html> \ No newline at end of file
diff --git a/examples/protocol_buffers/tire.proto b/examples/protocol_buffers/tire.proto deleted file mode 100644 index a7de133..0000000 --- a/examples/protocol_buffers/tire.proto +++ /dev/null
@@ -1,11 +0,0 @@ -syntax = "proto3"; - -message Tire { - string type = 1; - int32 width = 2; - int32 aspect_ratio = 3; - string construction = 4; - int32 diameter = 5; - int32 load_index = 6; - string speed_rating = 7; -}
diff --git a/examples/some_library/BUILD.bazel b/examples/some_library/BUILD.bazel deleted file mode 100644 index 2668d2c..0000000 --- a/examples/some_library/BUILD.bazel +++ /dev/null
@@ -1,26 +0,0 @@ -# Copyright 2017 The Bazel Authors. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -load("//internal:defaults.bzl", "ts_library") - -package(default_visibility = ["//visibility:public"]) - -ts_library( - name = "lib", - srcs = ["library.ts"], - # Allow this library to be imported from `some-lib` - module_name = "some-lib", - # The imported path should be the library.d.ts file - module_root = "library", -)
diff --git a/examples/some_library/library.ts b/examples/some_library/library.ts deleted file mode 100644 index 1cc6cf3..0000000 --- a/examples/some_library/library.ts +++ /dev/null
@@ -1,18 +0,0 @@ -/** - * @license - * Copyright 2017 The Bazel Authors. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * - * You may obtain a copy of the License at - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export const cool = 1;
diff --git a/examples/some_module/BUILD.bazel b/examples/some_module/BUILD.bazel deleted file mode 100644 index ecd8224..0000000 --- a/examples/some_module/BUILD.bazel +++ /dev/null
@@ -1,52 +0,0 @@ -# Copyright 2017 The Bazel Authors. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -load("@build_bazel_rules_nodejs//:defs.bzl", "nodejs_binary") -load("//internal:defaults.bzl", "ts_library") - -package(default_visibility = ["//visibility:public"]) - -# We compile this library with the module name "sm" to make it possible to -# use `import {} from 'sm';` both at type-check time (we include the mapping in -# the paths map in tsconfig) as well as runtime (we patch the nodejs module -# loader to discover the path in the runfiles). -ts_library( - name = "some_module", - srcs = ["index.ts"], - module_name = "sm", -) - -ts_library( - name = "main", - srcs = ["main.ts"], - deps = [":some_module"], -) - -nodejs_binary( - name = "bin", - data = [ - ":main", - ":some_module", - ], - entry_point = "npm_bazel_typescript/examples/some_module/main.js", -) - -sh_test( - name = "module_load_test", - srcs = ["module_load_test.sh"], - data = [ - ":bin", - "@bazel_tools//tools/bash/runfiles", - ], -)
diff --git a/examples/some_module/index.ts b/examples/some_module/index.ts deleted file mode 100644 index 0f0c413..0000000 --- a/examples/some_module/index.ts +++ /dev/null
@@ -1,3 +0,0 @@ -export function hello() { - console.log("hello world"); -}
diff --git a/examples/some_module/main.ts b/examples/some_module/main.ts deleted file mode 100644 index bb7d422..0000000 --- a/examples/some_module/main.ts +++ /dev/null
@@ -1,4 +0,0 @@ -import {hello} from 'sm'; - -hello(); -
diff --git a/examples/some_module/module_load_test.sh b/examples/some_module/module_load_test.sh deleted file mode 100755 index 752979a..0000000 --- a/examples/some_module/module_load_test.sh +++ /dev/null
@@ -1,35 +0,0 @@ -#!/bin/bash -set -e - -# --- begin runfiles.bash initialization --- -# Source the runfiles library: -# https://github.com/bazelbuild/bazel/blob/master/tools/bash/runfiles/runfiles.bash -# The runfiles library defines rlocation, which is a platform independent function -# used to lookup the runfiles locations. This code snippet is needed at the top -# of scripts that use rlocation to lookup the location of runfiles.bash and source it -if [[ ! -d "${RUNFILES_DIR:-/dev/null}" && ! -f "${RUNFILES_MANIFEST_FILE:-/dev/null}" ]]; then - if [[ -f "$0.runfiles_manifest" ]]; then - export RUNFILES_MANIFEST_FILE="$0.runfiles_manifest" - elif [[ -f "$0.runfiles/MANIFEST" ]]; then - export RUNFILES_MANIFEST_FILE="$0.runfiles/MANIFEST" - elif [[ -f "$0.runfiles/bazel_tools/tools/bash/runfiles/runfiles.bash" ]]; then - export RUNFILES_DIR="$0.runfiles" - fi -fi -if [[ -f "${RUNFILES_DIR:-/dev/null}/bazel_tools/tools/bash/runfiles/runfiles.bash" ]]; then - source "${RUNFILES_DIR}/bazel_tools/tools/bash/runfiles/runfiles.bash" -elif [[ -f "${RUNFILES_MANIFEST_FILE:-/dev/null}" ]]; then - source "$(grep -m1 "^bazel_tools/tools/bash/runfiles/runfiles.bash " \ - "$RUNFILES_MANIFEST_FILE" | cut -d ' ' -f 2-)" -else - echo >&2 "ERROR: cannot find @bazel_tools//tools/bash/runfiles:runfiles.bash" - exit 1 -fi -# --- end runfiles.bash initialization --- - -readonly OUT=$($(rlocation "npm_bazel_typescript/examples/some_module/bin")) - -if [ "$OUT" != "hello world" ]; then - echo "Expected output 'hello world' but was $OUT" - exit 1 -fi
diff --git a/examples/testing/BUILD.bazel b/examples/testing/BUILD.bazel deleted file mode 100644 index 133ee68..0000000 --- a/examples/testing/BUILD.bazel +++ /dev/null
@@ -1,96 +0,0 @@ -load("@npm_bazel_karma//:defaults.bzl", "karma_web_test_suite", "ts_web_test_suite") -load("//internal:defaults.bzl", "ts_library") - -ts_library( - name = "lib", - srcs = ["decrement.ts"], -) - -ts_library( - name = "tests", - testonly = 1, - srcs = glob(["*.spec.ts"]), - tsconfig = "//examples:tsconfig-test", - deps = [ - ":lib", - "@npm//@types/jasmine", - "@npm//@types/node", - ], -) - -ts_library( - name = "tests_setup", - testonly = 1, - srcs = ["setup_script.ts"], - tsconfig = "//examples:tsconfig-test", - deps = [ - "@npm//@types/jasmine", - "@npm//@types/node", - ], -) - -karma_web_test_suite( - name = "testing_karma", - browsers = [ - "@io_bazel_rules_webtesting//browsers:chromium-local", - "@io_bazel_rules_webtesting//browsers:firefox-local", - ], - config_file = ":karma.conf.js", - static_files = [ - "static_script.js", - ], - runtime_deps = [ - ":tests_setup", - ], - deps = [ - ":tests", - "@npm//karma-json-result-reporter", - ], -) - -karma_web_test_suite( - name = "testing_karma_sauce", - browsers = [ - "@io_bazel_rules_webtesting//browsers/sauce:chrome-win10", - ], - tags = [ - "sauce", - # TODO(alexeagle): enable on CI once we have set the SAUCE env variables - "manual", - ], - deps = [ - ":tests", - ], -) - -ts_web_test_suite( - name = "testing", - browsers = [ - "@io_bazel_rules_webtesting//browsers:chromium-local", - "@io_bazel_rules_webtesting//browsers:firefox-local", - ], - static_files = [ - "static_script.js", - ], - runtime_deps = [ - ":tests_setup", - ], - deps = [ - ":tests", - ], -) - -ts_web_test_suite( - name = "testing_sauce", - browsers = [ - "@io_bazel_rules_webtesting//browsers/sauce:chrome-win10", - ], - tags = [ - "sauce", - # TODO(alexeagle): enable on CI once we have set the SAUCE env variables - "manual", - ], - deps = [ - ":tests", - ], -)
diff --git a/examples/testing/decrement.spec.ts b/examples/testing/decrement.spec.ts deleted file mode 100644 index bf1bd91..0000000 --- a/examples/testing/decrement.spec.ts +++ /dev/null
@@ -1,7 +0,0 @@ -import {decrement} from './decrement'; - -describe('decrementing', () => { - it('should do that', () => { - expect(decrement(1)).toBe(0); - }); -});
diff --git a/examples/testing/decrement.ts b/examples/testing/decrement.ts deleted file mode 100644 index 7173ecc..0000000 --- a/examples/testing/decrement.ts +++ /dev/null
@@ -1,3 +0,0 @@ -export function decrement(n: number) { - return n - 1; -}
diff --git a/examples/testing/karma.conf.js b/examples/testing/karma.conf.js deleted file mode 100644 index f96e698..0000000 --- a/examples/testing/karma.conf.js +++ /dev/null
@@ -1,12 +0,0 @@ -module.exports = function(config) { - config.set({ - plugins: ['karma-json-result-reporter'], - reporters: ['dots', 'progress', 'json-result'], - logLevel: config.LOG_DEBUG, - colors: false, - jsonResultReporter: { - outputFile: `${process.env['TEST_UNDECLARED_OUTPUTS_DIR']}/karma-result.json`, - isSynchronous: true, - }, - }); -}
diff --git a/examples/testing/setup_script.spec.ts b/examples/testing/setup_script.spec.ts deleted file mode 100644 index 1b39eff..0000000 --- a/examples/testing/setup_script.spec.ts +++ /dev/null
@@ -1,9 +0,0 @@ -describe('setup script', () => { - it('should load before the spec', async () => { - expect((window as any).setupGlobal).toBe("setupGlobalValue"); - }); -}); - -// at least one import or export is needed for this file to -// be compiled into an named-UMD module by typescript -export {};
diff --git a/examples/testing/setup_script.ts b/examples/testing/setup_script.ts deleted file mode 100644 index 7bca6f8..0000000 --- a/examples/testing/setup_script.ts +++ /dev/null
@@ -1,6 +0,0 @@ -// Setup global value that the test expect to be present. -(window as any).setupGlobal = "setupGlobalValue"; - -// at least one import or export is needed for this file to -// be compiled into an named-UMD module by typescript -export { };
diff --git a/examples/testing/static_script.js b/examples/testing/static_script.js deleted file mode 100644 index 06fd64e..0000000 --- a/examples/testing/static_script.js +++ /dev/null
@@ -1,2 +0,0 @@ -// Some test data that is loaded dynamically from the test -window.someGlobal = "someGlobalValue";
diff --git a/examples/testing/static_script.spec.ts b/examples/testing/static_script.spec.ts deleted file mode 100644 index 6651308..0000000 --- a/examples/testing/static_script.spec.ts +++ /dev/null
@@ -1,20 +0,0 @@ -const someGlobal = new Promise<string>((resolve, reject) => { - const script = document.createElement('script'); - script.src = `base/npm_bazel_typescript/examples/testing/static_script.js`; - script.onerror = reject; - script.onload = () => { - document.body.removeChild(script); - resolve((window as any).someGlobal); - }; - document.body.appendChild(script); -}); - -describe('static script', () => { - it('should load', async () => { - expect(await someGlobal).toBe("someGlobalValue"); - }); -}); - -// at least one import or export is needed for this file to -// be compiled into an named-UMD module by typescript -export {};
diff --git a/examples/testing/tsconfig.json b/examples/testing/tsconfig.json deleted file mode 100644 index c4faf5a..0000000 --- a/examples/testing/tsconfig.json +++ /dev/null
@@ -1,7 +0,0 @@ -{ - "compilerOptions": { - "strict": true, - "lib": ["es2015.promise", "dom", "es5"], - } -} -
diff --git a/examples/tsconfig-bar.json b/examples/tsconfig-bar.json deleted file mode 100644 index 0307f47..0000000 --- a/examples/tsconfig-bar.json +++ /dev/null
@@ -1,11 +0,0 @@ -{ - "compilerOptions": { - "strict": true, - "lib": ["es2015.promise", "dom", "es5"], - // Auto-discover all types in this configuration since we don't - // specify `types = []` and the ts_library rule depends on `@npm//@types`. - // Typescript will automatically discover all types under node_modules/@types - // and included them in the build. See getAutomaticTypeDirectiveNames in - // https://github.com/Microsoft/TypeScript/blob/master/src/compiler/moduleNameResolver.ts. - } -}
diff --git a/examples/tsconfig-test.json b/examples/tsconfig-test.json deleted file mode 100644 index 634f399..0000000 --- a/examples/tsconfig-test.json +++ /dev/null
@@ -1,7 +0,0 @@ -{ - "extends": "./tsconfig.json", - - "compilerOptions": { - "types": ["jasmine", "node"] - } -}
diff --git a/examples/tsconfig.json b/examples/tsconfig.json deleted file mode 100644 index 39b27cb..0000000 --- a/examples/tsconfig.json +++ /dev/null
@@ -1,15 +0,0 @@ -{ - "compilerOptions": { - "strict": true, - "lib": ["es2015.promise", "dom", "es5"], - // Include the output directory in rootDirs so that generated .d.ts files - // can be used for type-checking in the editor, for example the car.proto - // produces a car.d.ts. - "rootDirs": [".", "../bazel-bin/examples"], - // Explicitly set types settings so typescript doesn't auto-discover types. - // If all types are discovered then all types need to be included as deps - // or typescript may error out with TS2688: Cannot find type definition file for 'foo'. - "types": [] - } -} -
diff --git a/examples/tsconfig_extends/BUILD.bazel b/examples/tsconfig_extends/BUILD.bazel deleted file mode 100644 index 5125897..0000000 --- a/examples/tsconfig_extends/BUILD.bazel +++ /dev/null
@@ -1,36 +0,0 @@ -# Copyright 2017 The Bazel Authors. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -load("//:defs.bzl", "ts_config") -load("//internal:defaults.bzl", "ts_library") - -package(default_visibility = ["//visibility:public"]) - -# Because our tsconfig.json has an extends property, we must also tell the -# ts_library to include the extended tsconfig file in compilations. -# The ts_library rule will generate its own tsconfig which extends from the -# src file. -ts_config( - name = "tsconfig", - src = "tsconfig.json", - deps = ["tsconfig-base.json"], -) - -ts_library( - name = "tsconfig_extends", - srcs = [ - "uses_promise.ts", - ], - tsconfig = ":tsconfig", -)
diff --git a/examples/tsconfig_extends/tsconfig-base.json b/examples/tsconfig_extends/tsconfig-base.json deleted file mode 100644 index 9aa1316..0000000 --- a/examples/tsconfig_extends/tsconfig-base.json +++ /dev/null
@@ -1,9 +0,0 @@ -{ - "compilerOptions": { - "lib": ["es2015.promise", "es5"], - // Explicitly set types settings so typescript doesn't auto-discover types. - // If all types are discovered then all types need to be included as deps - // or typescript may error out with TS2688: Cannot find type definition file for 'foo'. - "types": [] - } -} \ No newline at end of file
diff --git a/examples/tsconfig_extends/tsconfig.json b/examples/tsconfig_extends/tsconfig.json deleted file mode 100644 index 712de29..0000000 --- a/examples/tsconfig_extends/tsconfig.json +++ /dev/null
@@ -1,4 +0,0 @@ -{ - "extends": "./tsconfig-base" -} -
diff --git a/examples/tsconfig_extends/uses_promise.ts b/examples/tsconfig_extends/uses_promise.ts deleted file mode 100644 index 4d2e73b..0000000 --- a/examples/tsconfig_extends/uses_promise.ts +++ /dev/null
@@ -1,3 +0,0 @@ -export function hiLater(): Promise<string> { - return Promise.resolve('hi'); -}
diff --git a/examples/types.d.ts b/examples/types.d.ts deleted file mode 100644 index d23a060..0000000 --- a/examples/types.d.ts +++ /dev/null
@@ -1,3 +0,0 @@ -export interface Polite { - greet(): Promise<string>; -}
diff --git a/internal/BUILD.bazel b/internal/BUILD.bazel index 375a5ce..d953a01 100644 --- a/internal/BUILD.bazel +++ b/internal/BUILD.bazel
@@ -16,7 +16,7 @@ load("@build_bazel_rules_nodejs//:defs.bzl", "jasmine_node_test", "nodejs_binary") load("@bazel_skylib//:bzl_library.bzl", "bzl_library") -load("//internal:defaults.bzl", "ts_library") +load("@npm_bazel_typescript//:defs.bzl", "ts_library") package(default_visibility = ["//visibility:public"]) @@ -87,7 +87,7 @@ "@npm//tsutils", "@npm//typescript", ], - entry_point = "npm_bazel_typescript/internal/tsc_wrapped/tsc_wrapped.js", + entry_point = "build_bazel_rules_typescript/internal/tsc_wrapped/tsc_wrapped.js", visibility = ["//visibility:public"], ) @@ -95,6 +95,7 @@ name = "test_lib", srcs = glob(["tsc_wrapped/*_test.ts"]) + ["tsc_wrapped/test_support.ts"], tsconfig = "//internal:tsc_wrapped/tsconfig.json", + compiler = "@build_bazel_rules_typescript//internal:tsc_wrapped_bin", deps = [ ":tsc_wrapped", "@npm//@types/jasmine",
diff --git a/internal/build_defs.bzl b/internal/build_defs.bzl deleted file mode 100644 index 1639546..0000000 --- a/internal/build_defs.bzl +++ /dev/null
@@ -1,407 +0,0 @@ -# Copyright 2017 The Bazel Authors. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -"TypeScript compilation" - -load("@build_bazel_rules_nodejs//internal/common:node_module_info.bzl", "NodeModuleInfo", "collect_node_modules_aspect") - -# pylint: disable=unused-argument -# pylint: disable=missing-docstring -load(":common/compilation.bzl", "COMMON_ATTRIBUTES", "DEPS_ASPECTS", "compile_ts", "ts_providers_dict_to_struct") -load(":common/tsconfig.bzl", "create_tsconfig") -load(":ts_config.bzl", "TsConfigInfo") - -_DEFAULT_COMPILER = "@npm//@bazel/typescript/bin:tsc_wrapped" - -def _trim_package_node_modules(package_name): - # trim a package name down to its path prior to a node_modules - # segment. 'foo/node_modules/bar' would become 'foo' and - # 'node_modules/bar' would become '' - segments = [] - for n in package_name.split("/"): - if n == "node_modules": - break - segments += [n] - return "/".join(segments) - -def _compute_node_modules_root(ctx): - """Computes the node_modules root from the node_modules and deps attributes. - - Args: - ctx: the skylark execution context - - Returns: - The node_modules root as a string - """ - node_modules_root = None - if ctx.files.node_modules: - # ctx.files.node_modules is not an empty list - node_modules_root = "/".join([f for f in [ - ctx.attr.node_modules.label.workspace_root, - _trim_package_node_modules(ctx.attr.node_modules.label.package), - "node_modules", - ] if f]) - for d in ctx.attr.deps: - if NodeModuleInfo in d: - possible_root = "/".join(["external", d[NodeModuleInfo].workspace, "node_modules"]) - if not node_modules_root: - node_modules_root = possible_root - elif node_modules_root != possible_root: - fail("All npm dependencies need to come from a single workspace. Found '%s' and '%s'." % (node_modules_root, possible_root)) - if not node_modules_root: - # there are no fine grained deps and the node_modules attribute is an empty filegroup - # but we still need a node_modules_root even if its empty - node_modules_root = "/".join([f for f in [ - ctx.attr.node_modules.label.workspace_root, - ctx.attr.node_modules.label.package, - "node_modules", - ] if f]) - return node_modules_root - -def _filter_ts_inputs(all_inputs): - return [ - f - for f in all_inputs - if f.path.endswith(".js") or f.path.endswith(".ts") or f.path.endswith(".json") - ] - -def _compile_action(ctx, inputs, outputs, tsconfig_file, node_opts, description = "prodmode"): - externs_files = [] - action_inputs = [] - action_outputs = [] - for output in outputs: - if output.basename.endswith(".externs.js"): - externs_files.append(output) - elif output.basename.endswith(".es5.MF"): - ctx.actions.write(output, content = "") - else: - action_outputs.append(output) - - # TODO(plf): For now we mock creation of files other than {name}.js. - for externs_file in externs_files: - ctx.actions.write(output = externs_file, content = "") - - # A ts_library that has only .d.ts inputs will have no outputs, - # therefore there are no actions to execute - if not action_outputs: - return None - - action_inputs.extend(_filter_ts_inputs(ctx.files.node_modules)) - - # Also include files from npm fine grained deps as action_inputs. - # These deps are identified by the NodeModuleInfo provider. - for d in ctx.attr.deps: - if NodeModuleInfo in d: - action_inputs.extend(_filter_ts_inputs(d.files.to_list())) - - if ctx.file.tsconfig: - action_inputs.append(ctx.file.tsconfig) - if TsConfigInfo in ctx.attr.tsconfig: - action_inputs.extend(ctx.attr.tsconfig[TsConfigInfo].deps) - - # Pass actual options for the node binary in the special "--node_options" argument. - arguments = ["--node_options=%s" % opt for opt in node_opts] - - # One at-sign makes this a params-file, enabling the worker strategy. - # Two at-signs escapes the argument so it's passed through to tsc_wrapped - # rather than the contents getting expanded. - if ctx.attr.supports_workers: - arguments.append("@@" + tsconfig_file.path) - mnemonic = "TypeScriptCompile" - else: - arguments.append("-p") - arguments.append(tsconfig_file.path) - mnemonic = "tsc" - - ctx.actions.run( - progress_message = "Compiling TypeScript (%s) %s" % (description, ctx.label), - mnemonic = mnemonic, - inputs = depset(action_inputs, transitive = [inputs]), - outputs = action_outputs, - # Use the built-in shell environment - # Allow for users who set a custom shell that can locate standard binaries like tr and uname - # See https://github.com/NixOS/nixpkgs/issues/43955#issuecomment-407546331 - use_default_shell_env = True, - arguments = arguments, - executable = ctx.executable.compiler, - execution_requirements = { - "supports-workers": str(int(ctx.attr.supports_workers)), - }, - ) - - # Enable the replay_params in case an aspect needs to re-build this library. - return struct( - label = ctx.label, - tsconfig = tsconfig_file, - inputs = depset(action_inputs, transitive = [inputs]), - outputs = action_outputs, - compiler = ctx.executable.compiler, - ) - -def _devmode_compile_action(ctx, inputs, outputs, tsconfig_file, node_opts): - _compile_action( - ctx, - inputs, - outputs, - tsconfig_file, - node_opts, - description = "devmode", - ) - -def tsc_wrapped_tsconfig( - ctx, - files, - srcs, - devmode_manifest = None, - jsx_factory = None, - **kwargs): - """Produce a tsconfig.json that sets options required under Bazel. - """ - - # The location of tsconfig.json is interpreted as the root of the project - # when it is passed to the TS compiler with the `-p` option: - # https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. - # Our tsconfig.json is in bazel-foo/bazel-out/local-fastbuild/bin/{package_path} - # because it's generated in the execution phase. However, our source files are in - # bazel-foo/ and therefore we need to strip some parent directories for each - # f.path. - - node_modules_root = _compute_node_modules_root(ctx) - config = create_tsconfig( - ctx, - files, - srcs, - devmode_manifest = devmode_manifest, - node_modules_root = node_modules_root, - **kwargs - ) - config["bazelOptions"]["nodeModulesPrefix"] = node_modules_root - - # Override the target so we use es2015 for devmode - # Since g3 isn't ready to do this yet - config["compilerOptions"]["target"] = "es2015" - - # If the user gives a tsconfig attribute, the generated file should extend - # from the user's tsconfig. - # See https://github.com/Microsoft/TypeScript/issues/9876 - # We subtract the ".json" from the end before handing to TypeScript because - # this gives extra error-checking. - if ctx.file.tsconfig: - workspace_path = config["compilerOptions"]["rootDir"] - config["extends"] = "/".join([workspace_path, ctx.file.tsconfig.path[:-len(".json")]]) - - if jsx_factory: - config["compilerOptions"]["jsxFactory"] = jsx_factory - - tsetse_disabled_rules = [] - - # Matches section in javascript/typescript/tsconfig.bzl - # TODO(alexeagle): make them share code - if ctx.label.workspace_root.startswith("external/"): - # Violated by rxjs - tsetse_disabled_rules += ["ban-promise-as-condition"] - - # For local testing - tsetse_disabled_rules += ["check-return-value"] - - config["compilerOptions"]["plugins"] = [{ - "name": "@bazel/tsetse", - "disabledRules": tsetse_disabled_rules, - }] - - return config - -# ************ # -# ts_library # -# ************ # - -def _ts_library_impl(ctx): - """Implementation of ts_library. - - Args: - ctx: the context. - - Returns: - the struct returned by the call to compile_ts. - """ - ts_providers = compile_ts( - ctx, - is_library = True, - # Filter out the node_modules from deps passed to TypeScript compiler - # since they don't have the required providers. - # They were added to the action inputs for tsc_wrapped already. - # strict_deps checking currently skips node_modules. - # TODO(alexeagle): turn on strict deps checking when we have a real - # provider for JS/DTS inputs to ts_library. - deps = [d for d in ctx.attr.deps if not NodeModuleInfo in d], - compile_action = _compile_action, - devmode_compile_action = _devmode_compile_action, - tsc_wrapped_tsconfig = tsc_wrapped_tsconfig, - ) - return ts_providers_dict_to_struct(ts_providers) - -local_deps_aspects = [collect_node_modules_aspect] - -# Workaround skydoc bug which assumes DEPS_ASPECTS is a str type -[local_deps_aspects.append(a) for a in DEPS_ASPECTS] - -ts_library = rule( - _ts_library_impl, - attrs = dict(COMMON_ATTRIBUTES, **{ - "srcs": attr.label_list( - doc = "The TypeScript source files to compile.", - allow_files = [".ts", ".tsx"], - mandatory = True, - ), - "compile_angular_templates": attr.bool( - doc = """Run the Angular ngtsc compiler under ts_library""", - ), - "compiler": attr.label( - doc = """Sets a different TypeScript compiler binary to use for this library. - For example, we use the vanilla TypeScript tsc.js for bootstrapping, - and Angular compilations can replace this with `ngc`. - - The default ts_library compiler depends on the `@npm//@bazel/typescript` - target which is setup for projects that use bazel managed npm deps that - fetch the @bazel/typescript npm package. It is recommended that you use - the workspace name `@npm` for bazel managed deps so the default - compiler works out of the box. Otherwise, you'll have to override - the compiler attribute manually. - """, - default = Label(_DEFAULT_COMPILER), - allow_files = True, - executable = True, - cfg = "host", - ), - "internal_testing_type_check_dependencies": attr.bool(default = False, doc = "Testing only, whether to type check inputs that aren't srcs."), - "node_modules": attr.label( - doc = """The npm packages which should be available during the compile. - - The default value is `@npm//typescript:typescript__typings` is setup - for projects that use bazel managed npm deps that. It is recommended - that you use the workspace name `@npm` for bazel managed deps so the - default node_modules works out of the box. Otherwise, you'll have to - override the node_modules attribute manually. This default is in place - since ts_library will always depend on at least the typescript - default libs which are provided by `@npm//typescript:typescript__typings`. - - This attribute is DEPRECATED. As of version 0.18.0 the recommended - approach to npm dependencies is to use fine grained npm dependencies - which are setup with the `yarn_install` or `npm_install` rules. - - For example, in targets that used a `//:node_modules` filegroup, - - ``` - ts_library( - name = "my_lib", - ... - node_modules = "//:node_modules", - ) - ``` - - which specifies all files within the `//:node_modules` filegroup - to be inputs to the `my_lib`. Using fine grained npm dependencies, - `my_lib` is defined with only the npm dependencies that are - needed: - - ``` - ts_library( - name = "my_lib", - ... - deps = [ - "@npm//@types/foo", - "@npm//@types/bar", - "@npm//foo", - "@npm//bar", - ... - ], - ) - ``` - - In this case, only the listed npm packages and their - transitive deps are includes as inputs to the `my_lib` target - which reduces the time required to setup the runfiles for this - target (see https://github.com/bazelbuild/bazel/issues/5153). - The default typescript libs are also available via the node_modules - default in this case. - - The @npm external repository and the fine grained npm package - targets are setup using the `yarn_install` or `npm_install` rule - in your WORKSPACE file: - - yarn_install( - name = "npm", - package_json = "//:package.json", - yarn_lock = "//:yarn.lock", - ) - """, - default = Label("@npm//typescript:typescript__typings"), - ), - "supports_workers": attr.bool( - doc = """Intended for internal use only. - Allows you to disable the Bazel Worker strategy for this library. - Typically used together with the "compiler" setting when using a - non-worker aware compiler binary.""", - default = True, - ), - - # TODO(alexeagle): reconcile with google3: ts_library rules should - # be portable across internal/external, so we need this attribute - # internally as well. - "tsconfig": attr.label( - doc = """A tsconfig.json file containing settings for TypeScript compilation. - Note that some properties in the tsconfig are governed by Bazel and will be - overridden, such as `target` and `module`. - - The default value is set to `//:tsconfig.json` by a macro. This means you must - 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")` - - Give an explicit `tsconfig` attribute to all `ts_library` targets - """, - allow_single_file = True, - ), - "tsickle_typed": attr.bool(default = True), - "deps": attr.label_list(aspects = local_deps_aspects), - }), - outputs = { - "tsconfig": "%{name}_tsconfig.json", - }, -) -""" -`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. -""" - -def ts_library_macro(tsconfig = None, **kwargs): - """Wraps `ts_library` to set the default for the `tsconfig` attribute. - - This must be a macro so that the string is converted to a label in the context of the - workspace that declares the `ts_library` target, rather than the workspace that defines - `ts_library`, or the workspace where the build is taking place. - - This macro is re-exported as `ts_library` in the public API. - - Args: - tsconfig: the label pointing to a tsconfig.json file - **kwargs: remaining args to pass to the ts_library rule - """ - if not tsconfig: - tsconfig = "//:tsconfig.json" - - ts_library(tsconfig = tsconfig, **kwargs)
diff --git a/internal/defaults.bzl b/internal/defaults.bzl deleted file mode 100644 index 9ef73e2..0000000 --- a/internal/defaults.bzl +++ /dev/null
@@ -1,28 +0,0 @@ -# Copyright 2017 The Bazel Authors. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -"Defaults for rules_typescript repository not meant to be used downstream" - -load( - "@npm_bazel_typescript//:defs.bzl", - _ts_library = "ts_library", -) - -# We can't use the defaults for ts_library compiler and ts_web_test_suite karma -# internally because the defaults are .js dependencies on the npm packages that are -# published and internally we are building the things themselves to publish to npm -INTERNAL_TS_LIBRARY_COMPILER = "@npm_bazel_typescript//internal:tsc_wrapped_bin" - -def ts_library(compiler = INTERNAL_TS_LIBRARY_COMPILER, **kwargs): - _ts_library(compiler = compiler, **kwargs)
diff --git a/internal/devserver/BUILD b/internal/devserver/BUILD deleted file mode 100644 index 25b03e1..0000000 --- a/internal/devserver/BUILD +++ /dev/null
@@ -1,42 +0,0 @@ -# Copyright 2017 The Bazel Authors. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -licenses(["notice"]) # Apache 2.0 - -package(default_visibility = [ - "//third_party/bazel_rules/rules_typescript/internal:__subpackages__", -]) - -exports_files([ - "launcher_template.sh", - # Exported to be consumed for generating skydoc. - "ts_devserver.bzl", -]) - -filegroup( - name = "source_tree", - srcs = glob(["**/*"]), -) - -filegroup( - name = "npm_package_assets", - srcs = [ - "BUILD", - "launcher_template.sh", - "package.json", - "ts_devserver.bzl", - "yarn.lock", - ], - visibility = ["//internal:__pkg__"], -)
diff --git a/internal/devserver/README.md b/internal/devserver/README.md deleted file mode 100644 index 7000c25..0000000 --- a/internal/devserver/README.md +++ /dev/null
@@ -1,9 +0,0 @@ -# TypeScript devserver - -This development server is very simple. It's meant to be a convenient step in -the "getting started" workflow. Once you have any real requirements, you should -develop against your real frontend server instead. - -This devserver includes the "concatjs" bundling strategy. If you use a different -frontend server, you should port this library to whatever language you run in. -
diff --git a/internal/devserver/launcher_template.sh b/internal/devserver/launcher_template.sh deleted file mode 100644 index 13722a9..0000000 --- a/internal/devserver/launcher_template.sh +++ /dev/null
@@ -1,59 +0,0 @@ -#!/bin/bash - -# Copyright 2018 The Bazel Authors. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -set -e - -# --- begin runfiles.bash initialization --- -# Source the runfiles library: -# https://github.com/bazelbuild/bazel/blob/master/tools/bash/runfiles/runfiles.bash -# The runfiles library defines rlocation, which is a platform independent function -# used to lookup the runfiles locations. This code snippet is needed at the top -# of scripts that use rlocation to lookup the location of runfiles.bash and source it -if [[ ! -d "${RUNFILES_DIR:-/dev/null}" && ! -f "${RUNFILES_MANIFEST_FILE:-/dev/null}" ]]; then - if [[ -f "$0.runfiles_manifest" ]]; then - export RUNFILES_MANIFEST_FILE="$0.runfiles_manifest" - elif [[ -f "$0.runfiles/MANIFEST" ]]; then - export RUNFILES_MANIFEST_FILE="$0.runfiles/MANIFEST" - elif [[ -f "$0.runfiles/bazel_tools/tools/bash/runfiles/runfiles.bash" ]]; then - export RUNFILES_DIR="$0.runfiles" - fi -fi -if [[ -f "${RUNFILES_DIR:-/dev/null}/bazel_tools/tools/bash/runfiles/runfiles.bash" ]]; then - source "${RUNFILES_DIR}/bazel_tools/tools/bash/runfiles/runfiles.bash" -elif [[ -f "${RUNFILES_MANIFEST_FILE:-/dev/null}" ]]; then - source "$(grep -m1 "^bazel_tools/tools/bash/runfiles/runfiles.bash " \ - "$RUNFILES_MANIFEST_FILE" | cut -d ' ' -f 2-)" -else - echo >&2 "ERROR: cannot find @bazel_tools//tools/bash/runfiles:runfiles.bash" - exit 1 -fi -# --- end runfiles.bash initialization --- - - -readonly main=$(rlocation "TEMPLATED_main") -readonly manifest=$(rlocation "TEMPLATED_manifest") -readonly scripts_manifest=$(rlocation "TEMPLATED_scripts_manifest") - -# Workaround for https://github.com/bazelbuild/bazel/issues/6764 -# If this issue is incorporated into Bazel, the workaround here should be removed. -MSYS2_ARG_CONV_EXCL="*" "${main}" \ - -packages=TEMPLATED_packages \ - -serving_path=TEMPLATED_serving_path \ - -entry_module=TEMPLATED_entry_module \ - -port=TEMPLATED_port \ - -manifest="${manifest}" \ - -scripts_manifest="${scripts_manifest}" \ - "$@"
diff --git a/internal/devserver/package.json b/internal/devserver/package.json deleted file mode 100644 index 5391d98..0000000 --- a/internal/devserver/package.json +++ /dev/null
@@ -1,6 +0,0 @@ -{ - "description": "runtime dependencies for devserver", - "devDependencies": { - "requirejs": "2.3.5" - } -}
diff --git a/internal/devserver/ts_devserver.bzl b/internal/devserver/ts_devserver.bzl deleted file mode 100644 index 399bd4e..0000000 --- a/internal/devserver/ts_devserver.bzl +++ /dev/null
@@ -1,264 +0,0 @@ -# Copyright 2017 The Bazel Authors. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -"Simple development server" - -load("@build_bazel_rules_nodejs//internal/common:sources_aspect.bzl", "sources_aspect") -load( - "@build_bazel_rules_nodejs//internal/js_library:js_library.bzl", - "write_amd_names_shim", -) -load( - "@build_bazel_rules_nodejs//internal/web_package:web_package.bzl", - "html_asset_inject", -) - -# Helper function to convert a short path to a path that is -# found in the MANIFEST file. -def _short_path_to_manifest_path(ctx, short_path): - if short_path.startswith("../"): - return short_path[3:] - else: - return ctx.workspace_name + "/" + short_path - -def _ts_devserver(ctx): - files = depset() - for d in ctx.attr.deps: - if hasattr(d, "node_sources"): - files = depset(transitive = [files, d.node_sources]) - elif hasattr(d, "files"): - files = depset(transitive = [files, d.files]) - - if ctx.label.workspace_root: - # We need the workspace_name for the target being visited. - # Skylark doesn't have this - instead they have a workspace_root - # which looks like "external/repo_name" - so grab the second path segment. - # TODO(alexeagle): investigate a better way to get the workspace name - workspace_name = ctx.label.workspace_root.split("/")[1] - else: - workspace_name = ctx.workspace_name - - # Create a manifest file with the sources in arbitrary order, and without - # bazel-bin prefixes ("root-relative paths"). - # TODO(alexeagle): we should experiment with keeping the files toposorted, to - # see if we can get performance gains out of the module loader. - ctx.actions.write(ctx.outputs.manifest, "".join([ - workspace_name + "/" + f.short_path + "\n" - for f in files.to_list() - ])) - - amd_names_shim = ctx.actions.declare_file( - "_%s.amd_names_shim.js" % ctx.label.name, - sibling = ctx.outputs.script, - ) - write_amd_names_shim(ctx.actions, amd_names_shim, ctx.attr.bootstrap) - - # Requirejs is always needed so its included as the first script - # in script_files before any user specified scripts for the devserver - # to concat in order. - script_files = [] - script_files.extend(ctx.files.bootstrap) - script_files.append(ctx.file._requirejs_script) - script_files.append(amd_names_shim) - script_files.extend(ctx.files.scripts) - ctx.actions.write(ctx.outputs.scripts_manifest, "".join([ - workspace_name + "/" + f.short_path + "\n" - for f in script_files - ])) - - devserver_runfiles = [ - ctx.executable._devserver, - ctx.outputs.manifest, - ctx.outputs.scripts_manifest, - ] - devserver_runfiles += ctx.files.static_files - devserver_runfiles += script_files - devserver_runfiles += ctx.files._bash_runfile_helpers - - if ctx.file.index_html: - injected_index = ctx.actions.declare_file("index.html") - bundle_script = ctx.attr.serving_path - if bundle_script.startswith("/"): - bundle_script = bundle_script[1:] - html_asset_inject( - ctx.file.index_html, - ctx.actions, - ctx.executable._injector, - ctx.attr.additional_root_paths + [ - ctx.label.package, - "/".join([ctx.bin_dir.path, ctx.label.package]), - "/".join([ctx.genfiles_dir.path, ctx.label.package]), - ], - [_short_path_to_manifest_path(ctx, f.short_path) for f in ctx.files.static_files] + [bundle_script], - injected_index, - ) - devserver_runfiles += [injected_index] - - packages = depset(["/".join([workspace_name, ctx.label.package])] + ctx.attr.additional_root_paths) - - ctx.actions.expand_template( - template = ctx.file._launcher_template, - output = ctx.outputs.script, - substitutions = { - "TEMPLATED_entry_module": ctx.attr.entry_module, - "TEMPLATED_main": _short_path_to_manifest_path(ctx, ctx.executable._devserver.short_path), - "TEMPLATED_manifest": _short_path_to_manifest_path(ctx, ctx.outputs.manifest.short_path), - "TEMPLATED_packages": ",".join(packages.to_list()), - "TEMPLATED_port": str(ctx.attr.port), - "TEMPLATED_scripts_manifest": _short_path_to_manifest_path(ctx, ctx.outputs.scripts_manifest.short_path), - "TEMPLATED_serving_path": ctx.attr.serving_path if ctx.attr.serving_path else "", - "TEMPLATED_workspace": workspace_name, - }, - is_executable = True, - ) - - return [DefaultInfo( - runfiles = ctx.runfiles( - files = devserver_runfiles, - # We don't expect executable targets to depend on the devserver, but if they do, - # they can see the JavaScript code. - transitive_files = depset(ctx.files.data, transitive = [files]), - collect_data = True, - collect_default = True, - ), - )] - -ts_devserver = rule( - implementation = _ts_devserver, - attrs = { - "additional_root_paths": attr.string_list( - doc = """Additional root paths to serve static_files from. - Paths should include the workspace name such as [\"__main__/resources\"] - """, - ), - "bootstrap": attr.label_list( - doc = "Scripts to include in the JS bundle before the module loader (require.js)", - allow_files = [".js"], - ), - "data": attr.label_list( - doc = "Dependencies that can be require'd while the server is running", - allow_files = True, - ), - "entry_module": attr.string( - doc = """The entry_module should be the AMD module name of the entry module such as `"__main__/src/index"` - ts_devserver concats the following snippet after the bundle to load the application: - `require(["entry_module"]);` - """, - ), - "index_html": attr.label( - allow_single_file = True, - doc = """An index.html file, we'll inject the script tag for the bundle, - as well as script tags for .js static_files and link tags for .css - static_files""", - ), - "port": attr.int( - doc = """The port that the devserver will listen on.""", - default = 5432, - ), - "scripts": attr.label_list( - doc = "User scripts to include in the JS bundle before the application sources", - allow_files = [".js"], - ), - "serving_path": attr.string( - # This default repeats the one in the go program. We make it explicit here so we can read it - # when injecting scripts into the index file. - default = "/_/ts_scripts.js", - doc = """The path you can request from the client HTML which serves the JavaScript bundle. - If you don't specify one, the JavaScript can be loaded at /_/ts_scripts.js""", - ), - "static_files": attr.label_list( - doc = """Arbitrary files which to be served, such as index.html. - They are served relative to the package where this rule is declared.""", - allow_files = True, - ), - "deps": attr.label_list( - doc = "Targets that produce JavaScript, such as `ts_library`", - allow_files = True, - aspects = [sources_aspect], - ), - "_bash_runfile_helpers": attr.label(default = Label("@bazel_tools//tools/bash/runfiles")), - "_devserver": attr.label( - # For local development in rules_typescript, we build the devserver from sources. - # This requires that we have the go toolchain available. - # NB: this value is replaced by "//devserver:server" in the packaged distro - # //devserver:server is the pre-compiled binary. - # That means that our users don't need the go toolchain. - default = Label("//devserver:devserver_bin"), - executable = True, - cfg = "host", - ), - "_injector": attr.label( - default = "@build_bazel_rules_nodejs//internal/web_package:injector", - executable = True, - cfg = "host", - ), - "_launcher_template": attr.label(allow_single_file = True, default = Label("//internal/devserver:launcher_template.sh")), - "_requirejs_script": attr.label(allow_single_file = True, default = Label("@build_bazel_rules_typescript_devserver_deps//node_modules/requirejs:require.js")), - }, - outputs = { - "manifest": "%{name}.MF", - "script": "%{name}.sh", - "scripts_manifest": "scripts_%{name}.MF", - }, -) -"""ts_devserver is a simple development server intended for a quick "getting started" experience. - -Additional documentation at https://github.com/alexeagle/angular-bazel-example/wiki/Running-a-devserver-under-Bazel -""" - -def ts_devserver_macro(name, data = [], args = [], visibility = None, tags = [], testonly = 0, **kwargs): - """Macro for creating a `ts_devserver` - - This macro re-exposes a `sh_binary` and `ts_devserver` target that can run the - actual devserver implementation. - The `ts_devserver` rule is just responsible for generating a launcher script - that runs the Go devserver implementation. The `sh_binary` is the primary - target that matches the specified "name" and executes the generated bash - launcher script. - This is re-exported in `//:defs.bzl` as `ts_devserver` so if you load the rule - from there, you actually get this macro. - Args: - name: Name of the devserver target - data: Runtime dependencies for the devserver - args: Command line arguments that will be passed to the devserver Go implementation - visibility: Visibility of the devserver targets - tags: Standard Bazel tags, this macro adds a couple for ibazel - testonly: Whether the devserver should only run in `bazel test` - **kwargs: passed through to `ts_devserver` - """ - ts_devserver( - name = "%s_launcher" % name, - data = data + ["@bazel_tools//tools/bash/runfiles"], - testonly = testonly, - visibility = ["//visibility:private"], - tags = tags, - **kwargs - ) - - native.sh_binary( - name = name, - args = args, - # Users don't need to know that these tags are required to run under ibazel - tags = tags + [ - # Tell ibazel not to restart the devserver when its deps change. - "ibazel_notify_changes", - # Tell ibazel to serve the live reload script, since we expect a browser will connect to - # this program. - "ibazel_live_reload", - ], - srcs = ["%s_launcher.sh" % name], - data = [":%s_launcher" % name], - testonly = testonly, - visibility = visibility, - )
diff --git a/internal/devserver/yarn.lock b/internal/devserver/yarn.lock deleted file mode 100644 index 95ae199..0000000 --- a/internal/devserver/yarn.lock +++ /dev/null
@@ -1,7 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -requirejs@2.3.5: - version "2.3.5" - resolved "https://registry.yarnpkg.com/requirejs/-/requirejs-2.3.5.tgz#617b9acbbcb336540ef4914d790323a8d4b861b0"
diff --git a/internal/karma/.bazelrc b/internal/karma/.bazelrc deleted file mode 100644 index ad69514..0000000 --- a/internal/karma/.bazelrc +++ /dev/null
@@ -1 +0,0 @@ -build --workspace_status_command=../../tools/bazel_stamp_vars.sh
diff --git a/internal/karma/BUILD.bazel b/internal/karma/BUILD.bazel deleted file mode 100644 index 54f69ed..0000000 --- a/internal/karma/BUILD.bazel +++ /dev/null
@@ -1,106 +0,0 @@ -# Copyright 2018 The Bazel Authors. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# BEGIN-DEV-ONLY -# Parts of this BUILD file only necessary when building within the bazelbuild/rules_typescript repo. -# The generated `@bazel/karma` npm package contains a trimmed BUILD file using # DEV-ONLY fences. -load("@build_bazel_rules_nodejs//:defs.bzl", "nodejs_binary", "npm_package") -load("@npm_bazel_typescript//:version.bzl", "COMPAT_VERSION") -load("@npm_bazel_typescript//internal:defaults.bzl", "ts_library") - -package(default_visibility = ["//visibility:public"]) - -# Exports to be consumed for generating skydoc. -exports_files([ - "karma_web_test.bzl", - "ts_web_test.bzl", - "web_test.bzl", -]) - -ts_library( - name = "bazel_karma", - srcs = glob(["*.ts"]), - module_name = "@bazel/karma", - tsconfig = ":tsconfig.json", - deps = [ - "@npm//@types/node", - "@npm//tmp", - ], -) - -nodejs_binary( - name = "karma_bin", - data = [ - ":bazel_karma", - "@npm//jasmine-core", - "@npm//karma", - "@npm//karma-chrome-launcher", - "@npm//karma-firefox-launcher", - "@npm//karma-jasmine", - "@npm//karma-requirejs", - "@npm//karma-sauce-launcher", - "@npm//karma-sourcemap-loader", - "@npm//requirejs", - "@npm//tmp", - ], - entry_point = "karma/bin/karma", - install_source_map_support = False, -) - -genrule( - name = "license_copy", - srcs = ["@npm_bazel_typescript//:LICENSE"], - outs = ["LICENSE"], - cmd = "cp $< $@", -) - -# Ugly genrule depending on local linux environment to build the README out of skylark doc generation. -# Only referenced when we do a release. -# TODO: This ought to be possible with stardoc alone. Need to coordinate with Chris Parsons. -genrule( - name = "generate_README", - srcs = ["//docs", "//docs:install.md"], - outs = ["README.md"], - cmd = "unzip -o -d docs $(location //docs:docs) && cat docs/install.md docs/*_web_test.md | sed 's/^##/\\\n##/' > $@", -) - -npm_package( - name = "npm_package", - srcs = [ - "BUILD.bazel", - "WORKSPACE", - "browser_repositories.bzl", - "defaults.bzl", - "defs.bzl", - "karma.conf.js", - "karma.js", - "karma_web_test.bzl", - "package.bzl", - "package.json", - "ts_web_test.bzl", - "web_test.bzl", - ], - replacements = { - "(#|\/\/)\\s+BEGIN-DEV-ONLY[\\w\W]+?(#|\/\/)\\s+END-DEV-ONLY": "", - "0.0.0-COMPAT_VERSION": COMPAT_VERSION, - }, - deps = [ - ":bazel_karma", - ":license_copy", - ":generate_README" - ], -) - -# END-DEV-ONLY -exports_files(["karma.conf.js"])
diff --git a/internal/karma/WORKSPACE b/internal/karma/WORKSPACE deleted file mode 100644 index f584c27..0000000 --- a/internal/karma/WORKSPACE +++ /dev/null
@@ -1,69 +0,0 @@ -# Copyright 2017 The Bazel Authors. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -workspace(name = "npm_bazel_karma") - -# Load nested npm_bazel_typescript repository -local_repository( - name = "npm_bazel_typescript", - path = "../..", -) - -# Load our dependencies -load("@npm_bazel_typescript//:package.bzl", "rules_typescript_dev_dependencies") - -rules_typescript_dev_dependencies() - -# Load rules_karma dependencies -load("//:package.bzl", "rules_karma_dependencies") - -rules_karma_dependencies() - -# Setup nodejs toolchain -load("@build_bazel_rules_nodejs//:defs.bzl", "node_repositories", "yarn_install") - -# Install a hermetic version of node. -node_repositories() - -# Download npm dependencies -yarn_install( - name = "npm", - package_json = "//:package.json", - yarn_lock = "//:yarn.lock", -) - -# Setup typescript toolchain -load("@npm_bazel_typescript//:defs.bzl", "ts_setup_workspace") - -ts_setup_workspace() - -# Dependencies for generating documentation -load("@io_bazel_rules_sass//sass:sass_repositories.bzl", "sass_repositories") - -sass_repositories() - -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") - -http_archive( - name = "com_google_protobuf", - strip_prefix = "protobuf-3.6.1.3", - sha256 = "9510dd2afc29e7245e9e884336f848c8a6600a14ae726adb6befdb4f786f0be2", - # v3.6.1.3 as of 2019-01-15 - urls = ["https://github.com/protocolbuffers/protobuf/archive/v3.6.1.3.zip"], - type = "zip", -) - -load("@io_bazel_skydoc//skylark:skylark.bzl", "skydoc_repositories") - -skydoc_repositories()
diff --git a/internal/karma/browser_repositories.bzl b/internal/karma/browser_repositories.bzl deleted file mode 100644 index cc58e5c..0000000 --- a/internal/karma/browser_repositories.bzl +++ /dev/null
@@ -1,111 +0,0 @@ -# Copyright 2018 The Bazel Authors. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -"""Pinned browser versions tested against in https://github.com/bazelbuild/rules_typescript CI. -""" - -load("@io_bazel_rules_webtesting//web/internal:platform_http_file.bzl", "platform_http_file") - -def browser_repositories(): - """Load pinned rules_webtesting browser versions.""" - - platform_http_file( - name = "org_chromium_chromium", - amd64_sha256 = - "941de83d78b27d43db07f427136ba159d661bb111db8d9ffe12499b863a003e1", - amd64_urls = [ - # Chromium 69.0.3497.0 (2018-07-19 snaphot 576668) - # https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html?prefix=Linux_x64/576668/ - "https://commondatastorage.googleapis.com/chromium-browser-snapshots/Linux_x64/576668/chrome-linux.zip", - ], - licenses = ["notice"], # BSD 3-clause (maybe more?) - macos_sha256 = - "bd01783e7d179e9f85d4b6f0c9df53118d13977cc7d365a1caa9d198c6afcfd8", - macos_urls = [ - # Chromium 69.0.3497.0 (2018-07-19 snaphot 576668) - # https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html?prefix=Mac/576668/ - # NOTE: There is an issue with ChromeHeadless on OSX chromium 70+ - "https://commondatastorage.googleapis.com/chromium-browser-snapshots/Mac/576668/chrome-mac.zip", - ], - windows_sha256 = - "d1bb728118c12ea436d8ea07dba980789e7d860aa664dd1fad78bc20e8d9391c", - windows_urls = [ - # Chromium 66.0.3359.0 (2018-03-01 snaphot 540270) - # https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html?prefix=Win_x64/612439/ - # NOTE: There is an issue with chromium 68-71 with Windows: https://bugs.chromium.org/p/chromium/issues/detail?id=540270 - # and pinning to 72 is not possible as the archive name has changed to chrome-win.zip which breaks - # as the executable path the hard-coded in rules_webtesting and includes the archive name. - "https://commondatastorage.googleapis.com/chromium-browser-snapshots/Win_x64/540270/chrome-win32.zip", - ], - ) - - platform_http_file( - name = "org_chromium_chromedriver", - amd64_sha256 = - "687d2e15c42908e2911344c08a949461b3f20a83017a7a682ef4d002e05b5d46", - amd64_urls = [ - # ChromeDriver 2.44 supports Chrome v69-71 - # http://chromedriver.chromium.org/downloads - "https://chromedriver.storage.googleapis.com/2.44/chromedriver_linux64.zip", - ], - licenses = ["reciprocal"], # BSD 3-clause, ICU, MPL 1.1, libpng (BSD/MIT-like), Academic Free License v. 2.0, BSD 2-clause, MIT - macos_sha256 = - "3fd49c2782a5f93cb48ff2dee021004d9a7fb393798e4c4807b391cedcd30ed9", - macos_urls = [ - # ChromeDriver 2.44 supports Chrome v69-71 - # http://chromedriver.chromium.org/downloads - "https://chromedriver.storage.googleapis.com/2.44/chromedriver_mac64.zip", - ], - windows_sha256 = - "a8fa028acebef7b931ef9cb093f02865f9f7495e49351f556e919f7be77f072e", - windows_urls = [ - # ChromeDriver 2.38 supports Chrome v65-67 - # http://chromedriver.chromium.org/downloads - "https://chromedriver.storage.googleapis.com/2.38/chromedriver_win32.zip", - ], - ) - - platform_http_file( - name = "org_mozilla_firefox", - amd64_sha256 = - "3a729ddcb1e0f5d63933177a35177ac6172f12edbf9fbbbf45305f49333608de", - amd64_urls = [ - "https://mirror.bazel.build/ftp.mozilla.org/pub/firefox/releases/61.0.2/linux-x86_64/en-US/firefox-61.0.2.tar.bz2", - "https://ftp.mozilla.org/pub/firefox/releases/61.0.2/linux-x86_64/en-US/firefox-61.0.2.tar.bz2", - ], - licenses = ["reciprocal"], # MPL 2.0 - macos_sha256 = - "bf23f659ae34832605dd0576affcca060d1077b7bf7395bc9874f62b84936dc5", - macos_urls = [ - "https://mirror.bazel.build/ftp.mozilla.org/pub/firefox/releases/61.0.2/mac/en-US/Firefox%2061.0.2.dmg", - "https://ftp.mozilla.org/pub/firefox/releases/61.0.2/mac/en-US/Firefox%2061.0.2.dmg", - ], - ) - - platform_http_file( - name = "org_mozilla_geckodriver", - amd64_sha256 = - "c9ae92348cf00aa719be6337a608fae8304691a95668e8e338d92623ba9e0ec6", - amd64_urls = [ - "https://mirror.bazel.build/github.com/mozilla/geckodriver/releases/download/v0.21.0/geckodriver-v0.21.0-linux64.tar.gz", - "https://github.com/mozilla/geckodriver/releases/download/v0.21.0/geckodriver-v0.21.0-linux64.tar.gz", - ], - licenses = ["reciprocal"], # MPL 2.0 - macos_sha256 = - "ce4a3e9d706db94e8760988de1ad562630412fa8cf898819572522be584f01ce", - macos_urls = [ - "https://mirror.bazel.build/github.com/mozilla/geckodriver/releases/download/v0.21.0/geckodriver-v0.21.0-macos.tar.gz", - "https://github.com/mozilla/geckodriver/releases/download/v0.21.0/geckodriver-v0.21.0-macos.tar.gz", - ], - )
diff --git a/internal/karma/defaults.bzl b/internal/karma/defaults.bzl deleted file mode 100644 index 954a991..0000000 --- a/internal/karma/defaults.bzl +++ /dev/null
@@ -1,37 +0,0 @@ -# Copyright 2017 The Bazel Authors. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -"Defaults for rules_karma repository not meant to be used downstream" - -load( - "@npm_bazel_karma//:defs.bzl", - _karma_web_test = "karma_web_test", - _karma_web_test_suite = "karma_web_test_suite", - _ts_web_test = "ts_web_test", - _ts_web_test_suite = "ts_web_test_suite", -) - -INTERNAL_KARMA_BIN = "@npm_bazel_karma//:karma_bin" - -def karma_web_test(karma = INTERNAL_KARMA_BIN, **kwargs): - _karma_web_test(karma = karma, **kwargs) - -def karma_web_test_suite(karma = INTERNAL_KARMA_BIN, **kwargs): - _karma_web_test_suite(karma = karma, **kwargs) - -def ts_web_test(karma = INTERNAL_KARMA_BIN, **kwargs): - _ts_web_test(karma = karma, **kwargs) - -def ts_web_test_suite(karma = INTERNAL_KARMA_BIN, **kwargs): - _ts_web_test_suite(karma = karma, **kwargs)
diff --git a/internal/karma/defs.bzl b/internal/karma/defs.bzl deleted file mode 100644 index b8053b9..0000000 --- a/internal/karma/defs.bzl +++ /dev/null
@@ -1,33 +0,0 @@ -# Copyright 2017 The Bazel Authors. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -""" Public API surface is re-exported here. -""" - -load( - ":karma_web_test.bzl", - _karma_web_test = "karma_web_test", - _karma_web_test_suite = "karma_web_test_suite", -) -load( - ":ts_web_test.bzl", - _ts_web_test = "ts_web_test", - _ts_web_test_suite = "ts_web_test_suite", -) - -# TODO(alexeagle): make ts_web_test && ts_web_test_suite work in google3 -ts_web_test = _ts_web_test -ts_web_test_suite = _ts_web_test_suite -karma_web_test = _karma_web_test -karma_web_test_suite = _karma_web_test_suite
diff --git a/internal/karma/docs/BUILD.bazel b/internal/karma/docs/BUILD.bazel deleted file mode 100644 index ff0476c..0000000 --- a/internal/karma/docs/BUILD.bazel +++ /dev/null
@@ -1,11 +0,0 @@ -load("@io_bazel_skydoc//skylark:skylark.bzl", "skylark_doc") -exports_files(["install.md"]) -skylark_doc( - name = "docs", - srcs = [ - "//:karma_web_test.bzl", - "//:ts_web_test.bzl", - ], - format = "markdown", - visibility = ["//:__subpackages__"], -)
diff --git a/internal/karma/docs/index.md b/internal/karma/docs/index.md deleted file mode 100644 index 697f82f..0000000 --- a/internal/karma/docs/index.md +++ /dev/null
@@ -1,89 +0,0 @@ - -# Overview - - -<nav class="toc"> - <h2>Rule sets</h2> - <ul> - <li><a href="#karma_web_test">Unit testing with Karma</a></li> - <li><a href="#ts_web_test">Unit testing in a browser</a></li> - </ul> -</nav> - -<h2><a href="/karma_web_test.html" id="karma_web_test">Unit testing with Karma</a></h2> - -<h3>Macros</h3> -<table class="overview-table"> - <colgroup> - <col class="col-name" /> - <col class="col-description" /> - </colgroup> - <tbody> - <tr> - <td> - <a href="/karma_web_test.html#run_karma_web_test"> - <code>run_karma_web_test</code> - </a> - </td> - <td> - <p>Creates an action that can run karma.</p> - - </td> - </tr> - <tr> - <td> - <a href="/karma_web_test.html#karma_web_test"> - <code>karma_web_test</code> - </a> - </td> - <td> - <p>Runs unit tests in a browser with Karma.</p> - - </td> - </tr> - <tr> - <td> - <a href="/karma_web_test.html#karma_web_test_suite"> - <code>karma_web_test_suite</code> - </a> - </td> - <td> - <p>Defines a test_suite of web_test targets that wrap a karma_web_test target.</p> - - </td> - </tr> - </tbody> -</table> -<h2><a href="/ts_web_test.html" id="ts_web_test">Unit testing in a browser</a></h2> - -<h3>Macros</h3> -<table class="overview-table"> - <colgroup> - <col class="col-name" /> - <col class="col-description" /> - </colgroup> - <tbody> - <tr> - <td> - <a href="/ts_web_test.html#ts_web_test"> - <code>ts_web_test</code> - </a> - </td> - <td> - <p>Runs unit tests in a browser.</p> - - </td> - </tr> - <tr> - <td> - <a href="/ts_web_test.html#ts_web_test_suite"> - <code>ts_web_test_suite</code> - </a> - </td> - <td> - <p>Defines a test_suite of web_test targets that wrap a ts_web_test target.</p> - - </td> - </tr> - </tbody> -</table>
diff --git a/internal/karma/docs/install.md b/internal/karma/docs/install.md deleted file mode 100644 index e04b558..0000000 --- a/internal/karma/docs/install.md +++ /dev/null
@@ -1,80 +0,0 @@ -# Karma rules for Bazel - -**WARNING: this is beta-quality software. Breaking changes are likely. Not recommended for production use without expert support.** - -The Karma rules run karma tests with Bazel. - -## Installation - -Add the `@bazel/karma` npm package to your `devDependencies` in `package.json`. - -Your `WORKSPACE` should declare a `yarn_install` or `npm_install` rule named `npm`. -It should then install the rules found in the npm packages. - -This is copied from the README for rules_nodejs: - -```python -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") - -# Fetch rules_nodejs -# (you can check https://github.com/bazelbuild/rules_nodejs/releases for a newer release than this) -http_archive( - name = "build_bazel_rules_nodejs", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/0.18.5/rules_nodejs-0.18.5.tar.gz"], - sha256 = "c8cd6a77433f7d3bb1f4ac87f15822aa102989f8e9eb1907ca0cad718573985b", -) - -# Setup the NodeJS toolchain -load("@build_bazel_rules_nodejs//:defs.bzl", "node_repositories", "yarn_install") -node_repositories() - -yarn_install( - name = "npm", - package_json = "//:package.json", - yarn_lock = "//:yarn.lock", -) - -# Install all Bazel dependencies needed for npm packages that supply Bazel rules -load("@npm//:install_bazel_dependencies.bzl", "install_bazel_dependencies") -install_bazel_dependencies() -``` - -This causes the `@bazel/karma` package to be installed as a Bazel workspace named `npm_bazel_karma`. - -Now add this to your `WORKSPACE` to install the Karma dependencies: - -```python -# Fetch transitive Bazel dependencies of npm_bazel_karma -load("@npm_bazel_karma//:package.bzl", "rules_karma_dependencies") -rules_karma_dependencies() -``` - -This installs the `io_bazel_rules_webtesting` repository, if you haven't installed it earlier. - -Finally, configure the rules_webtesting: - -```python -# Setup web testing, choose browsers we can test on -load("@io_bazel_rules_webtesting//web:repositories.bzl", "browser_repositories", "web_test_repositories") - -web_test_repositories() -browser_repositories( - chromium = True, -) -``` - -## Installing with self-managed dependencies - -If you didn't use the `yarn_install` or `npm_install` rule to create an `npm` workspace, you'll have to declare a rule in your root `BUILD.bazel` file to execute karma: - -```python -# Create a karma rule to use in ts_web_test_suite karma -# attribute when using self-managed dependencies -nodejs_binary( - name = "karma/karma", - entry_point = "karma/bin/karma", - # Point bazel to your node_modules to find the entry point - node_modules = ["//:node_modules"], -) -``` -
diff --git a/internal/karma/docs/karma_web_test.md b/internal/karma/docs/karma_web_test.md deleted file mode 100644 index 39c6543..0000000 --- a/internal/karma/docs/karma_web_test.md +++ /dev/null
@@ -1,315 +0,0 @@ - -<!--- -Documentation generated by Skydoc ---> -<h1>Unit testing with Karma</h1> - - -<nav class="toc"> - <h2>Macros</h2> - <ul> - <li><a href="#run_karma_web_test">run_karma_web_test</a></li> - <li><a href="#karma_web_test">karma_web_test</a></li> - <li><a href="#karma_web_test_suite">karma_web_test_suite</a></li> - </ul> -</nav> -<a name="run_karma_web_test"></a> -## run_karma_web_test - -<pre> -run_karma_web_test(<a href="#run_karma_web_test.ctx">ctx</a>) -</pre> - -Creates an action that can run karma. - -This is also used by ts_web_test_rule. - -Returns: - The runfiles for the generated action. - - -<a name="run_karma_web_test_args"></a> -### Attributes - - -<table class="params-table"> - <colgroup> - <col class="col-param" /> - <col class="col-description" /> - </colgroup> - <tbody> - <tr id="run_karma_web_test.ctx"> - <td><code>ctx</code></td> - <td> - <p><code>Unknown; Required</code></p> - <p>Bazel rule execution context</p> - </td> - </tr> - </tbody> -</table> -<a name="karma_web_test"></a> -## karma_web_test - -<pre> -karma_web_test(<a href="#karma_web_test.srcs">srcs</a>, <a href="#karma_web_test.deps">deps</a>, <a href="#karma_web_test.data">data</a>, <a href="#karma_web_test.configuration_env_vars">configuration_env_vars</a>, <a href="#karma_web_test.bootstrap">bootstrap</a>, <a href="#karma_web_test.runtime_deps">runtime_deps</a>, <a href="#karma_web_test.static_files">static_files</a>, <a href="#karma_web_test.config_file">config_file</a>, <a href="#karma_web_test.tags">tags</a>, <a href="#karma_web_test.**kwargs">**kwargs</a>) -</pre> - -Runs unit tests in a browser with Karma. - -When executed under `bazel test`, this uses a headless browser for speed. -This is also because `bazel test` allows multiple targets to be tested together, -and we don't want to open a Chrome window on your machine for each one. Also, -under `bazel test` the test will execute and immediately terminate. - -Running under `ibazel test` gives you a "watch mode" for your tests. The rule is -optimized for this case - the test runner server will stay running and just -re-serve the up-to-date JavaScript source bundle. - -To debug a single test target, run it with `bazel run` instead. This will open a -browser window on your computer. Also you can use any other browser by opening -the URL printed when the test starts up. The test will remain running until you -cancel the `bazel run` command. - -This rule will use your system Chrome by default. In the default case, your -environment must specify CHROME_BIN so that the rule will know which Chrome binary to run. -Other `browsers` and `customLaunchers` may be set using the a base Karma configuration -specified in the `config_file` attribute. - - -<a name="karma_web_test_args"></a> -### Attributes - - -<table class="params-table"> - <colgroup> - <col class="col-param" /> - <col class="col-description" /> - </colgroup> - <tbody> - <tr id="karma_web_test.srcs"> - <td><code>srcs</code></td> - <td> - <p><code>List of strings; Optional</code></p> - <p>A list of JavaScript test files</p> - </td> - </tr> - <tr id="karma_web_test.deps"> - <td><code>deps</code></td> - <td> - <p><code>List of strings; Optional</code></p> - <p>Other targets which produce JavaScript such as <code>ts_library</code></p> - </td> - </tr> - <tr id="karma_web_test.data"> - <td><code>data</code></td> - <td> - <p><code>List of strings; Optional</code></p> - <p>Runtime dependencies</p> - </td> - </tr> - <tr id="karma_web_test.configuration_env_vars"> - <td><code>configuration_env_vars</code></td> - <td> - <p><code>List of strings; Optional</code></p> - <p>Pass these configuration environment variables to the resulting binary. -Chooses a subset of the configuration environment variables (taken from ctx.var), which also -includes anything specified via the --define flag. -Note, this can lead to different outputs produced by this rule.</p> - </td> - </tr> - <tr id="karma_web_test.bootstrap"> - <td><code>bootstrap</code></td> - <td> - <p><code>List of strings; Optional</code></p> - <p>JavaScript files to include <em>before</em> the module loader (require.js). -For example, you can include Reflect,js for TypeScript decorator metadata reflection, -or UMD bundles for third-party libraries.</p> - </td> - </tr> - <tr id="karma_web_test.runtime_deps"> - <td><code>runtime_deps</code></td> - <td> - <p><code>List of strings; Optional</code></p> - <p>Dependencies which should be loaded after the module loader but before the srcs and deps. -These should be a list of targets which produce JavaScript such as <code>ts_library</code>. -The files will be loaded in the same order they are declared by that rule.</p> - </td> - </tr> - <tr id="karma_web_test.static_files"> - <td><code>static_files</code></td> - <td> - <p><code>List of strings; Optional</code></p> - <p>Arbitrary files which are available to be served on request. -Files are served at: -<code>/base/&lt;WORKSPACE_NAME&gt;/&lt;path-to-file&gt;</code>, e.g. -<code>/base/npm_bazel_typescript/examples/testing/static_script.js</code></p> - </td> - </tr> - <tr id="karma_web_test.config_file"> - <td><code>config_file</code></td> - <td> - <p><code>Unknown; Optional</code></p> - <p>User supplied Karma configuration file. Bazel will override -certain attributes of this configuration file. Attributes that are -overridden will be outputted to the test log.</p> - </td> - </tr> - <tr id="karma_web_test.tags"> - <td><code>tags</code></td> - <td> - <p><code>List of strings; Optional</code></p> - <p>Standard Bazel tags, this macro adds tags for ibazel support</p> - </td> - </tr> - <tr id="karma_web_test.**kwargs"> - <td><code>**kwargs</code></td> - <td> - <p><code>Unknown; Optional</code></p> - <p>Passed through to <code>karma_web_test</code></p> - </td> - </tr> - </tbody> -</table> -<a name="karma_web_test_suite"></a> -## karma_web_test_suite - -<pre> -karma_web_test_suite(<a href="#karma_web_test_suite.name">name</a>, <a href="#karma_web_test_suite.browsers">browsers</a>, <a href="#karma_web_test_suite.args">args</a>, <a href="#karma_web_test_suite.browser_overrides">browser_overrides</a>, <a href="#karma_web_test_suite.config">config</a>, <a href="#karma_web_test_suite.flaky">flaky</a>, <a href="#karma_web_test_suite.local">local</a>, <a href="#karma_web_test_suite.shard_count">shard_count</a>, <a href="#karma_web_test_suite.size">size</a>, <a href="#karma_web_test_suite.tags">tags</a>, <a href="#karma_web_test_suite.test_suite_tags">test_suite_tags</a>, <a href="#karma_web_test_suite.timeout">timeout</a>, <a href="#karma_web_test_suite.visibility">visibility</a>, <a href="#karma_web_test_suite.web_test_data">web_test_data</a>, <a href="#karma_web_test_suite.wrapped_test_tags">wrapped_test_tags</a>, <a href="#karma_web_test_suite.**remaining_keyword_args">**remaining_keyword_args</a>) -</pre> - -Defines a test_suite of web_test targets that wrap a karma_web_test target. - -This macro also accepts all parameters in karma_web_test. See karma_web_test docs -for details. - - -<a name="karma_web_test_suite_args"></a> -### Attributes - - -<table class="params-table"> - <colgroup> - <col class="col-param" /> - <col class="col-description" /> - </colgroup> - <tbody> - <tr id="karma_web_test_suite.name"> - <td><code>name</code></td> - <td> - <p><code><a href="https://bazel.build/docs/build-ref.html#name">Name</a>; Required</code></p> - <p>The base name of the test</p> - </td> - </tr> - <tr id="karma_web_test_suite.browsers"> - <td><code>browsers</code></td> - <td> - <p><code>List of strings; Optional</code></p> - <p>A sequence of labels specifying the browsers to use.</p> - </td> - </tr> - <tr id="karma_web_test_suite.args"> - <td><code>args</code></td> - <td> - <p><code>Unknown; Optional</code></p> - <p>Args for web_test targets generated by this extension.</p> - </td> - </tr> - <tr id="karma_web_test_suite.browser_overrides"> - <td><code>browser_overrides</code></td> - <td> - <p><code>Unknown; Optional</code></p> - <p>Dictionary; optional; default is an empty dictionary. A -dictionary mapping from browser names to browser-specific web_test -attributes, such as shard_count, flakiness, timeout, etc. For example: -{'//browsers:chrome-native': {'shard_count': 3, 'flaky': 1} -'//browsers:firefox-native': {'shard_count': 1, 'timeout': 100}}.</p> - </td> - </tr> - <tr id="karma_web_test_suite.config"> - <td><code>config</code></td> - <td> - <p><code>Unknown; Optional</code></p> - <p>Label; optional; Configuration of web test features.</p> - </td> - </tr> - <tr id="karma_web_test_suite.flaky"> - <td><code>flaky</code></td> - <td> - <p><code>Unknown; Optional</code></p> - <p>A boolean specifying that the test is flaky. If set, the test will -be retried up to 3 times (default: 0)</p> - </td> - </tr> - <tr id="karma_web_test_suite.local"> - <td><code>local</code></td> - <td> - <p><code>Unknown; Optional</code></p> - <p>boolean; optional.</p> - </td> - </tr> - <tr id="karma_web_test_suite.shard_count"> - <td><code>shard_count</code></td> - <td> - <p><code>Unknown; Optional</code></p> - <p>The number of test shards to use per browser. (default: 1)</p> - </td> - </tr> - <tr id="karma_web_test_suite.size"> - <td><code>size</code></td> - <td> - <p><code>Unknown; Optional</code></p> - <p>A string specifying the test size. (default: 'large')</p> - </td> - </tr> - <tr id="karma_web_test_suite.tags"> - <td><code>tags</code></td> - <td> - <p><code>List of strings; Optional</code></p> - <p>A list of test tag strings to apply to each generated web_test target. -This macro adds a couple for ibazel.</p> - </td> - </tr> - <tr id="karma_web_test_suite.test_suite_tags"> - <td><code>test_suite_tags</code></td> - <td> - <p><code>Unknown; Optional</code></p> - <p>A list of tag strings for the generated test_suite.</p> - </td> - </tr> - <tr id="karma_web_test_suite.timeout"> - <td><code>timeout</code></td> - <td> - <p><code>Unknown; Optional</code></p> - <p>A string specifying the test timeout (default: computed from size)</p> - </td> - </tr> - <tr id="karma_web_test_suite.visibility"> - <td><code>visibility</code></td> - <td> - <p><code>Unknown; Optional</code></p> - <p>List of labels; optional.</p> - </td> - </tr> - <tr id="karma_web_test_suite.web_test_data"> - <td><code>web_test_data</code></td> - <td> - <p><code>List of strings; Optional</code></p> - <p>Data dependencies for the web_test.</p> - </td> - </tr> - <tr id="karma_web_test_suite.wrapped_test_tags"> - <td><code>wrapped_test_tags</code></td> - <td> - <p><code>Unknown; Optional</code></p> - <p>A list of test tag strings to use for the wrapped test</p> - </td> - </tr> - <tr id="karma_web_test_suite.**remaining_keyword_args"> - <td><code>**remaining_keyword_args</code></td> - <td> - <p><code>Unknown; Optional</code></p> - <p>Arguments for the wrapped test target.</p> - </td> - </tr> - </tbody> -</table>
diff --git a/internal/karma/docs/ts_web_test.md b/internal/karma/docs/ts_web_test.md deleted file mode 100644 index eca8535..0000000 --- a/internal/karma/docs/ts_web_test.md +++ /dev/null
@@ -1,272 +0,0 @@ - -<!--- -Documentation generated by Skydoc ---> -<h1>Unit testing in a browser</h1> - - -<nav class="toc"> - <h2>Macros</h2> - <ul> - <li><a href="#ts_web_test">ts_web_test</a></li> - <li><a href="#ts_web_test_suite">ts_web_test_suite</a></li> - </ul> -</nav> -<a name="ts_web_test"></a> -## ts_web_test - -<pre> -ts_web_test(<a href="#ts_web_test.srcs">srcs</a>, <a href="#ts_web_test.deps">deps</a>, <a href="#ts_web_test.data">data</a>, <a href="#ts_web_test.configuration_env_vars">configuration_env_vars</a>, <a href="#ts_web_test.bootstrap">bootstrap</a>, <a href="#ts_web_test.runtime_deps">runtime_deps</a>, <a href="#ts_web_test.static_files">static_files</a>, <a href="#ts_web_test.tags">tags</a>, <a href="#ts_web_test.**kwargs">**kwargs</a>) -</pre> - -Runs unit tests in a browser. - -When executed under `bazel test`, this uses a headless browser for speed. -This is also because `bazel test` allows multiple targets to be tested together, -and we don't want to open a Chrome window on your machine for each one. Also, -under `bazel test` the test will execute and immediately terminate. - -Running under `ibazel test` gives you a "watch mode" for your tests. The rule is -optimized for this case - the test runner server will stay running and just -re-serve the up-to-date JavaScript source bundle. - -To debug a single test target, run it with `bazel run` instead. This will open a -browser window on your computer. Also you can use any other browser by opening -the URL printed when the test starts up. The test will remain running until you -cancel the `bazel run` command. - -This rule will use your system Chrome. Your environment must specify CHROME_BIN -so that the rule will know which Chrome binary to run. - -Currently this rule uses Karma as the test runner under the hood, but this is -an implementation detail. We might switch to another runner like Jest in the future. - - -<a name="ts_web_test_args"></a> -### Attributes - - -<table class="params-table"> - <colgroup> - <col class="col-param" /> - <col class="col-description" /> - </colgroup> - <tbody> - <tr id="ts_web_test.srcs"> - <td><code>srcs</code></td> - <td> - <p><code>List of strings; Optional</code></p> - <p>A list of JavaScript test files</p> - </td> - </tr> - <tr id="ts_web_test.deps"> - <td><code>deps</code></td> - <td> - <p><code>List of strings; Optional</code></p> - <p>Other targets which produce JavaScript such as <code>ts_library</code></p> - </td> - </tr> - <tr id="ts_web_test.data"> - <td><code>data</code></td> - <td> - <p><code>List of strings; Optional</code></p> - <p>Runtime dependencies</p> - </td> - </tr> - <tr id="ts_web_test.configuration_env_vars"> - <td><code>configuration_env_vars</code></td> - <td> - <p><code>List of strings; Optional</code></p> - <p>Pass these configuration environment variables to the resulting binary. -Chooses a subset of the configuration environment variables (taken from ctx.var), which also -includes anything specified via the --define flag. -Note, this can lead to different outputs produced by this rule.</p> - </td> - </tr> - <tr id="ts_web_test.bootstrap"> - <td><code>bootstrap</code></td> - <td> - <p><code>List of strings; Optional</code></p> - <p>JavaScript files to include <em>before</em> the module loader (require.js). -For example, you can include Reflect,js for TypeScript decorator metadata reflection, -or UMD bundles for third-party libraries.</p> - </td> - </tr> - <tr id="ts_web_test.runtime_deps"> - <td><code>runtime_deps</code></td> - <td> - <p><code>List of strings; Optional</code></p> - <p>Dependencies which should be loaded after the module loader but before the srcs and deps. -These should be a list of targets which produce JavaScript such as <code>ts_library</code>. -The files will be loaded in the same order they are declared by that rule.</p> - </td> - </tr> - <tr id="ts_web_test.static_files"> - <td><code>static_files</code></td> - <td> - <p><code>List of strings; Optional</code></p> - <p>Arbitrary files which are available to be served on request. -Files are served at: -<code>/base/&lt;WORKSPACE_NAME&gt;/&lt;path-to-file&gt;</code>, e.g. -<code>/base/npm_bazel_typescript/examples/testing/static_script.js</code></p> - </td> - </tr> - <tr id="ts_web_test.tags"> - <td><code>tags</code></td> - <td> - <p><code>List of strings; Optional</code></p> - <p>Standard Bazel tags, this macro adds tags for ibazel support as well as</p> - </td> - </tr> - <tr id="ts_web_test.**kwargs"> - <td><code>**kwargs</code></td> - <td> - <p><code>Unknown; Optional</code></p> - <p>Passed through to <code>ts_web_test</code></p> - </td> - </tr> - </tbody> -</table> -<a name="ts_web_test_suite"></a> -## ts_web_test_suite - -<pre> -ts_web_test_suite(<a href="#ts_web_test_suite.name">name</a>, <a href="#ts_web_test_suite.browsers">browsers</a>, <a href="#ts_web_test_suite.args">args</a>, <a href="#ts_web_test_suite.browser_overrides">browser_overrides</a>, <a href="#ts_web_test_suite.config">config</a>, <a href="#ts_web_test_suite.flaky">flaky</a>, <a href="#ts_web_test_suite.local">local</a>, <a href="#ts_web_test_suite.shard_count">shard_count</a>, <a href="#ts_web_test_suite.size">size</a>, <a href="#ts_web_test_suite.tags">tags</a>, <a href="#ts_web_test_suite.test_suite_tags">test_suite_tags</a>, <a href="#ts_web_test_suite.timeout">timeout</a>, <a href="#ts_web_test_suite.visibility">visibility</a>, <a href="#ts_web_test_suite.web_test_data">web_test_data</a>, <a href="#ts_web_test_suite.wrapped_test_tags">wrapped_test_tags</a>, <a href="#ts_web_test_suite.**remaining_keyword_args">**remaining_keyword_args</a>) -</pre> - -Defines a test_suite of web_test targets that wrap a ts_web_test target. - -This macro also accepts all parameters in ts_web_test. See ts_web_test docs for -details. - - -<a name="ts_web_test_suite_args"></a> -### Attributes - - -<table class="params-table"> - <colgroup> - <col class="col-param" /> - <col class="col-description" /> - </colgroup> - <tbody> - <tr id="ts_web_test_suite.name"> - <td><code>name</code></td> - <td> - <p><code><a href="https://bazel.build/docs/build-ref.html#name">Name</a>; Required</code></p> - <p>The base name of the test.</p> - </td> - </tr> - <tr id="ts_web_test_suite.browsers"> - <td><code>browsers</code></td> - <td> - <p><code>List of strings; Optional</code></p> - <p>A sequence of labels specifying the browsers to use.</p> - </td> - </tr> - <tr id="ts_web_test_suite.args"> - <td><code>args</code></td> - <td> - <p><code>Unknown; Optional</code></p> - <p>Args for web_test targets generated by this extension.</p> - </td> - </tr> - <tr id="ts_web_test_suite.browser_overrides"> - <td><code>browser_overrides</code></td> - <td> - <p><code>Unknown; Optional</code></p> - <p>Dictionary; optional; default is an empty dictionary. A -dictionary mapping from browser names to browser-specific web_test -attributes, such as shard_count, flakiness, timeout, etc. For example: -{'//browsers:chrome-native': {'shard_count': 3, 'flaky': 1} -'//browsers:firefox-native': {'shard_count': 1, 'timeout': 100}}.</p> - </td> - </tr> - <tr id="ts_web_test_suite.config"> - <td><code>config</code></td> - <td> - <p><code>Unknown; Optional</code></p> - <p>Label; optional; Configuration of web test features.</p> - </td> - </tr> - <tr id="ts_web_test_suite.flaky"> - <td><code>flaky</code></td> - <td> - <p><code>Unknown; Optional</code></p> - <p>A boolean specifying that the test is flaky. If set, the test will -be retried up to 3 times (default: 0)</p> - </td> - </tr> - <tr id="ts_web_test_suite.local"> - <td><code>local</code></td> - <td> - <p><code>Unknown; Optional</code></p> - <p>boolean; optional.</p> - </td> - </tr> - <tr id="ts_web_test_suite.shard_count"> - <td><code>shard_count</code></td> - <td> - <p><code>Unknown; Optional</code></p> - <p>The number of test shards to use per browser. (default: 1)</p> - </td> - </tr> - <tr id="ts_web_test_suite.size"> - <td><code>size</code></td> - <td> - <p><code>Unknown; Optional</code></p> - <p>A string specifying the test size. (default: 'large')</p> - </td> - </tr> - <tr id="ts_web_test_suite.tags"> - <td><code>tags</code></td> - <td> - <p><code>List of strings; Optional</code></p> - <p>A list of test tag strings to apply to each generated web_test_suite target. -This macro adds a couple for ibazel.</p> - </td> - </tr> - <tr id="ts_web_test_suite.test_suite_tags"> - <td><code>test_suite_tags</code></td> - <td> - <p><code>Unknown; Optional</code></p> - <p>A list of tag strings for the generated test_suite.</p> - </td> - </tr> - <tr id="ts_web_test_suite.timeout"> - <td><code>timeout</code></td> - <td> - <p><code>Unknown; Optional</code></p> - <p>A string specifying the test timeout (default: computed from size)</p> - </td> - </tr> - <tr id="ts_web_test_suite.visibility"> - <td><code>visibility</code></td> - <td> - <p><code>Unknown; Optional</code></p> - <p>List of labels; optional.</p> - </td> - </tr> - <tr id="ts_web_test_suite.web_test_data"> - <td><code>web_test_data</code></td> - <td> - <p><code>List of strings; Optional</code></p> - <p>Data dependencies for the web_test_suite.</p> - </td> - </tr> - <tr id="ts_web_test_suite.wrapped_test_tags"> - <td><code>wrapped_test_tags</code></td> - <td> - <p><code>Unknown; Optional</code></p> - <p>A list of test tag strings to use for the wrapped test</p> - </td> - </tr> - <tr id="ts_web_test_suite.**remaining_keyword_args"> - <td><code>**remaining_keyword_args</code></td> - <td> - <p><code>Unknown; Optional</code></p> - <p>Arguments for the wrapped test target.</p> - </td> - </tr> - </tbody> -</table>
diff --git a/internal/karma/index.ts b/internal/karma/index.ts deleted file mode 100644 index 511a6fb..0000000 --- a/internal/karma/index.ts +++ /dev/null
@@ -1,101 +0,0 @@ -/* - * Concat all JS files before serving. - */ -import * as crypto from 'crypto'; -import * as fs from 'fs'; -import * as path from 'path'; -import * as process from 'process'; -import * as tmp from 'tmp'; -import {createInterface} from 'readline'; -///<reference types="lib.dom"/> - -/** - * Return SHA1 of data buffer. - */ -function sha1(data) { - const hash = crypto.createHash('sha1'); - hash.update(data); - return hash.digest('hex'); -} - -/** - * Entry-point for the Karma plugin. - */ -function initConcatJs(logger, emitter, basePath, hostname, port) { - const log = logger.create('framework.concat_js'); - - // Create a tmp file for the concat bundle that is automatically cleaned up on - // exit. - const tmpFile = tmp.fileSync({keep: false, dir: process.env['TEST_TMPDIR']}); - - emitter.on('file_list_modified', files => { - const bundleFile = { - path: '/concatjs_bundle.js', - contentPath: tmpFile.name, - isUrl: false, - content: '', - encodings: {}, - } as any; - const included = []; - - files.included.forEach(file => { - if (path.extname(file.originalPath) !== '.js') { - // Preserve all non-JS that were there in the included list. - included.push(file); - } else { - const relativePath = - path.relative(basePath, file.originalPath).replace(/\\/g, '/'); - - // Remove 'use strict'. - let content = file.content.replace(/('use strict'|"use strict");?/, - ''); - content = JSON.stringify( - `${content}\n//# sourceURL=http://${hostname}:${port}/base/` + - `${relativePath}\n`); - content = `//${relativePath}\neval(${content});\n`; - bundleFile.content += content; - } - }); - - bundleFile.sha = sha1(Buffer.from(bundleFile.content)); - bundleFile.mtime = new Date(); - included.unshift(bundleFile); - - files.included = included; - files.served.push(bundleFile); - - log.debug('Writing concatjs bundle to tmp file %s', - bundleFile.contentPath); - fs.writeFileSync(bundleFile.contentPath, bundleFile.content); - }); -} - -(initConcatJs as any).$inject = ['logger', 'emitter', 'config.basePath', 'config.hostname', 'config.port']; - -function watcher(fileList: {refresh: () => void}) { - // ibazel will write this string after a successful build - // We don't want to re-trigger tests if the compilation fails, so - // we should only listen for this event. - const IBAZEL_NOTIFY_BUILD_SUCCESS = 'IBAZEL_BUILD_COMPLETED SUCCESS'; - // ibazel communicates with us via stdin - const rl = createInterface({input: process.stdin, terminal: false}); - rl.on('line', (chunk: string) => { - if (chunk === IBAZEL_NOTIFY_BUILD_SUCCESS) { - fileList.refresh(); - } - }); - rl.on('close', () => { - // Give ibazel 5s to kill our process, otherwise do it ourselves - setTimeout(() => { - console.error('ibazel failed to stop karma after 5s; probably a bug'); - process.exit(1); - }, 5000); - }); -} - -(watcher as any).$inject = ['fileList']; - -module.exports = { - 'framework:concat_js': ['factory', initConcatJs], - 'watcher': ['value', watcher], -};
diff --git a/internal/karma/karma.conf.js b/internal/karma/karma.conf.js deleted file mode 100644 index 1d82ff1..0000000 --- a/internal/karma/karma.conf.js +++ /dev/null
@@ -1,423 +0,0 @@ -// Karma configuration -// GENERATED BY Bazel -try -{ - const fs = require('fs'); - const path = require('path'); - const tmp = require('tmp'); - const child_process = require('child_process'); - - const DEBUG = false; - - TMPL_env_vars - - const configPath = 'TMPL_config_file'; - - if (DEBUG) - console.info(`Karma test starting with: - cwd: ${process.cwd()} - configPath: ${configPath}`); - - /** - * Helper function to find a particular namedFile - * within the webTestMetadata webTestFiles - */ - function findNamedFile(webTestMetadata, key) { - let result; - webTestMetadata['webTestFiles'].forEach(entry => { - const webTestNamedFiles = entry['namedFiles']; - if (webTestNamedFiles && webTestNamedFiles[key]) { - result = webTestNamedFiles[key]; - } - }); - return result; - } - - /** - * Helper function to extract a browser archive - * and return the path to extract executable - */ - function extractWebArchive(extractExe, archiveFile, executablePath) { - try { - // Paths are relative to the root runfiles folder - extractExe = extractExe ? path.join('..', extractExe) : extractExe; - archiveFile = path.join('..', archiveFile); - const extractedExecutablePath = path.join(process.cwd(), executablePath); - if (!extractExe) { - throw new Error('No EXTRACT_EXE found'); - } - child_process.execFileSync( - extractExe, [archiveFile, '.'], - {stdio: [process.stdin, process.stdout, process.stderr]}); - if (DEBUG) console.info(`Extracting web archive ${archiveFile} with ${extractExe} to ${extractedExecutablePath}`); - return extractedExecutablePath; - } catch (e) { - console.error(`Failed to extract ${archiveFile}`); - throw e; - } - } - - /** - * Chrome on Linux uses sandboxing, which needs user namespaces to be enabled. - * This is not available on all kernels and it might be turned off even if it is available. - * Notable examples where user namespaces are not available include: - * - In Debian it is compiled-in but disabled by default. - * - The Docker daemon for Windows or OSX does not support user namespaces. - * We can detect if user namespaces are supported via /proc/sys/kernel/unprivileged_userns_clone. - * For more information see: - * https://github.com/Googlechrome/puppeteer/issues/290 - * https://superuser.com/questions/1094597/enable-user-namespaces-in-debian-kernel#1122977 - * https://github.com/karma-runner/karma-chrome-launcher/issues/158 - * https://github.com/angular/angular/pull/24906 - */ - function supportsSandboxing() { - if (process.platform !== 'linux') { - return true; - } - try { - const res = child_process - .execSync('cat /proc/sys/kernel/unprivileged_userns_clone').toString().trim(); - return res === '1'; - } catch (error) { } - - return false; - } - - /** - * Helper function to override base karma config values. - */ - function overrideConfigValue(conf, name, value) { - if (conf.hasOwnProperty(name)) { - console.warn( - `Your karma configuration specifies '${name}' which will be overwritten by Bazel`); - } - conf[name] = value; - } - - /** - * Helper function to merge base karma config values that are arrays. - */ - function mergeConfigArray(conf, name, values) { - if (!conf[name]) { - conf[name] = []; - } - values.forEach(v => { - if (!conf[name].includes(v)) { - conf[name].push(v); - } - }) - } - - /** - * Configuration settings for karma under Bazel common to karma_web_test - * and karma_web_test_suite. - */ - function configureBazelConfig(config, conf) { - // list of karma plugins - mergeConfigArray(conf, 'plugins', [ - 'karma-*', - '@bazel/karma', - 'karma-sourcemap-loader', - 'karma-chrome-launcher', - 'karma-firefox-launcher', - 'karma-sauce-launcher', - ]); - - // list of karma preprocessors - if (!conf.preprocessors) { - conf.preprocessors = {} - } - conf.preprocessors['**/*.js'] = ['sourcemap']; - - // list of test frameworks to use - overrideConfigValue(conf, 'frameworks', ['jasmine', 'concat_js']); - - // test results reporter to use - // possible values: 'dots', 'progress' - // available reporters: https://npmjs.org/browse/keyword/karma-reporter - mergeConfigArray(conf, 'reporters', ['progress']); - - // enable / disable colors in the output (reporters and logs) - if (!conf.colors) { - conf.colors = true; - } - - // level of logging - // possible values: config.LOG_DISABLE || config.LOG_ERROR || - // config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG - if (!conf.logLevel) { - conf.logLevel = config.LOG_INFO; - } - - // enable / disable watching file and executing tests whenever - // any file changes - overrideConfigValue(conf, 'autoWatch', process.env['IBAZEL_NOTIFY_CHANGES'] === 'y'); - - // Continuous Integration mode - // if true, Karma captures browsers, runs the tests and exits - // note: run_karma.sh may override this as a command-line option. - overrideConfigValue(conf, 'singleRun', false); - - // Concurrency level - // how many browser should be started simultaneous - overrideConfigValue(conf, 'concurrency', Infinity); - - // base path that will be used to resolve all patterns - // (eg. files, exclude) - overrideConfigValue(conf, 'basePath', 'TMPL_runfiles_path'); - - // Do not show "no timestamp" errors from "karma-requirejs" for proxied file - // requests. Files which are passed as "static_files" are proxied by default and - // therefore should not cause such an exception when loaded as expected. - // See: https://github.com/karma-runner/karma-requirejs/issues/6 - const requireJsShowNoTimestampsError = '^(?!/base/).*$'; - - if (conf.client) { - overrideConfigValue(conf.client, 'requireJsShowNoTimestampsError', - requireJsShowNoTimestampsError); - } else { - conf.client = {requireJsShowNoTimestampsError}; - } - } - - /** - * Configure the 'files' and 'proxies' configuration attributes. - * These are concatenated into a single file by karma-concat-js. - */ - function configureFiles(conf) { - overrideConfigValue(conf, 'files', [ - TMPL_bootstrap_files - TMPL_user_files - ].map(f => { - if (f.startsWith('NODE_MODULES/')) { - try { - // attempt to resolve in @bazel/typescript nested node_modules first - return require.resolve(f.replace(/^NODE_MODULES\//, '@bazel/karma/node_modules/')); - } catch (e) { - // if that failed then attempt to resolve in root node_modules - return require.resolve(f.replace(/^NODE_MODULES\//, '')); - } - } else { - return require.resolve(f); - } - })); - overrideConfigValue(conf, 'exclude', []); - overrideConfigValue(conf, 'proxies', {}); - - // static files are added to the files array but - // configured to not be included so karma-concat-js does - // not included them in the bundle - [TMPL_static_files].forEach((f) => { - // In Windows, the runfile will probably not be symlinked. Se we need to - // serve the real file through karma, and proxy calls to the expected file - // location in the runfiles to the real file. - const resolvedFile = require.resolve(f); - conf.files.push({pattern: resolvedFile, included: false}); - // Prefixing the proxy path with '/absolute' allows karma to load local - // files. This doesn't see to be an official API. - // https://github.com/karma-runner/karma/issues/2703 - conf.proxies['/base/' + f] = '/absolute' + resolvedFile; - }); - - var requireConfigContent = ` -// A simplified version of Karma's requirejs.config.tpl.js for use with Karma under Bazel. -// This does an explicit \`require\` on each test script in the files, otherwise nothing will be loaded. -(function(){ - var runtimeFiles = [TMPL_runtime_files].map(function(file) { return file.replace(/\\.js$/, ''); }); - var allFiles = [TMPL_user_files]; - var allTestFiles = []; - allFiles.forEach(function (file) { - if (/[^a-zA-Z0-9](spec|test)\\.js$/i.test(file) && !/\\/node_modules\\//.test(file)) { - allTestFiles.push(file.replace(/\\.js$/, '')) - } - }); - require(runtimeFiles, function() { return require(allTestFiles, window.__karma__.start); }); -})(); -`; - - const requireConfigFile = tmp.fileSync( - {keep: false, postfix: '.js', dir: process.env['TEST_TMPDIR']}); - fs.writeFileSync(requireConfigFile.name, requireConfigContent); - conf.files.push(requireConfigFile.name); - } - - /** - * Configure karma under karma_web_test_suite. - * `browsers` and `customLaunchers` are setup by Bazel. - */ - function configureTsWebTestSuiteConfig(conf) { - // WEB_TEST_METADATA is configured in rules_webtesting based on value - // of the browsers attribute passed to karms_web_test_suite - // We setup the karma configuration based on the values in this object - if (!process.env['WEB_TEST_METADATA']) { - // This is a karma_web_test rule since there is no WEB_TEST_METADATA - return; - } - - overrideConfigValue(conf, 'browsers', []); - overrideConfigValue(conf, 'customLaunchers', null); - - const webTestMetadata = require(process.env['WEB_TEST_METADATA']); - if (DEBUG) console.info(`WEB_TEST_METADATA: ${JSON.stringify(webTestMetadata, null, 2)}`); - if (webTestMetadata['environment'] === 'sauce') { - // If a sauce labs browser is chosen for the test such as - // "@io_bazel_rules_webtesting//browsers/sauce:chrome-win10" - // than the 'environment' will equal 'sauce'. - // We expect that a SAUCE_USERNAME and SAUCE_ACCESS_KEY is available - // from the environment for this test to run - if (!process.env.SAUCE_USERNAME || !process.env.SAUCE_ACCESS_KEY) { - console.error('Make sure the SAUCE_USERNAME and SAUCE_ACCESS_KEY environment variables are set.'); - process.exit(1); - } - // 'capabilities' will specify the sauce labs configuration to use - const capabilities = webTestMetadata['capabilities']; - conf.customLaunchers = { - 'sauce': { - base: 'SauceLabs', - browserName: capabilities['browserName'], - platform: capabilities['platform'], - version: capabilities['version'], - } - }; - conf.browsers.push('sauce'); - } else if (webTestMetadata['environment'] === 'local') { - // When a local chrome or firefox browser is chosen such as - // "@io_bazel_rules_webtesting//browsers:chromium-local" or - // "@io_bazel_rules_webtesting//browsers:firefox-local" - // then the 'environment' will equal 'local' and - // 'webTestFiles' will contain the path to the binary to use - const extractExe = findNamedFile(webTestMetadata, 'EXTRACT_EXE'); - webTestMetadata['webTestFiles'].forEach(webTestFiles => { - const webTestNamedFiles = webTestFiles['namedFiles']; - const archiveFile = webTestFiles['archiveFile']; - if (webTestNamedFiles['CHROMIUM']) { - // When karma is configured to use Chrome it will look for a CHROME_BIN - // environment variable. - if (archiveFile) { - process.env.CHROME_BIN = extractWebArchive(extractExe, archiveFile, webTestNamedFiles['CHROMIUM']); - } else { - process.env.CHROME_BIN = require.resolve(webTestNamedFiles['CHROMIUM']); - } - const browser = process.env['DISPLAY'] ? 'Chrome' : 'ChromeHeadless'; - if (!supportsSandboxing()) { - const launcher = 'CustomChromeWithoutSandbox'; - conf.customLaunchers = { - [launcher]: { - base: browser, - flags: ['--no-sandbox'] - } - }; - conf.browsers.push(launcher); - } else { - conf.browsers.push(browser); - } - } - if (webTestNamedFiles['FIREFOX']) { - // When karma is configured to use Firefox it will look for a - // FIREFOX_BIN environment variable. - if (archiveFile) { - process.env.FIREFOX_BIN = extractWebArchive(extractExe, archiveFile, webTestNamedFiles['FIREFOX']); - } else { - process.env.FIREFOX_BIN = require.resolve(webTestNamedFiles['FIREFOX']); - } - conf.browsers.push(process.env['DISPLAY'] ? 'Firefox' : 'FirefoxHeadless'); - } - }); - } else { - throw new Error(`Unknown WEB_TEST_METADATA environment '${webTestMetadata['environment']}'`); - } - - if (!conf.browsers.length) { - throw new Error('No browsers configured in web test suite'); - } - - // Extra configuration is needed for saucelabs - // See: https://github.com/karma-runner/karma-sauce-launcher - if (conf.customLaunchers) { - // set the test name for sauce labs to use - // TEST_BINARY is set by Bazel and contains the name of the test - // target postfixed with the browser name such as - // 'examples/testing/testing_sauce_chrome-win10' for the - // test target examples/testing:testing - if (!conf.sauceLabs) { - conf.sauceLabs = {} - } - conf.sauceLabs.testName = process.env['TEST_BINARY'] || 'karma'; - - // Try "websocket" for a faster transmission first. Fallback to "polling" if necessary. - overrideConfigValue(conf, 'transports', ['websocket', 'polling']); - - // add the saucelabs reporter - mergeConfigArray(conf, 'reporters', ['saucelabs']); - } - } - - function configureTsWebTestConfig(conf) { - if (process.env['WEB_TEST_METADATA']) { - // This is a karma_web_test_suite rule since there is a WEB_TEST_METADATA - return; - } - - // Fallback to using the system local chrome if no valid browsers have been - // configured above - if (!conf.browsers || !conf.browsers.length) { - console.warn('No browsers configured. Configuring Karma to use system Chrome.'); - conf.browsers = [process.env['DISPLAY'] ? 'Chrome': 'ChromeHeadless']; - } - } - - function configureFormatError(conf) { - conf.formatError = (msg) => { - // This is a bazel specific formatError that removes the workspace - // name from stack traces. - // Look for filenames of the format "(<filename>:<row>:<column>" - const FILENAME_REGEX = /\(([^:]+)(:\d+:\d+)/gm; - msg = msg.replace(FILENAME_REGEX, (_, p1, p2) => { - if (p1. startsWith('../')) { - // Remove all leading "../" - while (p1.startsWith('../')) { - p1 = p1.substr(3); - } - } else { - // Remove workspace name(angular, ngdeps etc.) from the beginning. - const index = p1.indexOf('/'); - if (index >= 0) { - p1 = p1.substr(index + 1); - } - } - return '(' + p1 + p2; - }); - return msg + '\n\n'; - }; - } - - module.exports = function(config) { - let conf = {}; - - // Import the user's base karma configuration if specified - if (configPath) { - const baseConf = require(configPath); - if (typeof baseConf !== 'function') { - throw new Error('Invalid base karma configuration. Expected config function to be exported.'); - } - const originalSetConfig = config.set; - config.set = function(c) { conf = c; }; - baseConf(config); - config.set = originalSetConfig; - if (DEBUG) console.info(`Base karma configuration: ${JSON.stringify(conf, null, 2)}`); - } - - configureBazelConfig(config, conf); - configureFiles(conf); - configureTsWebTestSuiteConfig(conf); - configureTsWebTestConfig(conf); - configureFormatError(conf); - - if (DEBUG) console.info(`Karma configuration: ${JSON.stringify(conf, null, 2)}`); - - config.set(conf); - } -} catch (e) { - console.error('Error in karma configuration', e.toString()); - throw e; -}
diff --git a/internal/karma/karma.js b/internal/karma/karma.js deleted file mode 100644 index 2653ede..0000000 --- a/internal/karma/karma.js +++ /dev/null
@@ -1,3 +0,0 @@ -#!/usr/bin/env node - -require('karma/lib/cli').run();
diff --git a/internal/karma/karma_web_test.bzl b/internal/karma/karma_web_test.bzl deleted file mode 100644 index 2002fd2..0000000 --- a/internal/karma/karma_web_test.bzl +++ /dev/null
@@ -1,447 +0,0 @@ -# Copyright 2017 The Bazel Authors. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -"Unit testing with Karma" - -load("@build_bazel_rules_nodejs//internal/common:expand_into_runfiles.bzl", "expand_path_into_runfiles") -load("@build_bazel_rules_nodejs//internal/common:sources_aspect.bzl", "sources_aspect") -load("@build_bazel_rules_nodejs//internal/js_library:js_library.bzl", "write_amd_names_shim") -load("@io_bazel_rules_webtesting//web/internal:constants.bzl", "DEFAULT_WRAPPED_TEST_TAGS") -load("@io_bazel_rules_webtesting//web:web.bzl", "web_test_suite") -load(":web_test.bzl", "COMMON_WEB_TEST_ATTRS") - -_CONF_TMPL = "//:karma.conf.js" -_DEFAULT_KARMA_BIN = "@npm//@bazel/karma/bin:karma" - -# Attributes for karma_web_test that are shared with ts_web_test which -# uses Karma under the hood -KARMA_GENERIC_WEB_TEST_ATTRS = dict(COMMON_WEB_TEST_ATTRS, **{ - "bootstrap": attr.label_list( - doc = """JavaScript files to include *before* the module loader (require.js). - For example, you can include Reflect,js for TypeScript decorator metadata reflection, - or UMD bundles for third-party libraries.""", - allow_files = [".js"], - ), - "karma": attr.label( - doc = "karma binary label", - default = Label(_DEFAULT_KARMA_BIN), - executable = True, - cfg = "target", - allow_files = True, - ), - "static_files": attr.label_list( - doc = """Arbitrary files which are available to be served on request. - Files are served at: - `/base/<WORKSPACE_NAME>/<path-to-file>`, e.g. - `/base/npm_bazel_typescript/examples/testing/static_script.js`""", - allow_files = True, - ), - "runtime_deps": attr.label_list( - doc = """Dependencies which should be loaded after the module loader but before the srcs and deps. - These should be a list of targets which produce JavaScript such as `ts_library`. - The files will be loaded in the same order they are declared by that rule.""", - allow_files = True, - aspects = [sources_aspect], - ), - "_conf_tmpl": attr.label( - default = Label(_CONF_TMPL), - allow_single_file = True, - ), -}) - -# Attributes for karma_web_test that are specific to karma_web_test -KARMA_WEB_TEST_ATTRS = dict(KARMA_GENERIC_WEB_TEST_ATTRS, **{ - "config_file": attr.label( - doc = """User supplied Karma configuration file. Bazel will override - certain attributes of this configuration file. Attributes that are - overridden will be outputted to the test log.""", - allow_single_file = True, - aspects = [sources_aspect], - ), -}) - -# Helper function to convert a short path to a path that is -# found in the MANIFEST file. -def _short_path_to_manifest_path(ctx, short_path): - if short_path.startswith("../"): - return short_path[3:] - else: - return ctx.workspace_name + "/" + short_path - -# Write the AMD names shim bootstrap file -def _write_amd_names_shim(ctx): - amd_names_shim = ctx.actions.declare_file( - "_%s.amd_names_shim.js" % ctx.label.name, - sibling = ctx.outputs.executable, - ) - write_amd_names_shim(ctx.actions, amd_names_shim, ctx.attr.bootstrap) - return amd_names_shim - -# Generates the karma configuration file for the rule -def _write_karma_config(ctx, files, amd_names_shim): - configuration = ctx.actions.declare_file( - "%s.conf.js" % ctx.label.name, - sibling = ctx.outputs.executable, - ) - - config_file = "" - if hasattr(ctx.file, "config_file"): - config_file = ctx.file.config_file - if hasattr(ctx.attr.config_file, "typescript"): - config_file = ctx.attr.config_file.typescript.es5_sources.to_list()[0] - - # The files in the bootstrap attribute come before the require.js support. - # Note that due to frameworks = ['jasmine'], a few scripts will come before - # the bootstrap entries: - # jasmine-core/lib/jasmine-core/jasmine.js - # karma-jasmine/lib/boot.js - # karma-jasmine/lib/adapter.js - # This is desired so that the bootstrap entries can patch jasmine, as zone.js does. - bootstrap_entries = [ - expand_path_into_runfiles(ctx, f.short_path) - for f in ctx.files.bootstrap - ] - - # Explicitly list the requirejs library files here, rather than use - # `frameworks: ['requirejs']` - # so that we control the script order, and the bootstrap files come before - # require.js. - # That allows bootstrap files to have anonymous AMD modules, or to do some - # polyfilling before test libraries load. - # See https://github.com/karma-runner/karma/issues/699 - # `NODE_MODULES/` is a prefix recogized by karma.conf.js to allow - # for a priority require of nested `@bazel/typescript/node_modules` before - # looking in root node_modules. - bootstrap_entries += [ - "NODE_MODULES/requirejs/require.js", - "NODE_MODULES/karma-requirejs/lib/adapter.js", - "/".join([ctx.workspace_name, amd_names_shim.short_path]), - ] - - # Next we load the "runtime_deps" which we expect to contain named AMD modules - # Thus they should come after the require.js script, but before any srcs or deps - runtime_files = [] - for d in ctx.attr.runtime_deps: - if not hasattr(d, "typescript"): - # Workaround https://github.com/bazelbuild/rules_nodejs/issues/57 - # We should allow any JS source as long as it yields something that - # can be loaded by require.js - fail("labels in runtime_deps must be created by ts_library") - for src in d.typescript.es5_sources.to_list(): - runtime_files.append(expand_path_into_runfiles(ctx, src.short_path)) - - # Finally we load the user's srcs and deps - user_entries = [ - expand_path_into_runfiles(ctx, f.short_path) - for f in files.to_list() - ] - - # Expand static_files paths to runfiles for config - static_files = [ - expand_path_into_runfiles(ctx, f.short_path) - for f in ctx.files.static_files - ] - - # root-relative (runfiles) path to the directory containing karma.conf - config_segments = len(configuration.short_path.split("/")) - - # configuration_env_vars are set using process.env() - env_vars = "" - for k in ctx.attr.configuration_env_vars: - if k in ctx.var.keys(): - env_vars += "process.env[\"%s\"]=\"%s\";\n" % (k, ctx.var[k]) - - ctx.actions.expand_template( - output = configuration, - template = ctx.file._conf_tmpl, - substitutions = { - "TMPL_bootstrap_files": "\n".join([" '%s'," % e for e in bootstrap_entries]), - "TMPL_config_file": expand_path_into_runfiles(ctx, config_file.short_path) if config_file else "", - "TMPL_env_vars": env_vars, - "TMPL_runfiles_path": "/".join([".."] * config_segments), - "TMPL_runtime_files": "\n".join([" '%s'," % e for e in runtime_files]), - "TMPL_static_files": "\n".join([" '%s'," % e for e in static_files]), - "TMPL_user_files": "\n".join([" '%s'," % e for e in user_entries]), - }, - ) - - return configuration - -def run_karma_web_test(ctx): - """Creates an action that can run karma. - - This is also used by ts_web_test_rule. - - Args: - ctx: Bazel rule execution context - - Returns: - The runfiles for the generated action. - """ - files = depset(ctx.files.srcs) - for d in ctx.attr.deps + ctx.attr.runtime_deps: - if hasattr(d, "node_sources"): - files = depset(transitive = [files, d.node_sources]) - elif hasattr(d, "files"): - files = depset(transitive = [files, d.files]) - - amd_names_shim = _write_amd_names_shim(ctx) - - configuration = _write_karma_config(ctx, files, amd_names_shim) - - ctx.actions.write( - output = ctx.outputs.executable, - is_executable = True, - content = """#!/usr/bin/env bash -# Immediately exit if any command fails. -set -e - -if [ -e "$RUNFILES_MANIFEST_FILE" ]; then - while read line; do - declare -a PARTS=($line) - if [ "${{PARTS[0]}}" == "{TMPL_karma}" ]; then - readonly KARMA=${{PARTS[1]}} - elif [ "${{PARTS[0]}}" == "{TMPL_conf}" ]; then - readonly CONF=${{PARTS[1]}} - fi - done < $RUNFILES_MANIFEST_FILE -else - readonly KARMA=../{TMPL_karma} - readonly CONF=../{TMPL_conf} -fi - -export HOME=$(mktemp -d) - -# Print the karma version in the test log -echo $($KARMA --version) - -ARGV=( "start" $CONF ) - -# Detect that we are running as a test, by using well-known environment -# variables. See go/test-encyclopedia -# Note: in Bazel 0.14 and later, TEST_TMPDIR is set for both bazel test and bazel run -# so we also check for the BUILD_WORKSPACE_DIRECTORY which is set only for bazel run -if [[ ! -z "${{TEST_TMPDIR}}" && ! -n "${{BUILD_WORKSPACE_DIRECTORY}}" ]]; then - ARGV+=( "--single-run" ) -fi - -$KARMA ${{ARGV[@]}} -""".format( - TMPL_workspace = ctx.workspace_name, - TMPL_karma = _short_path_to_manifest_path(ctx, ctx.executable.karma.short_path), - TMPL_conf = _short_path_to_manifest_path(ctx, configuration.short_path), - ), - ) - - config_sources = [] - if hasattr(ctx.file, "config_file"): - if ctx.file.config_file: - config_sources = [ctx.file.config_file] - if hasattr(ctx.attr.config_file, "node_sources"): - config_sources = ctx.attr.config_file.node_sources.to_list() - - runfiles = [ - configuration, - amd_names_shim, - ] - runfiles += config_sources - runfiles += ctx.files.srcs - runfiles += ctx.files.deps - runfiles += ctx.files.runtime_deps - runfiles += ctx.files.bootstrap - runfiles += ctx.files.static_files - runfiles += ctx.files.data - - return ctx.runfiles( - files = runfiles, - transitive_files = files, - ).merge(ctx.attr.karma[DefaultInfo].data_runfiles) - -def _karma_web_test_impl(ctx): - runfiles = run_karma_web_test(ctx) - - return [DefaultInfo( - files = depset([ctx.outputs.executable]), - runfiles = runfiles, - executable = ctx.outputs.executable, - )] - -_karma_web_test = rule( - implementation = _karma_web_test_impl, - test = True, - executable = True, - attrs = KARMA_WEB_TEST_ATTRS, -) - -def karma_web_test( - srcs = [], - deps = [], - data = [], - configuration_env_vars = [], - bootstrap = [], - runtime_deps = [], - static_files = [], - config_file = None, - tags = [], - **kwargs): - """Runs unit tests in a browser with Karma. - - When executed under `bazel test`, this uses a headless browser for speed. - This is also because `bazel test` allows multiple targets to be tested together, - and we don't want to open a Chrome window on your machine for each one. Also, - under `bazel test` the test will execute and immediately terminate. - - Running under `ibazel test` gives you a "watch mode" for your tests. The rule is - optimized for this case - the test runner server will stay running and just - re-serve the up-to-date JavaScript source bundle. - - To debug a single test target, run it with `bazel run` instead. This will open a - browser window on your computer. Also you can use any other browser by opening - the URL printed when the test starts up. The test will remain running until you - cancel the `bazel run` command. - - This rule will use your system Chrome by default. In the default case, your - environment must specify CHROME_BIN so that the rule will know which Chrome binary to run. - Other `browsers` and `customLaunchers` may be set using the a base Karma configuration - specified in the `config_file` attribute. - - Args: - srcs: A list of JavaScript test files - deps: Other targets which produce JavaScript such as `ts_library` - data: Runtime dependencies - configuration_env_vars: Pass these configuration environment variables to the resulting binary. - Chooses a subset of the configuration environment variables (taken from ctx.var), which also - includes anything specified via the --define flag. - Note, this can lead to different outputs produced by this rule. - bootstrap: JavaScript files to include *before* the module loader (require.js). - For example, you can include Reflect,js for TypeScript decorator metadata reflection, - or UMD bundles for third-party libraries. - runtime_deps: Dependencies which should be loaded after the module loader but before the srcs and deps. - These should be a list of targets which produce JavaScript such as `ts_library`. - The files will be loaded in the same order they are declared by that rule. - static_files: Arbitrary files which are available to be served on request. - Files are served at: - `/base/<WORKSPACE_NAME>/<path-to-file>`, e.g. - `/base/npm_bazel_typescript/examples/testing/static_script.js` - config_file: User supplied Karma configuration file. Bazel will override - certain attributes of this configuration file. Attributes that are - overridden will be outputted to the test log. - tags: Standard Bazel tags, this macro adds tags for ibazel support - **kwargs: Passed through to `karma_web_test` - """ - - _karma_web_test( - srcs = srcs, - deps = deps, - data = data, - configuration_env_vars = configuration_env_vars, - bootstrap = bootstrap, - runtime_deps = runtime_deps, - static_files = static_files, - config_file = config_file, - tags = tags + [ - # Users don't need to know that this tag is required to run under ibazel - "ibazel_notify_changes", - ], - **kwargs - ) - -def karma_web_test_suite( - name, - browsers = ["@io_bazel_rules_webtesting//browsers:chromium-local"], - args = None, - browser_overrides = None, - config = None, - flaky = None, - local = None, - shard_count = None, - size = None, - tags = [], - test_suite_tags = None, - timeout = None, - visibility = None, - web_test_data = [], - wrapped_test_tags = None, - **remaining_keyword_args): - """Defines a test_suite of web_test targets that wrap a karma_web_test target. - - This macro also accepts all parameters in karma_web_test. See karma_web_test docs - for details. - - Args: - name: The base name of the test - browsers: A sequence of labels specifying the browsers to use. - args: Args for web_test targets generated by this extension. - browser_overrides: Dictionary; optional; default is an empty dictionary. A - dictionary mapping from browser names to browser-specific web_test - attributes, such as shard_count, flakiness, timeout, etc. For example: - {'//browsers:chrome-native': {'shard_count': 3, 'flaky': 1} - '//browsers:firefox-native': {'shard_count': 1, 'timeout': 100}}. - config: Label; optional; Configuration of web test features. - flaky: A boolean specifying that the test is flaky. If set, the test will - be retried up to 3 times (default: 0) - local: boolean; optional. - shard_count: The number of test shards to use per browser. (default: 1) - size: A string specifying the test size. (default: 'large') - tags: A list of test tag strings to apply to each generated web_test target. - This macro adds a couple for ibazel. - test_suite_tags: A list of tag strings for the generated test_suite. - timeout: A string specifying the test timeout (default: computed from size) - visibility: List of labels; optional. - web_test_data: Data dependencies for the web_test. - wrapped_test_tags: A list of test tag strings to use for the wrapped test - **remaining_keyword_args: Arguments for the wrapped test target. - """ - - # Check explicitly for None so that users can set this to the empty list - if wrapped_test_tags == None: - wrapped_test_tags = DEFAULT_WRAPPED_TEST_TAGS - - size = size or "large" - - wrapped_test_name = name + "_wrapped_test" - - _karma_web_test( - name = wrapped_test_name, - args = args, - flaky = flaky, - local = local, - shard_count = shard_count, - size = size, - tags = wrapped_test_tags, - timeout = timeout, - visibility = ["//visibility:private"], - **remaining_keyword_args - ) - - web_test_suite( - name = name, - launcher = ":" + wrapped_test_name, - args = args, - browsers = browsers, - browser_overrides = browser_overrides, - config = config, - data = web_test_data, - flaky = flaky, - local = local, - shard_count = shard_count, - size = size, - tags = tags + [ - # Users don't need to know that this tag is required to run under ibazel - "ibazel_notify_changes", - ], - test = wrapped_test_name, - test_suite_tags = test_suite_tags, - timeout = timeout, - visibility = visibility, - )
diff --git a/internal/karma/package.bzl b/internal/karma/package.bzl deleted file mode 100644 index ed31fee..0000000 --- a/internal/karma/package.bzl +++ /dev/null
@@ -1,46 +0,0 @@ -# Copyright 2018 The Bazel Authors. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -"""Package file which defines npm_bazel_karma dependencies -""" - -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") - -def rules_karma_dependencies(): - """ - Fetch our transitive dependencies. - - If the user wants to get a different version of these, they can just fetch it - from their WORKSPACE before calling this function, or not call this function at all. - """ - - # TypeScript compiler runs on node.js runtime - _maybe( - http_archive, - name = "build_bazel_rules_nodejs", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/0.18.5/rules_nodejs-0.18.5.tar.gz"], - sha256 = "c8cd6a77433f7d3bb1f4ac87f15822aa102989f8e9eb1907ca0cad718573985b", - ) - - # ts_web_test depends on the web testing rules to provision browsers. - _maybe( - http_archive, - name = "io_bazel_rules_webtesting", - urls = ["https://github.com/bazelbuild/rules_webtesting/releases/download/0.3.0/rules_webtesting.tar.gz"], - sha256 = "1c0900547bdbe33d22aa258637dc560ce6042230e41e9ea9dad5d7d2fca8bc42", - ) - -def _maybe(repo_rule, name, **kwargs): - if name not in native.existing_rules(): - repo_rule(name = name, **kwargs)
diff --git a/internal/karma/package.json b/internal/karma/package.json deleted file mode 100644 index 5f71978..0000000 --- a/internal/karma/package.json +++ /dev/null
@@ -1,47 +0,0 @@ -{ - "name": "@bazel/karma", - "description": "Karma rules for Bazel", - "homepage": "https://github.com/bazelbuild/rules_typescript", - "license": "Apache-2.0", - "version": "0.0.0-PLACEHOLDER", - "keywords": [ - "karma", - "bazel" - ], - "main": "./index.js", - "typings": "./index.d.ts", - "bin": { - "karma": "./karma.js" - }, - "dependencies": { - "jasmine-core": "2.8.0", - "karma": "^4.0.0", - "karma-chrome-launcher": "2.2.0", - "karma-firefox-launcher": "1.1.0", - "karma-jasmine": "1.1.1", - "karma-requirejs": "1.1.0", - "karma-sauce-launcher": "2.0.2", - "karma-sourcemap-loader": "0.3.7", - "requirejs": "2.3.5", - "semver": "5.6.0", - "tmp": "0.0.33" - }, - "devDependencies": { - "@bazel/bazel": "~0.22.0", - "@types/node": "7.0.18", - "protobufjs": "5.0.3", - "semver": "5.6.0", - "source-map-support": "0.5.9", - "tsickle": "0.33.1", - "tsutils": "2.27.2", - "typescript": "~3.1.6", - "jasmine-core": "2.8.0" - }, - "bazelWorkspaces": { - "npm_bazel_karma": { - "version": "0.0.0-PLACEHOLDER", - "compatVersion": "0.0.0-COMPAT_VERSION", - "rootPath": "." - } - } -}
diff --git a/internal/karma/ts_web_test.bzl b/internal/karma/ts_web_test.bzl deleted file mode 100644 index ab5329b..0000000 --- a/internal/karma/ts_web_test.bzl +++ /dev/null
@@ -1,201 +0,0 @@ -# Copyright 2017 The Bazel Authors. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -"Unit testing in a browser" - -load("@io_bazel_rules_webtesting//web/internal:constants.bzl", "DEFAULT_WRAPPED_TEST_TAGS") -load("@io_bazel_rules_webtesting//web:web.bzl", "web_test_suite") -load(":karma_web_test.bzl", "KARMA_GENERIC_WEB_TEST_ATTRS", "run_karma_web_test") - -# Using generic karma_web_test attributes under the hood -TS_WEB_TEST_ATTRS = dict(KARMA_GENERIC_WEB_TEST_ATTRS, **{}) - -def _ts_web_test_impl(ctx): - # Using karma_web_test under the hood - runfiles = run_karma_web_test(ctx) - - return [DefaultInfo( - files = depset([ctx.outputs.executable]), - runfiles = runfiles, - executable = ctx.outputs.executable, - )] - -_ts_web_test = rule( - implementation = _ts_web_test_impl, - test = True, - executable = True, - attrs = TS_WEB_TEST_ATTRS, -) - -def ts_web_test( - srcs = [], - deps = [], - data = [], - configuration_env_vars = [], - bootstrap = [], - runtime_deps = [], - static_files = [], - tags = [], - **kwargs): - """Runs unit tests in a browser. - - When executed under `bazel test`, this uses a headless browser for speed. - This is also because `bazel test` allows multiple targets to be tested together, - and we don't want to open a Chrome window on your machine for each one. Also, - under `bazel test` the test will execute and immediately terminate. - - Running under `ibazel test` gives you a "watch mode" for your tests. The rule is - optimized for this case - the test runner server will stay running and just - re-serve the up-to-date JavaScript source bundle. - - To debug a single test target, run it with `bazel run` instead. This will open a - browser window on your computer. Also you can use any other browser by opening - the URL printed when the test starts up. The test will remain running until you - cancel the `bazel run` command. - - This rule will use your system Chrome. Your environment must specify CHROME_BIN - so that the rule will know which Chrome binary to run. - - Currently this rule uses Karma as the test runner under the hood, but this is - an implementation detail. We might switch to another runner like Jest in the future. - - Args: - srcs: A list of JavaScript test files - deps: Other targets which produce JavaScript such as `ts_library` - data: Runtime dependencies - configuration_env_vars: Pass these configuration environment variables to the resulting binary. - Chooses a subset of the configuration environment variables (taken from ctx.var), which also - includes anything specified via the --define flag. - Note, this can lead to different outputs produced by this rule. - bootstrap: JavaScript files to include *before* the module loader (require.js). - For example, you can include Reflect,js for TypeScript decorator metadata reflection, - or UMD bundles for third-party libraries. - runtime_deps: Dependencies which should be loaded after the module loader but before the srcs and deps. - These should be a list of targets which produce JavaScript such as `ts_library`. - The files will be loaded in the same order they are declared by that rule. - static_files: Arbitrary files which are available to be served on request. - Files are served at: - `/base/<WORKSPACE_NAME>/<path-to-file>`, e.g. - `/base/npm_bazel_typescript/examples/testing/static_script.js` - tags: Standard Bazel tags, this macro adds tags for ibazel support as well as - `browser:chromium-system` to allow for filtering on systems with no - system Chrome. - **kwargs: Passed through to `ts_web_test` - """ - - _ts_web_test( - srcs = srcs, - deps = deps, - data = data, - configuration_env_vars = configuration_env_vars, - bootstrap = bootstrap, - runtime_deps = runtime_deps, - static_files = static_files, - tags = tags + [ - # Users don't need to know that this tag is required to run under ibazel - "ibazel_notify_changes", - # Always attach this label to allow filtering, eg. envs w/ no browser - "browser:chromium-system", - ], - **kwargs - ) - -def ts_web_test_suite( - name, - browsers = ["@io_bazel_rules_webtesting//browsers:chromium-local"], - args = None, - browser_overrides = None, - config = None, - flaky = None, - local = None, - shard_count = None, - size = None, - tags = [], - test_suite_tags = None, - timeout = None, - visibility = None, - web_test_data = [], - wrapped_test_tags = None, - **remaining_keyword_args): - """Defines a test_suite of web_test targets that wrap a ts_web_test target. - - This macro also accepts all parameters in ts_web_test. See ts_web_test docs for - details. - - Args: - name: The base name of the test. - browsers: A sequence of labels specifying the browsers to use. - args: Args for web_test targets generated by this extension. - browser_overrides: Dictionary; optional; default is an empty dictionary. A - dictionary mapping from browser names to browser-specific web_test - attributes, such as shard_count, flakiness, timeout, etc. For example: - {'//browsers:chrome-native': {'shard_count': 3, 'flaky': 1} - '//browsers:firefox-native': {'shard_count': 1, 'timeout': 100}}. - config: Label; optional; Configuration of web test features. - flaky: A boolean specifying that the test is flaky. If set, the test will - be retried up to 3 times (default: 0) - local: boolean; optional. - shard_count: The number of test shards to use per browser. (default: 1) - size: A string specifying the test size. (default: 'large') - tags: A list of test tag strings to apply to each generated web_test_suite target. - This macro adds a couple for ibazel. - test_suite_tags: A list of tag strings for the generated test_suite. - timeout: A string specifying the test timeout (default: computed from size) - visibility: List of labels; optional. - web_test_data: Data dependencies for the web_test_suite. - wrapped_test_tags: A list of test tag strings to use for the wrapped test - **remaining_keyword_args: Arguments for the wrapped test target. - """ - - # Check explicitly for None so that users can set this to the empty list - if wrapped_test_tags == None: - wrapped_test_tags = DEFAULT_WRAPPED_TEST_TAGS - - size = size or "large" - - wrapped_test_name = name + "_wrapped_test" - - _ts_web_test( - name = wrapped_test_name, - args = args, - flaky = flaky, - local = local, - shard_count = shard_count, - size = size, - tags = wrapped_test_tags, - timeout = timeout, - visibility = ["//visibility:private"], - **remaining_keyword_args - ) - - web_test_suite( - name = name, - launcher = ":" + wrapped_test_name, - args = args, - browsers = browsers, - browser_overrides = browser_overrides, - config = config, - data = web_test_data, - flaky = flaky, - local = local, - shard_count = shard_count, - size = size, - tags = tags + [ - # Users don't need to know that this tag is required to run under ibazel - "ibazel_notify_changes", - ], - test = wrapped_test_name, - test_suite_tags = test_suite_tags, - timeout = timeout, - visibility = visibility, - )
diff --git a/internal/karma/tsconfig.json b/internal/karma/tsconfig.json deleted file mode 100644 index bce2c5c..0000000 --- a/internal/karma/tsconfig.json +++ /dev/null
@@ -1,9 +0,0 @@ -{ - "compilerOptions": { - // Explicitly set types settings so typescript doesn't auto-discover types. - // If all types are discovered then all types need to be included as deps - // or typescript may error out with TS2688: Cannot find type definition file for 'foo'. - "types": ["node"] - } -} -
diff --git a/internal/karma/web_test.bzl b/internal/karma/web_test.bzl deleted file mode 100644 index 7ebb58b..0000000 --- a/internal/karma/web_test.bzl +++ /dev/null
@@ -1,40 +0,0 @@ -# Copyright 2017 The Bazel Authors. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -"Common web_test attributes" - -load("@build_bazel_rules_nodejs//internal/common:sources_aspect.bzl", "sources_aspect") - -# Attributes shared by any web_test rule (ts_web_test, karma_web_test, protractor_web_test) -COMMON_WEB_TEST_ATTRS = { - "srcs": attr.label_list( - doc = "A list of JavaScript test files", - allow_files = [".js"], - ), - "configuration_env_vars": attr.string_list( - doc = """Pass these configuration environment variables to the resulting binary. - Chooses a subset of the configuration environment variables (taken from ctx.var), which also - includes anything specified via the --define flag. - Note, this can lead to different outputs produced by this rule.""", - default = [], - ), - "data": attr.label_list( - doc = "Runtime dependencies", - allow_files = True, - ), - "deps": attr.label_list( - doc = "Other targets which produce JavaScript such as `ts_library`", - allow_files = True, - aspects = [sources_aspect], - ), -}
diff --git a/internal/karma/yarn.lock b/internal/karma/yarn.lock deleted file mode 100644 index 1d21df6..0000000 --- a/internal/karma/yarn.lock +++ /dev/null
@@ -1,2320 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@bazel/bazel-darwin_x64@0.22.0": - version "0.22.0" - resolved "https://registry.yarnpkg.com/@bazel/bazel-darwin_x64/-/bazel-darwin_x64-0.22.0.tgz#a2bea5922dba9a32554a218ba4849a200115b248" - integrity sha512-LFxkyQgPATeB64z/1IvOWZhK+lc3JVHejbmdo96qB4lsoD8zselvOlgHvVXxlAjRxVZ9mlmXDvDRDyaXyyRdwA== - -"@bazel/bazel-linux_x64@0.22.0": - version "0.22.0" - resolved "https://registry.yarnpkg.com/@bazel/bazel-linux_x64/-/bazel-linux_x64-0.22.0.tgz#12e5884f2a7b7f3b62afbef9f8da4de0976f3bc8" - integrity sha512-xDs8cb2bbGZ9uvzYZOzCVrMBywzRhLj0J/t+py+FYZj+VO5B3wVg9eUf6nWWR0oJ2mzvToI9h31t2tNdqwy2kQ== - -"@bazel/bazel-win32_x64@0.22.0": - version "0.22.0" - resolved "https://registry.yarnpkg.com/@bazel/bazel-win32_x64/-/bazel-win32_x64-0.22.0.tgz#a8a65986639583a8cc7b018e001aedfdafe41b50" - integrity sha512-FbJaXVDoCLnpIFLnPHFkQdfriYPXfnfQNuf9EXMliERdRuoeBVbwEZfwcuArxZWNFus7bD8QiTj0XzKVWO+Wbw== - -"@bazel/bazel@~0.22.0": - version "0.22.0" - resolved "https://registry.yarnpkg.com/@bazel/bazel/-/bazel-0.22.0.tgz#feb0f2d82f9d169cb47951d95d55e512eda72bc9" - integrity sha512-uaXZsfCXOASBXzmge56akRIhJnKYdShn1X3AdEBzq2NNCf2llkc1H25gKGm4BfuWDBXRbXDMmcXup+fw39h+WQ== - optionalDependencies: - "@bazel/bazel-darwin_x64" "0.22.0" - "@bazel/bazel-linux_x64" "0.22.0" - "@bazel/bazel-win32_x64" "0.22.0" - -"@types/node@7.0.18": - version "7.0.18" - resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.18.tgz#cd67f27d3dc0cfb746f0bdd5e086c4c5d55be173" - integrity sha1-zWfyfT3Az7dG8L3V4IbExdVb4XM= - -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - -accepts@~1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" - integrity sha1-63d99gEXI6OxTopywIBcjoZ0a9I= - dependencies: - mime-types "~2.1.18" - negotiator "0.6.1" - -adm-zip@~0.4.3: - version "0.4.13" - resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.13.tgz#597e2f8cc3672151e1307d3e95cddbc75672314a" - integrity sha512-fERNJX8sOXfel6qCBCMPvZLzENBEhZTzKqg6vrOW5pvoEaQuJhRU4ndTAh6lHOxn1I6jnz2NHra56ZODM751uw== - -after@0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" - integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= - -agent-base@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" - integrity sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg== - dependencies: - es6-promisify "^5.0.0" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -aproba@^1.0.3: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - -are-we-there-yet@~1.1.2: - version "1.1.5" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" - integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - -array-slice@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" - integrity sha1-3Tz7gO15c6dRF82sabC5nshhhvU= - -array-unique@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" - integrity sha1-odl8yvy8JiXMcPrc6zalDFiwGlM= - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -arraybuffer.slice@~0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" - integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== - -ascli@~1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ascli/-/ascli-1.0.1.tgz#bcfa5974a62f18e81cabaeb49732ab4a88f906bc" - integrity sha1-vPpZdKYvGOgcq660lzKrSoj5Brw= - dependencies: - colour "~0.7.1" - optjs "~3.2.2" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -async-each@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" - integrity sha1-GdOGodntxufByF04iu28xW0zYC0= - -async-limiter@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" - integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg== - -async@^2.1.2: - version "2.6.1" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" - integrity sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ== - dependencies: - lodash "^4.17.10" - -atob@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -backo2@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" - integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= - -base64-arraybuffer@0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" - integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg= - -base64id@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" - integrity sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY= - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -better-assert@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" - integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI= - dependencies: - callsite "1.0.0" - -binary-extensions@^1.0.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.12.0.tgz#c2d780f53d45bba8317a8902d4ceeaf3a6385b14" - integrity sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg== - -blob@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" - integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== - -bluebird@^3.3.0: - version "3.5.3" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.3.tgz#7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7" - integrity sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw== - -body-parser@^1.16.1: - version "1.18.3" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.3.tgz#5b292198ffdd553b3a0f20ded0592b956955c8b4" - integrity sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ= - dependencies: - bytes "3.0.0" - content-type "~1.0.4" - debug "2.6.9" - depd "~1.1.2" - http-errors "~1.6.3" - iconv-lite "0.4.23" - on-finished "~2.3.0" - qs "6.5.2" - raw-body "2.3.3" - type-is "~1.6.16" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^0.1.2: - version "0.1.5" - resolved "https://registry.yarnpkg.com/braces/-/braces-0.1.5.tgz#c085711085291d8b75fdd74eab0f8597280711e6" - integrity sha1-wIVxEIUpHYt1/ddOqw+FlygHEeY= - dependencies: - expand-range "^0.1.0" - -braces@^2.3.0, braces@^2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -buffer-alloc-unsafe@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" - integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== - -buffer-alloc@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" - integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== - dependencies: - buffer-alloc-unsafe "^1.1.0" - buffer-fill "^1.0.0" - -buffer-fill@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" - integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -bytebuffer@~5: - version "5.0.1" - resolved "https://registry.yarnpkg.com/bytebuffer/-/bytebuffer-5.0.1.tgz#582eea4b1a873b6d020a48d58df85f0bba6cfddd" - integrity sha1-WC7qSxqHO20CCkjVjfhfC7ps/d0= - dependencies: - long "~3" - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -callsite@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" - integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA= - -camelcase@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" - integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= - -chokidar@^2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26" - integrity sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.0" - braces "^2.3.0" - glob-parent "^3.1.0" - inherits "^2.0.1" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - lodash.debounce "^4.0.8" - normalize-path "^2.1.1" - path-is-absolute "^1.0.0" - readdirp "^2.0.0" - upath "^1.0.5" - optionalDependencies: - fsevents "^1.2.2" - -chownr@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" - integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g== - -circular-json@^0.5.5: - version "0.5.9" - resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.5.9.tgz#932763ae88f4f7dead7a0d09c8a51a4743a53b1d" - integrity sha512-4ivwqHpIFJZBuhN3g/pEcdbnGUywkBblloGbkglyloVjjR3uT6tieI89MVOfbP2tHX5sgb01FuLgAOzebNlJNQ== - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -cliui@^3.0.3: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" - integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi "^2.0.0" - -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" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -colors@^1.1.0: - version "1.3.3" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.3.3.tgz#39e005d546afe01e01f9c4ca8fa50f686a01205d" - integrity sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg== - -colour@~0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/colour/-/colour-0.7.1.tgz#9cb169917ec5d12c0736d3e8685746df1cadf778" - integrity sha1-nLFpkX7F0SwHNtPoaFdG3xyt93g= - -combine-lists@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/combine-lists/-/combine-lists-1.0.1.tgz#458c07e09e0d900fc28b70a3fec2dacd1d2cb7f6" - integrity sha1-RYwH4J4NkA/Ci3Cj/sLazR0st/Y= - dependencies: - lodash "^4.5.0" - -component-bind@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" - integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E= - -component-emitter@1.2.1, component-emitter@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" - integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= - -component-inherit@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" - integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -connect@^3.6.0: - version "3.6.6" - resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.6.tgz#09eff6c55af7236e137135a72574858b6786f524" - integrity sha1-Ce/2xVr3I24TcTWnJXSFi2eG9SQ= - dependencies: - debug "2.6.9" - finalhandler "1.1.0" - parseurl "~1.3.2" - utils-merge "1.0.1" - -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" - integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -cookie@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" - integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -core-js@^2.2.0: - version "2.6.3" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.3.tgz#4b70938bdffdaf64931e66e2db158f0892289c49" - integrity sha512-l00tmFFZOBHtYhN4Cz7k32VM7vTn3rE2ANjQDxdEN6zmXZ/xq1jQuutnmHvMG1ZJ7xd72+TA5YpUK8wz3rWsfQ== - -core-js@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.3.0.tgz#fab83fbb0b2d8dc85fa636c4b9d34c75420c6d65" - integrity sha1-+rg/uwstjchfpjbEudNMdUIMbWU= - -core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -custom-event@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" - integrity sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU= - -date-format@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/date-format/-/date-format-1.2.0.tgz#615e828e233dd1ab9bb9ae0950e0ceccfa6ecad8" - integrity sha1-YV6CjiM90aubua4JUODOzPpuytg= - -debug@2.6.9, debug@^2.1.2, debug@^2.2.0, debug@^2.3.3: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@=3.1.0, debug@~3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== - dependencies: - ms "2.0.0" - -debug@^3.1.0: - version "3.2.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== - dependencies: - ms "^2.1.1" - -decamelize@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - -detect-libc@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= - -di@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" - integrity sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw= - -dom-serialize@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" - integrity sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs= - dependencies: - custom-event "~1.0.0" - ent "~2.2.0" - extend "^3.0.0" - void-elements "^2.0.0" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -encodeurl@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -engine.io-client@~3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.2.1.tgz#6f54c0475de487158a1a7c77d10178708b6add36" - integrity sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw== - dependencies: - component-emitter "1.2.1" - component-inherit "0.0.3" - debug "~3.1.0" - engine.io-parser "~2.1.1" - has-cors "1.1.0" - indexof "0.0.1" - parseqs "0.0.5" - parseuri "0.0.5" - ws "~3.3.1" - xmlhttprequest-ssl "~1.5.4" - yeast "0.1.2" - -engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.3.tgz#757ab970fbf2dfb32c7b74b033216d5739ef79a6" - integrity sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA== - dependencies: - after "0.8.2" - arraybuffer.slice "~0.0.7" - base64-arraybuffer "0.1.5" - blob "0.0.5" - has-binary2 "~1.0.2" - -engine.io@~3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.2.1.tgz#b60281c35484a70ee0351ea0ebff83ec8c9522a2" - integrity sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w== - dependencies: - accepts "~1.3.4" - base64id "1.0.0" - cookie "0.3.1" - debug "~3.1.0" - engine.io-parser "~2.1.0" - ws "~3.3.1" - -ent@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" - integrity sha1-6WQhkyWiHQX0RGai9obtbOX13R0= - -es6-promise@^4.0.3: - version "4.2.5" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.5.tgz#da6d0d5692efb461e082c14817fe2427d8f5d054" - integrity sha512-n6wvpdE43VFtJq+lUDYDBFUwV8TZbuGXLV4D6wKafg13ldznKsyEvatubnmUe31zcvelSzOHF+XbaT+Bl9ObDg== - -es6-promise@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.0.2.tgz#010d5858423a5f118979665f46486a95c6ee2bb6" - integrity sha1-AQ1YWEI6XxGJeWZfRkhqlcbuK7Y= - -es6-promisify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" - integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= - dependencies: - es6-promise "^4.0.3" - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - -eventemitter3@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.0.tgz#090b4d6cdbd645ed10bf750d4b5407942d7ba163" - integrity sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA== - -expand-braces@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/expand-braces/-/expand-braces-0.1.2.tgz#488b1d1d2451cb3d3a6b192cfc030f44c5855fea" - integrity sha1-SIsdHSRRyz06axks/AMPRMWFX+o= - dependencies: - array-slice "^0.2.3" - array-unique "^0.2.1" - braces "^0.1.2" - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -expand-range@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-0.1.1.tgz#4cb8eda0993ca56fa4f41fc42f3cbb4ccadff044" - integrity sha1-TLjtoJk8pW+k9B/ELzy7TMrf8EQ= - dependencies: - is-number "^0.1.1" - repeat-string "^0.2.2" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -finalhandler@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5" - integrity sha1-zgtoVbRYU+eRsvzGgARtiCU91/U= - dependencies: - debug "2.6.9" - encodeurl "~1.0.1" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.2" - statuses "~1.3.1" - unpipe "~1.0.0" - -flatted@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.0.tgz#55122b6536ea496b4b44893ee2608141d10d9916" - integrity sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg== - -follow-redirects@^1.0.0: - version "1.6.1" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.6.1.tgz#514973c44b5757368bad8bddfe52f81f015c94cb" - integrity sha512-t2JCjbzxQpWvbhts3l6SH1DKzSrx8a+SsaVf4h6bG4kOXUuPYS/kg2Lr4gQSb7eemaHqJkOThF1BGyjlUkO1GQ== - dependencies: - debug "=3.1.0" - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - -fs-access@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fs-access/-/fs-access-1.0.1.tgz#d6a87f262271cefebec30c553407fb995da8777a" - integrity sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o= - dependencies: - null-check "^1.0.0" - -fs-minipass@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" - integrity sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ== - dependencies: - minipass "^2.2.1" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@^1.2.2: - version "1.2.7" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.7.tgz#4851b664a3783e52003b3c66eb0eee1074933aa4" - integrity sha512-Pxm6sI2MeBD7RdD12RYsqaP0nMiwx8eZBXCa6z2L+mRHm2DYrOYwihmhjpkdjUHwQhslWQjRpEgNq4XvBmaAuw== - dependencies: - nan "^2.9.2" - node-pre-gyp "^0.10.0" - -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob@^7.0.5, glob@^7.1.1, glob@^7.1.3: - version "7.1.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" - integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== - 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" - -graceful-fs@^4.1.11, graceful-fs@^4.1.2: - version "4.1.15" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" - integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== - -has-binary2@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" - integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== - dependencies: - isarray "2.0.1" - -has-cors@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" - integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= - -has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -http-errors@1.6.3, http-errors@~1.6.3: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -http-proxy@^1.13.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.17.0.tgz#7ad38494658f84605e2f6db4436df410f4e5be9a" - integrity sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g== - dependencies: - eventemitter3 "^3.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - -https-proxy-agent@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0" - integrity sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ== - dependencies: - agent-base "^4.1.0" - debug "^3.1.0" - -iconv-lite@0.4.23: - version "0.4.23" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63" - integrity sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -iconv-lite@^0.4.4: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -ignore-walk@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" - integrity sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ== - dependencies: - minimatch "^3.0.4" - -immediate@~3.0.5: - version "3.0.6" - resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" - integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps= - -indexof@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" - integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - -ini@~1.3.0: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== - -invert-kv@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" - integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -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" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - dependencies: - binary-extensions "^1.0.0" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" - integrity sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A= - dependencies: - is-extglob "^2.1.1" - -is-number@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-0.1.1.tgz#69a7af116963d47206ec9bd9b48a14216f1e3806" - integrity sha1-aaevEWlj1HIG7JvZtIoUIW8eOAY= - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - -is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -isarray@1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isarray@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" - integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= - -isbinaryfile@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.3.tgz#5d6def3edebf6e8ca8cae9c30183a804b5f8be80" - integrity sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw== - dependencies: - buffer-alloc "^1.2.0" - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -jasmine-core@2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.8.0.tgz#bcc979ae1f9fd05701e45e52e65d3a5d63f1a24e" - integrity sha1-vMl5rh+f0FcB5F5S5l06XWPxok4= - -jszip@^3.1.3: - version "3.1.5" - resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.1.5.tgz#e3c2a6c6d706ac6e603314036d43cd40beefdf37" - integrity sha512-5W8NUaFRFRqTOL7ZDDrx5qWHJyBXy6velVudIzQUSoqAAYqzSh2Z7/m0Rf1QbmQJccegD0r+YZxBjzqoBiEeJQ== - dependencies: - core-js "~2.3.0" - es6-promise "~3.0.2" - lie "~3.1.0" - pako "~1.0.2" - readable-stream "~2.0.6" - -karma-chrome-launcher@2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz#cf1b9d07136cc18fe239327d24654c3dbc368acf" - integrity sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w== - dependencies: - fs-access "^1.0.0" - which "^1.2.1" - -karma-firefox-launcher@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/karma-firefox-launcher/-/karma-firefox-launcher-1.1.0.tgz#2c47030452f04531eb7d13d4fc7669630bb93339" - integrity sha512-LbZ5/XlIXLeQ3cqnCbYLn+rOVhuMIK9aZwlP6eOLGzWdo1UVp7t6CN3DP4SafiRLjexKwHeKHDm0c38Mtd3VxA== - -karma-jasmine@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-1.1.1.tgz#6fe840e75a11600c9d91e84b33c458e1c46a3529" - integrity sha1-b+hA51oRYAydkehLM8RY4cRqNSk= - -karma-requirejs@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/karma-requirejs/-/karma-requirejs-1.1.0.tgz#fddae2cb87d7ebc16fb0222893564d7fee578798" - integrity sha1-/driy4fX68FvsCIok1ZNf+5Xh5g= - -karma-sauce-launcher@2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/karma-sauce-launcher/-/karma-sauce-launcher-2.0.2.tgz#dbf98e70d86bf287b03a537cf637eb7aefa975c3" - integrity sha512-jLUFaJhHMcKpxFWUesyWYihzM5FvQiJsDwGcCtKeOy2lsWhkVw0V0Byqb1d+wU6myU1mribBtsIcub23HS4kWA== - dependencies: - sauce-connect-launcher "^1.2.4" - saucelabs "^1.5.0" - selenium-webdriver "^4.0.0-alpha.1" - -karma-sourcemap-loader@0.3.7: - version "0.3.7" - resolved "https://registry.yarnpkg.com/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.7.tgz#91322c77f8f13d46fed062b042e1009d4c4505d8" - integrity sha1-kTIsd/jxPUb+0GKwQuEAnUxFBdg= - dependencies: - graceful-fs "^4.1.2" - -karma@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/karma/-/karma-4.0.0.tgz#f28e38a2b66243fde3f98e12a8dcaa2c6ff8ca9c" - integrity sha512-EFoFs3F6G0BcUGPNOn/YloGOb3h09hzTguyXlg6loHlKY76qbJikkcyPk43m2kfRF65TUGda/mig29QQtyhm1g== - dependencies: - bluebird "^3.3.0" - body-parser "^1.16.1" - chokidar "^2.0.3" - colors "^1.1.0" - combine-lists "^1.0.0" - connect "^3.6.0" - core-js "^2.2.0" - di "^0.0.1" - dom-serialize "^2.2.0" - expand-braces "^0.1.1" - flatted "^2.0.0" - glob "^7.1.1" - graceful-fs "^4.1.2" - http-proxy "^1.13.0" - isbinaryfile "^3.0.0" - lodash "^4.17.5" - log4js "^3.0.0" - mime "^2.3.1" - minimatch "^3.0.2" - optimist "^0.6.1" - qjobs "^1.1.4" - range-parser "^1.2.0" - rimraf "^2.6.0" - safe-buffer "^5.0.1" - socket.io "2.1.1" - source-map "^0.6.1" - tmp "0.0.33" - useragent "2.3.0" - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" - integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== - -lcid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" - integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= - dependencies: - invert-kv "^1.0.0" - -lie@~3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/lie/-/lie-3.1.1.tgz#9a436b2cc7746ca59de7a41fa469b3efb76bd87e" - integrity sha1-mkNrLMd0bKWd56QfpGmz77dr2H4= - dependencies: - immediate "~3.0.5" - -lodash.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= - -lodash@^4.16.6, lodash@^4.17.10, lodash@^4.17.5, lodash@^4.5.0: - version "4.17.11" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" - integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== - -log4js@^3.0.0: - version "3.0.6" - resolved "https://registry.yarnpkg.com/log4js/-/log4js-3.0.6.tgz#e6caced94967eeeb9ce399f9f8682a4b2b28c8ff" - integrity sha512-ezXZk6oPJCWL483zj64pNkMuY/NcRX5MPiB0zE6tjZM137aeusrOnW1ecxgF9cmwMWkBMhjteQxBPoZBh9FDxQ== - dependencies: - circular-json "^0.5.5" - date-format "^1.2.0" - debug "^3.1.0" - rfdc "^1.1.2" - streamroller "0.7.0" - -long@~3: - version "3.2.0" - resolved "https://registry.yarnpkg.com/long/-/long-3.2.0.tgz#d821b7138ca1cb581c172990ef14db200b5c474b" - integrity sha1-2CG3E4yhy1gcFymQ7xTbIAtcR0s= - -lru-cache@4.1.x: - version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - -micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -mime-db@~1.37.0: - version "1.37.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.37.0.tgz#0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8" - integrity sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg== - -mime-types@~2.1.18: - version "2.1.21" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.21.tgz#28995aa1ecb770742fe6ae7e58f9181c744b3f96" - integrity sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg== - dependencies: - mime-db "~1.37.0" - -mime@^2.3.1: - version "2.4.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.0.tgz#e051fd881358585f3279df333fe694da0bcffdd6" - integrity sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w== - -minimatch@^3.0.2, minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= - -minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= - -minimist@~0.0.1: - version "0.0.10" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" - integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= - -minipass@^2.2.1, minipass@^2.3.4: - version "2.3.5" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" - integrity sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA== - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - -minizlib@^1.1.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614" - integrity sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA== - dependencies: - minipass "^2.2.1" - -mixin-deep@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" - integrity sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@^0.5.0, mkdirp@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= - dependencies: - minimist "0.0.8" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - -nan@^2.9.2: - version "2.12.1" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.12.1.tgz#7b1aa193e9aa86057e3c7bbd0ac448e770925552" - integrity sha512-JY7V6lRkStKcKTvHO5NVSQRv+RV+FIL5pvDoLiAtSL9pKlC5x9PKQcZDsq7m4FO4d57mkhC6Z+QhAh3Jdk5JFw== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -needle@^2.2.1: - version "2.2.4" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.4.tgz#51931bff82533b1928b7d1d69e01f1b00ffd2a4e" - integrity sha512-HyoqEb4wr/rsoaIDfTH2aVL9nWtQqba2/HvMv+++m8u0dz808MaagKILxtfeSN7QU7nvbQ79zk3vYOJp9zsNEA== - dependencies: - debug "^2.1.2" - iconv-lite "^0.4.4" - sax "^1.2.4" - -negotiator@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" - integrity sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk= - -node-pre-gyp@^0.10.0: - version "0.10.3" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc" - integrity sha512-d1xFs+C/IPS8Id0qPTZ4bUT8wWryfR/OzzAFxweG+uLN85oPzyo2Iw6bVlLQ/JOdgNonXLCoRyqDzDWq4iw72A== - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4" - -nopt@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= - dependencies: - abbrev "1" - osenv "^0.1.4" - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - -npm-bundled@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979" - integrity sha512-m/e6jgWu8/v5niCUKQi9qQl8QdeEduFA96xHDDzFGqly0OOjI7c+60KM/2sppfnUU9JJagf+zs+yGhqSOFj71g== - -npm-packlist@^1.1.6: - version "1.2.0" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.2.0.tgz#55a60e793e272f00862c7089274439a4cc31fc7f" - integrity sha512-7Mni4Z8Xkx0/oegoqlcao/JpPCPEMtUvsmB0q7mgvlMinykJLSRTYuFqoQLYgGY8biuxIeiHO+QNJKbCfljewQ== - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" - -npmlog@^4.0.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - -null-check@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/null-check/-/null-check-1.0.0.tgz#977dffd7176012b9ec30d2a39db5cf72a0439edd" - integrity sha1-l33/1xdgErnsMNKjnbXPcqBDnt0= - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= - -object-assign@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-component@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" - integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE= - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= - dependencies: - ee-first "1.1.1" - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -optimist@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" - integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY= - dependencies: - minimist "~0.0.1" - wordwrap "~0.0.2" - -optjs@~3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/optjs/-/optjs-3.2.2.tgz#69a6ce89c442a44403141ad2f9b370bd5bb6f4ee" - integrity sha1-aabOicRCpEQDFBrS+bNwvVu29O4= - -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= - -os-locale@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" - integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk= - dependencies: - lcid "^1.0.0" - -os-tmpdir@^1.0.0, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -osenv@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - -pako@~1.0.2: - version "1.0.8" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.8.tgz#6844890aab9c635af868ad5fecc62e8acbba3ea4" - integrity sha512-6i0HVbUfcKaTv+EG8ZTr75az7GFXcLYk9UyLEg7Notv/Ma+z/UG3TCoz6GiNeOrn1E/e63I0X/Hpw18jHOTUnA== - -parseqs@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" - integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0= - dependencies: - better-assert "~1.0.0" - -parseuri@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" - integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo= - dependencies: - better-assert "~1.0.0" - -parseurl@~1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" - integrity sha1-/CidTtiZMRlGDBViUyYs3I3mW/M= - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - -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" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - -process-nextick-args@~1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" - integrity sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M= - -process-nextick-args@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" - integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw== - -protobufjs@5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-5.0.3.tgz#e4dfe9fb67c90b2630d15868249bcc4961467a17" - integrity sha512-55Kcx1MhPZX0zTbVosMQEO5R6/rikNXd9b6RQK4KSPcrSIIwoXTtebIczUrXlwaSrbz4x8XUVThGPob1n8I4QA== - dependencies: - ascli "~1" - bytebuffer "~5" - glob "^7.0.5" - yargs "^3.10.0" - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= - -qjobs@^1.1.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071" - integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg== - -qs@6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== - -range-parser@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" - integrity sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4= - -raw-body@2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.3.tgz#1b324ece6b5706e153855bc1148c65bb7f6ea0c3" - integrity sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw== - dependencies: - bytes "3.0.0" - http-errors "1.6.3" - iconv-lite "0.4.23" - unpipe "1.0.0" - -rc@^1.2.7: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.3.0: - version "2.3.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" - integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" - integrity sha1-j5A0HmilPMySh4jaz80Rs265t44= - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - string_decoder "~0.10.x" - util-deprecate "~1.0.1" - -readdirp@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== - -repeat-string@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-0.2.2.tgz#c7a8d3236068362059a7e4651fc6884e8b1fb4ae" - integrity sha1-x6jTI2BoNiBZp+RlH8aITosftK4= - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - -requirejs@2.3.5: - version "2.3.5" - resolved "https://registry.yarnpkg.com/requirejs/-/requirejs-2.3.5.tgz#617b9acbbcb336540ef4914d790323a8d4b861b0" - integrity sha512-svnO+aNcR/an9Dpi44C7KSAy5fFGLtmPbaaCeQaklUz8BQhS64tWWIIlvEA5jrWICzlO/X9KSzSeXFnZdBu8nw== - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -rfdc@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.1.2.tgz#e6e72d74f5dc39de8f538f65e00c36c18018e349" - integrity sha512-92ktAgvZhBzYTIK0Mja9uen5q5J3NRVMoDkJL2VMwq6SXjVCgqvQeVP2XAaUY6HT+XpQYeLSjb3UoitBryKmdA== - -rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1: - version "2.6.3" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== - dependencies: - glob "^7.1.3" - -safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sauce-connect-launcher@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sauce-connect-launcher/-/sauce-connect-launcher-1.2.4.tgz#8d38f85242a9fbede1b2303b559f7e20c5609a1c" - integrity sha512-X2vfwulR6brUGiicXKxPm1GJ7dBEeP1II450Uv4bHGrcGOapZNgzJvn9aioea5IC5BPp/7qjKdE3xbbTBIVXMA== - dependencies: - adm-zip "~0.4.3" - async "^2.1.2" - https-proxy-agent "^2.2.1" - lodash "^4.16.6" - rimraf "^2.5.4" - -saucelabs@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/saucelabs/-/saucelabs-1.5.0.tgz#9405a73c360d449b232839919a86c396d379fd9d" - integrity sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ== - dependencies: - https-proxy-agent "^2.2.1" - -sax@>=0.6.0, sax@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -selenium-webdriver@^4.0.0-alpha.1: - version "4.0.0-alpha.1" - resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-4.0.0-alpha.1.tgz#cc93415e21d2dc1dfd85dfc5f6b55f3ac53933b1" - integrity sha512-z88rdjHAv3jmTZ7KSGUkTvo4rGzcDGMq0oXWHNIDK96Gs31JKVdu9+FMtT4KBrVoibg8dUicJDok6GnqqttO5Q== - dependencies: - jszip "^3.1.3" - rimraf "^2.5.4" - tmp "0.0.30" - xml2js "^0.4.17" - -semver@5.6.0, semver@^5.3.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" - integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== - -set-blocking@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -set-value@^0.4.3: - version "0.4.3" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" - integrity sha1-fbCPnT0i3H945Trzw79GZuzfzPE= - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.1" - to-object-path "^0.3.0" - -set-value@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" - integrity sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== - -signal-exit@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -socket.io-adapter@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz#2a805e8a14d6372124dd9159ad4502f8cb07f06b" - integrity sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs= - -socket.io-client@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.1.1.tgz#dcb38103436ab4578ddb026638ae2f21b623671f" - integrity sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ== - dependencies: - backo2 "1.0.2" - base64-arraybuffer "0.1.5" - component-bind "1.0.0" - component-emitter "1.2.1" - debug "~3.1.0" - engine.io-client "~3.2.0" - has-binary2 "~1.0.2" - has-cors "1.1.0" - indexof "0.0.1" - object-component "0.0.3" - parseqs "0.0.5" - parseuri "0.0.5" - socket.io-parser "~3.2.0" - to-array "0.1.4" - -socket.io-parser@~3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.2.0.tgz#e7c6228b6aa1f814e6148aea325b51aa9499e077" - integrity sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA== - dependencies: - component-emitter "1.2.1" - debug "~3.1.0" - isarray "2.0.1" - -socket.io@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.1.1.tgz#a069c5feabee3e6b214a75b40ce0652e1cfb9980" - integrity sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA== - dependencies: - debug "~3.1.0" - engine.io "~3.2.0" - has-binary2 "~1.0.2" - socket.io-adapter "~1.1.0" - socket.io-client "2.1.1" - socket.io-parser "~3.2.0" - -source-map-resolve@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" - integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== - dependencies: - atob "^2.1.1" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@0.5.9: - version "0.5.9" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.9.tgz#41bc953b2534267ea2d605bccfa7bfa3111ced5f" - integrity sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= - -source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -source-map@^0.6.0, source-map@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@^0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" - integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -"statuses@>= 1.4.0 < 2": - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - -statuses@~1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" - integrity sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4= - -streamroller@0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/streamroller/-/streamroller-0.7.0.tgz#a1d1b7cf83d39afb0d63049a5acbf93493bdf64b" - integrity sha512-WREzfy0r0zUqp3lGO096wRuUp7ho1X6uo/7DJfTlEi0Iv/4gT7YHqXDjKC2ioVGBZtE8QzsQD9nx1nIuoZ57jQ== - dependencies: - date-format "^1.2.0" - debug "^3.1.0" - mkdirp "^0.5.1" - readable-stream "^2.3.0" - -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -"string-width@^1.0.2 || 2": - version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - -tar@^4: - version "4.4.8" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.8.tgz#b19eec3fde2a96e64666df9fdb40c5ca1bc3747d" - integrity sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ== - dependencies: - chownr "^1.1.1" - fs-minipass "^1.2.5" - minipass "^2.3.4" - minizlib "^1.1.1" - mkdirp "^0.5.0" - safe-buffer "^5.1.2" - yallist "^3.0.2" - -tmp@0.0.30: - version "0.0.30" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.30.tgz#72419d4a8be7d6ce75148fd8b324e593a711c2ed" - integrity sha1-ckGdSovn1s51FI/YsyTlk6cRwu0= - dependencies: - os-tmpdir "~1.0.1" - -tmp@0.0.33, tmp@0.0.x: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - dependencies: - os-tmpdir "~1.0.2" - -to-array@0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" - integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -tsickle@0.33.1: - version "0.33.1" - resolved "https://registry.yarnpkg.com/tsickle/-/tsickle-0.33.1.tgz#eee4ebabeda3bcd8afc32cee34c822cbe3e839ec" - integrity sha512-SpW2G3PvDGs4a5sMXPlWnCWHWRviWjSlI3U0734e3fU3U39VAE0NPr8M3W1cuL/OU/YXheYipGeEwtIJ5k0NHQ== - dependencies: - minimist "^1.2.0" - mkdirp "^0.5.1" - source-map "^0.7.3" - -tslib@^1.8.1: - version "1.9.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" - integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== - -tsutils@2.27.2: - version "2.27.2" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.27.2.tgz#60ba88a23d6f785ec4b89c6e8179cac9b431f1c7" - integrity sha512-qf6rmT84TFMuxAKez2pIfR8UCai49iQsfB7YWVjV1bKpy/d0PWT5rEOSM6La9PiHZ0k1RRZQiwVdVJfQ3BPHgg== - dependencies: - tslib "^1.8.1" - -type-is@~1.6.16: - version "1.6.16" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" - integrity sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.18" - -typescript@~3.1.6: - version "3.1.6" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.1.6.tgz#b6543a83cfc8c2befb3f4c8fba6896f5b0c9be68" - integrity sha512-tDMYfVtvpb96msS1lDX9MEdHrW4yOuZ4Kdc4Him9oU796XldPYF/t2+uKoX0BBa0hXXwDlqYQbXY5Rzjzc5hBA== - -ultron@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" - integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== - -union-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" - integrity sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ= - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^0.4.3" - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -upath@^1.0.5: - version "1.1.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" - integrity sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw== - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -useragent@2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.3.0.tgz#217f943ad540cb2128658ab23fc960f6a88c9972" - integrity sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw== - dependencies: - lru-cache "4.1.x" - tmp "0.0.x" - -util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - -void-elements@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" - integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w= - -which@^1.2.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" - integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== - dependencies: - string-width "^1.0.2 || 2" - -window-size@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876" - integrity sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY= - -wordwrap@~0.0.2: - version "0.0.3" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" - integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= - -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -ws@~3.3.1: - version "3.3.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" - integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== - dependencies: - async-limiter "~1.0.0" - safe-buffer "~5.1.0" - ultron "~1.1.0" - -xml2js@^0.4.17: - version "0.4.19" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" - integrity sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q== - dependencies: - sax ">=0.6.0" - xmlbuilder "~9.0.1" - -xmlbuilder@~9.0.1: - version "9.0.7" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" - integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0= - -xmlhttprequest-ssl@~1.5.4: - version "1.5.5" - resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" - integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4= - -y18n@^3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" - integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= - -yallist@^3.0.0, yallist@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" - integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A== - -yargs@^3.10.0: - version "3.32.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.32.0.tgz#03088e9ebf9e756b69751611d2a5ef591482c995" - integrity sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU= - dependencies: - camelcase "^2.0.1" - cliui "^3.0.3" - decamelize "^1.1.1" - os-locale "^1.4.0" - string-width "^1.0.1" - window-size "^0.1.4" - y18n "^3.2.0" - -yeast@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" - integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk=
diff --git a/internal/protobufjs/BUILD.bazel b/internal/protobufjs/BUILD.bazel deleted file mode 100644 index ae06e17..0000000 --- a/internal/protobufjs/BUILD.bazel +++ /dev/null
@@ -1,69 +0,0 @@ -# Copyright 2018 The Bazel Authors. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -load("@build_bazel_rules_nodejs//:defs.bzl", "nodejs_binary") - -package(default_visibility = ["//visibility:public"]) - -exports_files([ - "node_modules/protobufjs/dist/minimal/protobuf.min.js", - # Exported to be consumed for generating skydoc. - "ts_proto_library.bzl", -]) - -nodejs_binary( - name = "pbjs", - data = [ - "@build_bazel_rules_typescript_protobufs_compiletime_deps//protobufjs", - # these deps are needed even tho they are not automatic transitive deps of - # protobufjs since if they are not in the runfiles then protobufjs attempts to - # run `npm install` at runtime to get thhem which fails as it tries to access - # the npm cache outside of the sandbox - "@build_bazel_rules_typescript_protobufs_compiletime_deps//semver", - "@build_bazel_rules_typescript_protobufs_compiletime_deps//chalk", - "@build_bazel_rules_typescript_protobufs_compiletime_deps//glob", - "@build_bazel_rules_typescript_protobufs_compiletime_deps//jsdoc", - "@build_bazel_rules_typescript_protobufs_compiletime_deps//minimist", - "@build_bazel_rules_typescript_protobufs_compiletime_deps//tmp", - "@build_bazel_rules_typescript_protobufs_compiletime_deps//uglify-js", - "@build_bazel_rules_typescript_protobufs_compiletime_deps//espree", - "@build_bazel_rules_typescript_protobufs_compiletime_deps//escodegen", - "@build_bazel_rules_typescript_protobufs_compiletime_deps//estraverse", - ], - entry_point = "protobufjs/bin/pbjs", - install_source_map_support = False, -) - -nodejs_binary( - name = "pbts", - data = [ - "@build_bazel_rules_typescript_protobufs_compiletime_deps//protobufjs", - # these deps are needed even tho they are not automatic transitive deps of - # protobufjs since if they are not in the runfiles then protobufjs attempts to - # run `npm install` at runtime to get thhem which fails as it tries to access - # the npm cache outside of the sandbox - "@build_bazel_rules_typescript_protobufs_compiletime_deps//semver", - "@build_bazel_rules_typescript_protobufs_compiletime_deps//chalk", - "@build_bazel_rules_typescript_protobufs_compiletime_deps//glob", - "@build_bazel_rules_typescript_protobufs_compiletime_deps//jsdoc", - "@build_bazel_rules_typescript_protobufs_compiletime_deps//minimist", - "@build_bazel_rules_typescript_protobufs_compiletime_deps//tmp", - "@build_bazel_rules_typescript_protobufs_compiletime_deps//uglify-js", - "@build_bazel_rules_typescript_protobufs_compiletime_deps//espree", - "@build_bazel_rules_typescript_protobufs_compiletime_deps//escodegen", - "@build_bazel_rules_typescript_protobufs_compiletime_deps//estraverse", - ], - entry_point = "protobufjs/bin/pbts", - install_source_map_support = False, -)
diff --git a/internal/protobufjs/package.json b/internal/protobufjs/package.json deleted file mode 100644 index 7d669f6..0000000 --- a/internal/protobufjs/package.json +++ /dev/null
@@ -1,20 +0,0 @@ -{ - "name": "protobufjs", - "version": "1.0.0", - "main": "index.js", - "license": "MIT", - "devDependencies": { - "chalk": "^1.1.3", - "escodegen": "^1.9.0", - "espree": "^3.5.3", - "estraverse": "^4.2.0", - "glob": "^7.1.2", - "jsdoc": "^3.5.5", - "minimist": "^1.2.0", - "protobufjs": "Use HEAD to pick up fix for https://github.com/dcodeIO/protobuf.js/pull/1018", - "protobufjs": "github:dcodeIO/protobuf.js#65d113b0079fa2570837f3cf95268ce24714a248", - "semver": "^5.5.0", - "tmp": "0.0.33", - "uglify-js": "^2.8.29" - } -}
diff --git a/internal/protobufjs/ts_proto_library.bzl b/internal/protobufjs/ts_proto_library.bzl deleted file mode 100644 index 807dea0..0000000 --- a/internal/protobufjs/ts_proto_library.bzl +++ /dev/null
@@ -1,193 +0,0 @@ -# Copyright 2017 The Bazel Authors. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -"Protocol Buffers" - -def _run_pbjs(actions, executable, output_name, proto_files, suffix = ".js", wrap = "amd", amd_name = ""): - js_file = actions.declare_file(output_name + suffix) - - # Create an intermediate file so that we can do some manipulation of the - # generated .js output that makes it compatible with our named AMD loading. - js_tmpl_file = actions.declare_file(output_name + suffix + ".tmpl") - - # Reference of arguments: - # https://github.com/dcodeIO/ProtoBuf.js/#pbjs-for-javascript - args = actions.args() - args.add_all(["--target", "static-module"]) - args.add_all(["--wrap", wrap]) - args.add("--strict-long") # Force usage of Long type with int64 fields - args.add_all(["--out", js_file.path + ".tmpl"]) - args.add_all(proto_files) - - actions.run( - executable = executable._pbjs, - inputs = proto_files, - outputs = [js_tmpl_file], - arguments = [args], - ) - - actions.expand_template( - template = js_tmpl_file, - output = js_file, - substitutions = { - # convert anonymous AMD module - # define(["protobufjs/minimal"], function($protobuf) { - # to named - # define("wksp/path/to/module", ["protobufjs/minimal"], ... - "define([": "define('%s/%s', [" % (amd_name, output_name), - }, - ) - return js_file - -def _run_pbts(actions, executable, js_file): - ts_file = actions.declare_file(js_file.basename[:-len(".closure.js")] + ".d.ts") - - # Reference of arguments: - # https://github.com/dcodeIO/ProtoBuf.js/#pbts-for-typescript - args = actions.args() - args.add_all(["--out", ts_file.path]) - args.add(js_file.path) - - actions.run( - executable = executable._pbts, - progress_message = "Generating typings from %s" % js_file.short_path, - inputs = [js_file], - outputs = [ts_file], - arguments = [args], - ) - return ts_file - -def _ts_proto_library(ctx): - sources = depset() - for dep in ctx.attr.deps: - if not hasattr(dep, "proto"): - fail("ts_proto_library dep %s must be a proto_library rule" % dep.label) - - # TODO(alexeagle): go/new-proto-library suggests - # > should not parse .proto files. Instead, they should use the descriptor - # > set output from proto_library - # but protobuf.js doesn't seem to accept that bin format - sources = depset(transitive = [sources, dep.proto.transitive_sources]) - - output_name = ctx.attr.output_name or ctx.label.name - - js_es5 = _run_pbjs( - ctx.actions, - ctx.executable, - output_name, - sources, - amd_name = "/".join([p for p in [ - ctx.workspace_name, - ctx.label.package, - ] if p]), - ) - js_es6 = _run_pbjs( - ctx.actions, - ctx.executable, - output_name, - sources, - suffix = ".closure.js", - wrap = "es6", - ) - dts = _run_pbts(ctx.actions, ctx.executable, js_es6) - - # Return a structure that is compatible with the deps[] of a ts_library. - return struct( - files = depset([dts]), - typescript = struct( - declarations = depset([dts]), - transitive_declarations = depset([dts]), - type_blacklisted_declarations = depset(), - es5_sources = depset([js_es5]), - es6_sources = depset([js_es6]), - transitive_es5_sources = depset(), - transitive_es6_sources = depset([js_es6]), - ), - ) - -ts_proto_library = rule( - implementation = _ts_proto_library, - attrs = { - "output_name": attr.string( - doc = """Name of the resulting module, which you will import from. - If not specified, the name will match the target's name.""", - ), - "deps": attr.label_list(doc = "proto_library targets"), - "_pbjs": attr.label( - default = Label("//internal/protobufjs:pbjs"), - executable = True, - cfg = "host", - ), - "_pbts": attr.label( - default = Label("//internal/protobufjs:pbts"), - executable = True, - cfg = "host", - ), - }, -) -""" -Wraps https://github.com/dcodeIO/protobuf.js for use in Bazel. - -`ts_proto_library` has identical outputs to `ts_library`, so it can be used anywhere -a `ts_library` can appear, such as in the `deps[]` of another `ts_library`. - -Example: - -``` -load("@npm_bazel_typescript//:defs.bzl", "ts_library", "ts_proto_library") - -proto_library( - name = "car_proto", - srcs = ["car.proto"], -) - -ts_proto_library( - name = "car", - deps = [":car_proto"], -) - -ts_library( - name = "test_lib", - testonly = True, - srcs = ["car.spec.ts"], - deps = [":car"], -) -``` - -Note in this example we named the `ts_proto_library` rule `car` so that the -result will be `car.d.ts`. This means our TypeScript code can just -`import {symbols} from './car'`. Use the `output_name` attribute if you want to -name the rule differently from the output file. - -The JavaScript produced by protobuf.js has a runtime dependency on a support library. -Under devmode (e.g. `ts_devserver`, `ts_web_test_suite`) you'll need to include these scripts -in the `bootstrap` phase (before Require.js loads). You can use the label -`@npm_bazel_typescript//:protobufjs_bootstrap_scripts` to reference these scripts -in the `bootstrap` attribute of `ts_web_test_suite` or `ts_devserver`. - -To complete the example above, you could write a `ts_web_test_suite`: - -``` -load("@npm_bazel_karma//:defs.bzl", "ts_web_test_suite") - -ts_web_test_suite( - name = "test", - deps = ["test_lib"], - bootstrap = ["@npm_bazel_typescript//:protobufjs_bootstrap_scripts"], - browsers = [ - "@io_bazel_rules_webtesting//browsers:chromium-local", - "@io_bazel_rules_webtesting//browsers:firefox-local", - ], -) -``` -"""
diff --git a/internal/protobufjs/yarn.lock b/internal/protobufjs/yarn.lock deleted file mode 100644 index caa7100..0000000 --- a/internal/protobufjs/yarn.lock +++ /dev/null
@@ -1,467 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" - -"@protobufjs/base64@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" - -"@protobufjs/codegen@^2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" - -"@protobufjs/eventemitter@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" - -"@protobufjs/fetch@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" - dependencies: - "@protobufjs/aspromise" "^1.1.1" - "@protobufjs/inquire" "^1.1.0" - -"@protobufjs/float@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" - -"@protobufjs/inquire@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" - -"@protobufjs/path@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" - -"@protobufjs/pool@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" - -"@protobufjs/utf8@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" - -"@types/long@^3.0.32": - version "3.0.32" - resolved "https://registry.yarnpkg.com/@types/long/-/long-3.0.32.tgz#f4e5af31e9e9b196d8e5fca8a5e2e20aa3d60b69" - -"@types/node@^8.9.4": - version "8.10.10" - resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.10.tgz#fec07bc2ad549d9e6d2f7aa0fb0be3491b83163a" - -acorn-jsx@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" - dependencies: - acorn "^3.0.4" - -acorn@^3.0.4: - version "3.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" - -acorn@^5.5.0: - version "5.5.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9" - -align-text@^0.1.1, align-text@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" - dependencies: - kind-of "^3.0.2" - longest "^1.0.1" - repeat-string "^1.5.2" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - -babylon@7.0.0-beta.19: - version "7.0.0-beta.19" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.19.tgz#e928c7e807e970e0536b078ab3e0c48f9e052503" - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - -bluebird@~3.5.0: - version "3.5.1" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -camelcase@^1.0.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" - -catharsis@~0.8.9: - version "0.8.9" - resolved "https://registry.yarnpkg.com/catharsis/-/catharsis-0.8.9.tgz#98cc890ca652dd2ef0e70b37925310ff9e90fc8b" - dependencies: - underscore-contrib "~0.3.0" - -center-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" - dependencies: - align-text "^0.1.3" - lazy-cache "^1.0.3" - -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -cliui@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" - dependencies: - center-align "^0.1.1" - right-align "^0.1.1" - wordwrap "0.0.2" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - -decamelize@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - -deep-is@~0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - -escape-string-regexp@^1.0.2, escape-string-regexp@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - -escodegen@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.9.1.tgz#dbae17ef96c8e4bedb1356f4504fa4cc2f7cb7e2" - dependencies: - esprima "^3.1.3" - estraverse "^4.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -espree@^3.5.3: - version "3.5.4" - resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" - dependencies: - acorn "^5.5.0" - acorn-jsx "^3.0.0" - -esprima@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" - -estraverse@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" - -esutils@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" - -fast-levenshtein@~2.0.4: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - -glob@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" - 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" - -graceful-fs@^4.1.9: - version "4.1.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - dependencies: - ansi-regex "^2.0.0" - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - -js2xmlparser@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/js2xmlparser/-/js2xmlparser-3.0.0.tgz#3fb60eaa089c5440f9319f51760ccd07e2499733" - dependencies: - xmlcreate "^1.0.1" - -jsdoc@^3.5.5: - version "3.5.5" - resolved "https://registry.yarnpkg.com/jsdoc/-/jsdoc-3.5.5.tgz#484521b126e81904d632ff83ec9aaa096708fa4d" - dependencies: - babylon "7.0.0-beta.19" - bluebird "~3.5.0" - catharsis "~0.8.9" - escape-string-regexp "~1.0.5" - js2xmlparser "~3.0.0" - klaw "~2.0.0" - marked "~0.3.6" - mkdirp "~0.5.1" - requizzle "~0.2.1" - strip-json-comments "~2.0.1" - taffydb "2.6.2" - underscore "~1.8.3" - -kind-of@^3.0.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - dependencies: - is-buffer "^1.1.5" - -klaw@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/klaw/-/klaw-2.0.0.tgz#59c128e0dc5ce410201151194eeb9cbf858650f6" - dependencies: - graceful-fs "^4.1.9" - -lazy-cache@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" - -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -long@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" - -longest@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" - -marked@~0.3.6: - version "0.3.19" - resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.19.tgz#5d47f709c4c9fc3c216b6d46127280f40b39d790" - -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - dependencies: - brace-expansion "^1.1.7" - -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - -minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - -mkdirp@~0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - dependencies: - minimist "0.0.8" - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - dependencies: - wrappy "1" - -optionator@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.4" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - wordwrap "~1.0.0" - -os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - -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" - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - -"protobufjs@github:dcodeIO/protobuf.js#65d113b0079fa2570837f3cf95268ce24714a248": - version "6.8.7" - resolved "https://codeload.github.com/dcodeIO/protobuf.js/tar.gz/65d113b0079fa2570837f3cf95268ce24714a248" - 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" "^3.0.32" - "@types/node" "^8.9.4" - long "^4.0.0" - -repeat-string@^1.5.2: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - -requizzle@~0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/requizzle/-/requizzle-0.2.1.tgz#6943c3530c4d9a7e46f1cddd51c158fc670cdbde" - dependencies: - underscore "~1.6.0" - -right-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" - dependencies: - align-text "^0.1.1" - -semver@^5.5.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" - -source-map@~0.5.1: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - -source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - -strip-ansi@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - dependencies: - ansi-regex "^2.0.0" - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - -taffydb@2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/taffydb/-/taffydb-2.6.2.tgz#7cbcb64b5a141b6a2efc2c5d2c67b4e150b2a268" - -tmp@0.0.33: - version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" - dependencies: - os-tmpdir "~1.0.2" - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - dependencies: - prelude-ls "~1.1.2" - -uglify-js@^2.8.29: - version "2.8.29" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" - dependencies: - source-map "~0.5.1" - yargs "~3.10.0" - optionalDependencies: - uglify-to-browserify "~1.0.0" - -uglify-to-browserify@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" - -underscore-contrib@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/underscore-contrib/-/underscore-contrib-0.3.0.tgz#665b66c24783f8fa2b18c9f8cbb0e2c7d48c26c7" - dependencies: - underscore "1.6.0" - -underscore@1.6.0, underscore@~1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8" - -underscore@~1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022" - -window-size@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" - -wordwrap@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" - -wordwrap@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - -xmlcreate@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/xmlcreate/-/xmlcreate-1.0.2.tgz#fa6bf762a60a413fb3dd8f4b03c5b269238d308f" - -yargs@~3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" - dependencies: - camelcase "^1.0.2" - cliui "^2.1.0" - decamelize "^1.0.0" - window-size "0.1.0"
diff --git a/internal/ts_config.bzl b/internal/ts_config.bzl deleted file mode 100644 index db56b39..0000000 --- a/internal/ts_config.bzl +++ /dev/null
@@ -1,44 +0,0 @@ -# Copyright 2017 The Bazel Authors. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -"tsconfig.json files using extends" - -TsConfigInfo = provider() - -def _ts_config_impl(ctx): - files = depset([ctx.file.src]) - return [DefaultInfo(files = files), TsConfigInfo(deps = ctx.files.deps)] - -ts_config = rule( - implementation = _ts_config_impl, - attrs = { - "src": attr.label( - doc = """The tsconfig.json file passed to the TypeScript compiler""", - allow_single_file = True, - mandatory = True, - ), - "deps": attr.label_list( - doc = """Additional tsconfig.json files referenced via extends""", - allow_files = True, - mandatory = True, - ), - }, -) -"""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` 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. -"""
diff --git a/internal/ts_repositories.bzl b/internal/ts_repositories.bzl index 16c3e40..e37ca2f 100644 --- a/internal/ts_repositories.bzl +++ b/internal/ts_repositories.bzl
@@ -35,27 +35,6 @@ # 0.16.8: ng_package fix for packaging binary files check_rules_nodejs_version("0.16.8") - # Included here for backward compatability for downstream repositories - # that use @build_bazel_rules_typescript_tsc_wrapped_deps such as rxjs. - # @build_bazel_rules_typescript_tsc_wrapped_deps is not used locally. - yarn_install( - name = "build_bazel_rules_typescript_tsc_wrapped_deps", - package_json = "@npm_bazel_typescript//internal:tsc_wrapped/package.json", - yarn_lock = "@npm_bazel_typescript//internal:tsc_wrapped/yarn.lock", - ) - - yarn_install( - name = "build_bazel_rules_typescript_devserver_deps", - package_json = "@npm_bazel_typescript//internal/devserver:package.json", - yarn_lock = "@npm_bazel_typescript//internal/devserver:yarn.lock", - ) - - yarn_install( - name = "build_bazel_rules_typescript_protobufs_compiletime_deps", - package_json = "@npm_bazel_typescript//internal/protobufjs:package.json", - yarn_lock = "@npm_bazel_typescript//internal/protobufjs:yarn.lock", - ) - # BEGIN-DEV-ONLY def ts_setup_dev_workspace(): """
diff --git a/internal/tsc_wrapped/yarn.lock b/internal/tsc_wrapped/yarn.lock index af6b06f..de1c0b0 100644 --- a/internal/tsc_wrapped/yarn.lock +++ b/internal/tsc_wrapped/yarn.lock
@@ -36,13 +36,18 @@ integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= brace-expansion@^1.1.7: - version "1.1.8" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" - integrity sha1-wHshHHyVLsH479Uad+8NHTmQopI= + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + bytebuffer@~5: version "5.0.1" resolved "https://registry.yarnpkg.com/bytebuffer/-/bytebuffer-5.0.1.tgz#582eea4b1a873b6d020a48d58df85f0bba6cfddd" @@ -207,10 +212,11 @@ yargs "^3.10.0" source-map-support@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.3.tgz#2b3d5fff298cfa4d1afd7d4352d569e9a0158e76" - integrity sha512-eKkTgWYeBOQqFGXRfKabMFdnWepo51vWqEdoeikaEPFiJC7MCU5j2h4+6Q8npkZTeLGbSyecZvRxiSoWl3rh+w== + version "0.5.10" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.10.tgz#2214080bc9d51832511ee2bab96e3c2f9353120c" + integrity sha512-YfQ3tQFTK/yzlGJuX8pTwa4tifQj4QS2Mj7UegOu8jAz59MqIiMGPXxQhVQiIMNzayuUSF/jEuVnfFF5JqybmQ== dependencies: + buffer-from "^1.0.0" source-map "^0.6.0" source-map@^0.6.0: @@ -252,9 +258,9 @@ source-map-support "^0.5.0" tslib@^1.8.1: - version "1.9.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8" - integrity sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ== + version "1.9.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" + integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== tsutils@2.27.2: version "2.27.2"
diff --git a/internal/tsetse/tests/ban_expect_truthy_promise/BUILD b/internal/tsetse/tests/ban_expect_truthy_promise/BUILD index 46b5590..2e59f91 100644 --- a/internal/tsetse/tests/ban_expect_truthy_promise/BUILD +++ b/internal/tsetse/tests/ban_expect_truthy_promise/BUILD
@@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -load("//internal:defaults.bzl", "ts_library") +load("//javascript/typescript:build_defs.bzl", "ts_library") licenses(["notice"]) # Apache 2.0
diff --git a/internal/tsetse/tests/ban_promise_as_condition/BUILD b/internal/tsetse/tests/ban_promise_as_condition/BUILD index 83817bd..47e09ec 100644 --- a/internal/tsetse/tests/ban_promise_as_condition/BUILD +++ b/internal/tsetse/tests/ban_promise_as_condition/BUILD
@@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -load("//internal:defaults.bzl", "ts_library") +load("//javascript/typescript:build_defs.bzl", "ts_library") licenses(["notice"]) # Apache 2.0
diff --git a/internal/tsetse/tests/check_return_value/BUILD b/internal/tsetse/tests/check_return_value/BUILD index 502aa27..c09ea5f 100644 --- a/internal/tsetse/tests/check_return_value/BUILD +++ b/internal/tsetse/tests/check_return_value/BUILD
@@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -load("//internal:defaults.bzl", "ts_library") +load("//javascript/typescript:build_defs.bzl", "ts_library") licenses(["notice"]) # Apache 2.0
diff --git a/internal/tsetse/tests/equals_nan/BUILD b/internal/tsetse/tests/equals_nan/BUILD index 6fad147..7dc5959 100644 --- a/internal/tsetse/tests/equals_nan/BUILD +++ b/internal/tsetse/tests/equals_nan/BUILD
@@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -load("//internal:defaults.bzl", "ts_library") +load("//javascript/typescript:build_defs.bzl", "ts_library") licenses(["notice"]) # Apache 2.0
diff --git a/internal/tsetse/tests/must_use_promises/BUILD b/internal/tsetse/tests/must_use_promises/BUILD index 9f88bd5..bc8c34b 100644 --- a/internal/tsetse/tests/must_use_promises/BUILD +++ b/internal/tsetse/tests/must_use_promises/BUILD
@@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -load("//internal:defaults.bzl", "ts_library") +load("//javascript/typescript:build_defs.bzl", "ts_library") licenses(["notice"]) # Apache 2.0
diff --git a/package.bzl b/package.bzl index e19ba50..ae42990 100644 --- a/package.bzl +++ b/package.bzl
@@ -12,19 +12,11 @@ # See the License for the specific language governing permissions and # limitations under the License. -"""Package file which defines npm_bazel_typescript dependencies +"""Package file which defines build dependencies """ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") -def rules_typescript_dependencies(): - print("""DEPRECATION WARNING: - rules_typescript_dependencies is no longer needed, and will be removed in a future release. - We assume you will fetch rules_nodejs in your WORKSPACE file, and no other dependencies remain here. - Simply remove any calls to this function and the corresponding call to - load("@npm_bazel_typescript//:package.bzl", "rules_typescript_dependencies") - """) - def rules_typescript_dev_dependencies(): """ Fetch dependencies needed for local development. @@ -38,11 +30,11 @@ _maybe( http_archive, name = "build_bazel_rules_nodejs", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/0.18.5/rules_nodejs-0.18.5.tar.gz"], - sha256 = "c8cd6a77433f7d3bb1f4ac87f15822aa102989f8e9eb1907ca0cad718573985b", + sha256 = "213dcf7e72f3acd4d1e369b7a356f3e5d9560f380bd655b13b7c0ea425d7c419", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/0.27.9/rules_nodejs-0.27.9.tar.gz"], ) - # For running skylint + # For protocol buffers _maybe( http_archive, name = "io_bazel", @@ -80,29 +72,6 @@ sha256 = "9176a7df34dbed2cf5171eb56271868824560364e60644348219f852f593ae79", ) - # io_bazel_rules_webtesting depends on bazel_skylib. It is installed by - # web_test_repositories() but we depend on it here in case users don't call - # web_test_repositories(). This will get cleaned up by https://github.com/bazelbuild/rules_typescript/pull/374 - # which introduces npm_bazel_karma with its own defs.bzl file - # that will allow this dep to be removed from rules_typescript_dependencies() - _maybe( - http_archive, - name = "bazel_skylib", - url = "https://github.com/bazelbuild/bazel-skylib/archive/d7c5518fa061ae18a20d00b14082705d3d2d885d.zip", - strip_prefix = "bazel-skylib-d7c5518fa061ae18a20d00b14082705d3d2d885d", - ) - - ############################################# - # Dependencies for generating documentation # - ############################################# - - http_archive( - name = "io_bazel_rules_sass", - urls = ["https://github.com/bazelbuild/rules_sass/archive/8ccf4f1c351928b55d5dddf3672e3667f6978d60.zip"], # 2018-11-23 - strip_prefix = "rules_sass-8ccf4f1c351928b55d5dddf3672e3667f6978d60", - sha256 = "894d7928df8da85e263d743c8434d4c10ab0a3f0708fed0d53394e688e3faf70", - ) - def _maybe(repo_rule, name, **kwargs): if name not in native.existing_rules(): repo_rule(name = name, **kwargs)
diff --git a/package.json b/package.json index b0579be..3d4a646 100644 --- a/package.json +++ b/package.json
@@ -10,7 +10,7 @@ "@bazel/bazel": "~0.22.0", "@bazel/buildifier": "^0.20.0", "@bazel/ibazel": "^0.2.0", - "@bazel/typescript": "0.19.1", + "@bazel/typescript": "0.27.9", "@types/jasmine": "^2.8.2", "@types/long": "^4.0.0", "@types/node": "7.0.18",
diff --git a/protractor.conf.js b/protractor.conf.js deleted file mode 100644 index ae5555b..0000000 --- a/protractor.conf.js +++ /dev/null
@@ -1,13 +0,0 @@ -exports.config = { - suites: { - app: 'bazel-bin/examples/app/*_e2e_test.js', - protocol_buffers: 'bazel-bin/examples/protocol_buffers/*_e2e_test.js', - }, - capabilities: { - browserName: 'chrome', - chromeOptions: {args: ['--no-sandbox']} - }, - directConnect: true, - baseUrl: 'http://localhost:8080/', - framework: 'jasmine', -};
diff --git a/ts_auto_deps/ts_auto_deps.js b/ts_auto_deps/ts_auto_deps.js deleted file mode 100644 index 68f4f7e..0000000 --- a/ts_auto_deps/ts_auto_deps.js +++ /dev/null
@@ -1,34 +0,0 @@ -#!/usr/bin/env node - -// This file is a shim to execute the ts_auto_deps binary from the right platform-specific package. -const os = require('os'); -const fs = require('fs'); -const path = require('path'); -const spawnSync = require('child_process').spawnSync; - -/** - * @return '.exe' for Windows and '' for all other platforms - */ -function getNativeBinaryExt() { - return os.platform() === 'win32' ? '.exe' : ''; -} - -/** - * @return the native `ts_auto_deps` binary for the current platform - * @throws when the `ts_auto_deps` executable can not be found - */ -function getNativeBinary() { - try { - return require.resolve(`./ts_auto_deps-${os.platform()}_${os.arch()}${getNativeBinaryExt()}`); - } catch (e) { - const message = 'ts_auto_deps executable not found for your platform: ' + - `(${os.platform()}_${os.arch()})\n`; - throw new Error(message); - } -} - -/** Starts a new synchronous child process that runs with the specified arguments. */ -const spawnedProcess = spawnSync(getNativeBinary(), process.argv.slice(2), {stdio: 'inherit'}); - -// Ensure that this wrapper script exits with the same exit code as the child process. -process.exit(spawnedProcess.status);
diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..5164862 --- /dev/null +++ b/tsconfig.json
@@ -0,0 +1,12 @@ +{ + "compilerOptions": { + "strict": true, + "lib": ["es2015.promise", "dom", "es5"], + // Explicitly set types settings so typescript doesn't auto-discover types. + // If all types are discovered then all types need to be included as deps + // or typescript may error out with TS2688: Cannot find type definition file for 'foo'. + "types": [] + } + } + + \ No newline at end of file
diff --git a/version.bzl b/version.bzl deleted file mode 100644 index 35f5df8..0000000 --- a/version.bzl +++ /dev/null
@@ -1 +0,0 @@ -COMPAT_VERSION = "0.25.0"
diff --git a/yarn.lock b/yarn.lock index eb75663..6d1c539 100644 --- a/yarn.lock +++ b/yarn.lock
@@ -49,14 +49,14 @@ resolved "https://registry.yarnpkg.com/@bazel/ibazel/-/ibazel-0.2.0.tgz#c119aef4344a789cef5e792caaee52264123e71c" integrity sha1-wRmu9DRKeJzvXnksqu5SJkEj5xw= -"@bazel/typescript@0.19.1": - version "0.19.1" - resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-0.19.1.tgz#61dd57c0ab8a6c9930d2463d44e9522ec007fe3a" - integrity sha512-rNpNNRAQmtb+AdX5CvLzDGOADO2PRbZWoQfd7I2NXTuWk8BaJEb0D5W+WxQGcNim6qTUD1JLAknfOVYICf3OaQ== +"@bazel/typescript@0.27.9": + version "0.27.9" + resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-0.27.9.tgz#6cd6a7162167bec67cfae3a3b973a6bfe8c65f3e" + integrity sha512-o/MDGV2YNHMrsxJMpjWHQwezR7jlh7LJ+7FEmzG/LrepRtyYdaDev5bRhVn2XxnD7cPDx8zvyer35NJTnK0hnw== dependencies: - protobufjs "5.0.0" + protobufjs "5.0.3" + semver "5.6.0" source-map-support "0.5.9" - tsickle "0.28.0" tsutils "2.27.2" "@types/jasmine@^2.8.2": @@ -1179,17 +1179,6 @@ is-glob "^3.1.0" path-dirname "^1.0.0" -glob@^5.0.10: - version "5.0.15" - resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" - integrity sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E= - dependencies: - inflight "^1.0.4" - inherits "2" - minimatch "2 || 3" - once "^1.3.0" - path-is-absolute "^1.0.0" - glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6: version "7.1.2" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" @@ -1924,7 +1913,7 @@ resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.0.tgz#e051fd881358585f3279df333fe694da0bcffdd6" integrity sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w== -"minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.4: +minimatch@^3.0.2, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== @@ -2271,16 +2260,6 @@ resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw== -protobufjs@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-5.0.0.tgz#4223063233ea96ac063ca2b554035204db524fa1" - integrity sha1-QiMGMjPqlqwGPKK1VANSBNtST6E= - dependencies: - ascli "~1" - bytebuffer "~5" - glob "^5.0.10" - yargs "^3.10.0" - protobufjs@5.0.3: version "5.0.3" resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-5.0.3.tgz#e4dfe9fb67c90b2630d15868249bcc4961467a17" @@ -2762,14 +2741,6 @@ buffer-from "^1.0.0" source-map "^0.6.0" -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" - integrity sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g== - dependencies: - 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" @@ -3003,16 +2974,6 @@ resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.0.tgz#5846786237b4239014f05db156b643212d4c6f36" integrity sha512-DlX6dR0lOIRDFxI0mjL9IYg6OTncLm/Zt+JiBhE5OlFcAR8yc9S7FFXU9so0oda47frdM/JFsk7UjNt9vscKcg== -tsickle@0.28.0: - version "0.28.0" - resolved "https://registry.yarnpkg.com/tsickle/-/tsickle-0.28.0.tgz#6cd6fa004766c6ad9261b599c83866ee97cc7875" - integrity sha512-cb/Z4NlKMPGiIIbgmklfBJIxDl4EQoYqC+0/BnPxZWzWcUvikeOHFkkkEmabJVqKh47jUqOwU/uMAu6UvhicZg== - dependencies: - minimist "^1.2.0" - mkdirp "^0.5.1" - source-map "^0.6.0" - source-map-support "^0.5.0" - tsickle@0.33.1: version "0.33.1" resolved "https://registry.yarnpkg.com/tsickle/-/tsickle-0.33.1.tgz#eee4ebabeda3bcd8afc32cee34c822cbe3e839ec"