diff --git a/.circleci/bazel.rc b/.circleci/bazel.rc index 93dad23f..56cdacc2 100644 --- a/.circleci/bazel.rc +++ b/.circleci/bazel.rc @@ -28,7 +28,7 @@ build --experimental_repository_cache=/home/circleci/bazel_repository_cache # Limit Bazel to consuming 2560K of RAM build --local_resources=2560,1.0,1.0 # Also limit Bazel's own JVM heap to stay within our 4G container limit -startup --host_jvm_args=-Xmx2g +startup --host_jvm_args=-Xmx3g # Since the default CircleCI container has only 4G, limiting the memory # is required to keep Bazel from exhausting the memory. These values # are determined experimentally. If the Bazel process crashes without diff --git a/.circleci/config.yml b/.circleci/config.yml index 9e5cc157..83d2cd09 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -9,8 +9,8 @@ ## IMPORTANT # If you change the `docker_image` version, also change the `cache_key` suffix -var_1: &docker_image angular/ngcontainer:0.4.0 -var_2: &cache_key rules_typescript-{{ checksum "yarn.lock" }}-0.4.0 +var_1: &docker_image angular/ngcontainer:0.6.0 +var_2: &cache_key rules_typescript-{{ checksum "yarn.lock" }}-0.6.0 var_3: &setup-bazel-remote-cache run: name: Start up bazel remote cache proxy @@ -72,8 +72,11 @@ jobs: - restore_cache: key: *cache_key - run: bazel --bazelrc=/dev/null info release - - run: bazel --bazelrc=/dev/null build ... - - run: bazel --bazelrc=/dev/null test ... + # We cherry pick the memory utilization options from .circleci/bazel.rc here. + # Since the default CircleCI container has only 4G, limiting the memory + # is required to keep Bazel from exhausting the memory. + - run: bazel --bazelrc=/dev/null --host_jvm_args=-Xmx3g build ... --local_resources=2560,1.0,1.0 + - run: bazel --bazelrc=/dev/null --host_jvm_args=-Xmx3g test ... --local_resources=2560,1.0,1.0 - save_cache: key: *cache_key @@ -109,7 +112,10 @@ jobs: - run: .circleci/setup_cache.sh - run: sudo cp .circleci/bazel.rc /etc/bazel.bazelrc - *setup-bazel-remote-cache - - run: yarn skylint + # Disable skylint for now as we're on an older version that is not + # compatible with Bazel 0.17.1 and the newer version has deprecated checks + # that fail in this repo that can't be turned off + # - run: yarn skylint workflows: version: 2 diff --git a/.gitignore b/.gitignore index f48f0472..b19e31d8 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,7 @@ node_modules /bazel-* /internal/e2e/package_karma/bazel-* -/internal/e2e/package_typescript/bazel-* +/internal/e2e/package_typescript_*/bazel-* /internal/e2e/ts_auto_deps/bazel-* internal/e2e/ts_auto_deps/simple/BUILD diff --git a/BUILD.bazel b/BUILD.bazel index 1b27e942..7ef857b8 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -55,20 +55,6 @@ js_library( load("@build_bazel_rules_nodejs//:defs.bzl", "nodejs_binary") -# A nodejs_binary for karma/karma to use by default in ts_web_test & -# ts_web_test_suite that depends on @npm//:@bazel/karma instead of the -# output of the //internal/karma/karma_concat_js ts_library rule. This -# default is for downstream users that depend on the @bazel/karma npm -# package. The generated @npm//:karma/karma target does not work -# as it does not have the additional data dependencies required. -nodejs_binary( - name = "karma/karma", - data = ["@npm//:@bazel/karma"], - entry_point = "karma/bin/karma", - install_source_map_support = False, - visibility = ["//visibility:public"], -) - # A nodejs_binary for @bazel/typescript/tsc_wrapped to use by default in # ts_library that depends on @npm//:@bazel/typescript instead of the # output of the //internal/tsc_wrapped ts_library rule. This diff --git a/examples/protocol_buffers/BUILD.bazel b/examples/protocol_buffers/BUILD.bazel index c9da1ed3..63e3289a 100644 --- a/examples/protocol_buffers/BUILD.bazel +++ b/examples/protocol_buffers/BUILD.bazel @@ -43,7 +43,7 @@ ts_web_test_suite( bootstrap = ["@build_bazel_rules_typescript//:protobufjs_bootstrap_scripts"], browsers = [ "@io_bazel_rules_webtesting//browsers:chromium-local", - # TODO(gregmagolan): re-enable once `target_wrapped_test.conf.js does not exist!` issue resolved + # TODO(gregmagolan): re-enable once `Cannot find module 'Firefox.app/Contents/MacOS/firefox'` issue resolved # "@io_bazel_rules_webtesting//browsers:firefox-local", ], deps = ["test_lib"], diff --git a/examples/testing/BUILD.bazel b/examples/testing/BUILD.bazel index d732577b..ba21a1b2 100644 --- a/examples/testing/BUILD.bazel +++ b/examples/testing/BUILD.bazel @@ -21,7 +21,7 @@ ts_web_test_suite( name = "testing", browsers = [ "@io_bazel_rules_webtesting//browsers:chromium-local", - # TODO(gregmagolan): re-enable once `target_wrapped_test.conf.js does not exist!` issue resolved + # TODO(gregmagolan): re-enable once `Cannot find module 'Firefox.app/Contents/MacOS/firefox'` issue resolved # "@io_bazel_rules_webtesting//browsers:firefox-local", ], static_files = [ diff --git a/internal/common/tsconfig.bzl b/internal/common/tsconfig.bzl index ed4fd379..fc9467fd 100644 --- a/internal/common/tsconfig.bzl +++ b/internal/common/tsconfig.bzl @@ -50,6 +50,7 @@ def create_tsconfig( extra_root_dirs: Extra root dirs to be passed to tsc_wrapped. module_path_prefixes: additional locations to resolve modules module_roots: standard locations to resolve modules + node_modules_root: the node_modules root path skip_goog_scheme_deps_checking: whether imports from 'goog:*' should be strict deps checked Returns: diff --git a/internal/e2e/default_tsconfig_test.js b/internal/e2e/default_tsconfig_test.js index def6e2e1..76af2468 100644 --- a/internal/e2e/default_tsconfig_test.js +++ b/internal/e2e/default_tsconfig_test.js @@ -24,9 +24,9 @@ const tmpdir = fs.mkdtempSync(path.join(os.tmpdir(), 'wksp')); const WORKSPACE_BOILERPLATE = ` http_archive( name = "build_bazel_rules_nodejs", - urls = ["https://github.com/bazelbuild/rules_nodejs/archive/0.14.0.zip"], - strip_prefix = "rules_nodejs-0.14.0", - sha256 = "0e39999df9bf8c6fce46629457edb8c0073ad68244483339af578d83bf4fb794", + urls = ["https://github.com/bazelbuild/rules_nodejs/archive/0.14.1.zip"], + strip_prefix = "rules_nodejs-0.14.1", + sha256 = "813eb51733d3632f456f3bb581d940ed64e80dab417595c93bf5ad19079898e2", ) http_archive( name = "bazel_skylib", diff --git a/internal/e2e/package_karma/BUILD.bazel b/internal/e2e/package_karma/BUILD.bazel index 392f177a..db0937da 100644 --- a/internal/e2e/package_karma/BUILD.bazel +++ b/internal/e2e/package_karma/BUILD.bazel @@ -19,7 +19,7 @@ ts_web_test_suite( srcs = glob(["*.js"]), browsers = [ "@io_bazel_rules_webtesting//browsers:chromium-local", - # TODO(gregmagolan): re-enable once `target_wrapped_test.conf.js does not exist!` issue resolved + # TODO(gregmagolan): re-enable once `Cannot find module 'Firefox.app/Contents/MacOS/firefox'` issue resolved # "@io_bazel_rules_webtesting//browsers:firefox-local", ], ) diff --git a/internal/e2e/package_karma/README.md b/internal/e2e/package_karma/README.md new file mode 100644 index 00000000..2dfa4e23 --- /dev/null +++ b/internal/e2e/package_karma/README.md @@ -0,0 +1,5 @@ +# Testing karma dependency + +A karma 3.0.0 dependency is here to verify that a user's karma dependency doesn't interfere with +the ts_web_test_suite rule which depends on a transitive dependency in @bazel/karma on a fork +of karma. diff --git a/internal/e2e/package_karma/package.json b/internal/e2e/package_karma/package.json index 24037ae4..f91e5bbd 100644 --- a/internal/e2e/package_karma/package.json +++ b/internal/e2e/package_karma/package.json @@ -1,5 +1,6 @@ { "dependencies": { - "@bazel/karma": "file:../build_bazel_rules_typescript/bazel-bin/internal/karma/npm_package" + "@bazel/karma": "file:../build_bazel_rules_typescript/bazel-bin/internal/karma/npm_package", + "karma": "3.0.0" } } diff --git a/internal/e2e/package_karma/yarn.lock b/internal/e2e/package_karma/yarn.lock index 9700affc..e02c99f0 100644 --- a/internal/e2e/package_karma/yarn.lock +++ b/internal/e2e/package_karma/yarn.lock @@ -3,7 +3,7 @@ "@bazel/karma@file:../build_bazel_rules_typescript/bazel-bin/internal/karma/npm_package": - version "0.17.0-7-g5bd7ccc" + version "0.18.0-2-ga9643ab" dependencies: jasmine-core "2.8.0" karma alexeagle/karma#fa1a84ac881485b5657cb669e9b4e5da77b79f0a @@ -83,6 +83,13 @@ anymatch@^1.3.0: micromatch "^2.1.5" normalize-path "^2.0.0" +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + 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" @@ -349,7 +356,7 @@ braces@^1.8.2: preserve "^0.2.0" repeat-element "^1.1.2" -braces@^2.3.1: +braces@^2.3.0, braces@^2.3.1: version "2.3.2" resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" dependencies: @@ -461,11 +468,30 @@ chokidar@^1.4.1: optionalDependencies: fsevents "^1.0.0" +chokidar@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26" + 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.0.1: version "1.1.1" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" -circular-json@^0.5.4: +circular-json@^0.5.4, circular-json@^0.5.5: version "0.5.7" resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.5.7.tgz#b8be478d72ea58c7eeda26bf1cf1fba43d188842" @@ -747,6 +773,22 @@ engine.io-client@~3.1.0: xmlhttprequest-ssl "~1.5.4" yeast "0.1.2" +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" + 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.2" resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.2.tgz#4c0f4cff79aaeecbbdcfdea66a823c6085409196" @@ -770,6 +812,17 @@ engine.io@~3.1.0: optionalDependencies: uws "~9.14.0" +engine.io@~3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.2.0.tgz#54332506f42f2edc71690d2f2a42349359f3bf7d" + 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" @@ -1021,7 +1074,7 @@ fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" -fsevents@^1.0.0: +fsevents@^1.0.0, fsevents@^1.2.2: version "1.2.4" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" dependencies: @@ -1094,6 +1147,13 @@ glob-parent@^2.0.0: dependencies: is-glob "^2.0.0" +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + glob@^7.0.0, glob@^7.0.5, glob@^7.1.1: version "7.1.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" @@ -1405,6 +1465,10 @@ is-extglob@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" +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" + 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" @@ -1421,6 +1485,18 @@ is-glob@^2.0.0, is-glob@^2.0.1: dependencies: is-extglob "^1.0.0" +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + 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" + dependencies: + is-extglob "^2.1.1" + is-my-ip-valid@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz#7b351b8e8edd4d3995d4d066680e664d94696824" @@ -1588,6 +1664,38 @@ karma-sourcemap-loader@0.3.7: dependencies: graceful-fs "^4.1.2" +karma@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/karma/-/karma-3.0.0.tgz#6da83461a8a28d8224575c3b5b874e271b4730c3" + 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" + glob "^7.1.1" + graceful-fs "^4.1.2" + http-proxy "^1.13.0" + isbinaryfile "^3.0.0" + lodash "^4.17.4" + 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.2.1" + karma@alexeagle/karma#fa1a84ac881485b5657cb669e9b4e5da77b79f0a: version "1.7.1" resolved "https://codeload.github.com/alexeagle/karma/tar.gz/fa1a84ac881485b5657cb669e9b4e5da77b79f0a" @@ -1669,6 +1777,10 @@ libqp@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/libqp/-/libqp-1.1.0.tgz#f5e6e06ad74b794fb5b5b66988bf728ef1dedbe8" +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + lodash@4.17.10: version "4.17.10" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" @@ -1696,6 +1808,16 @@ log4js@^2.3.9: redis "^2.7.1" slack-node "~0.2.0" +log4js@^3.0.0: + version "3.0.5" + resolved "https://registry.yarnpkg.com/log4js/-/log4js-3.0.5.tgz#b80146bfebad68b430d4f3569556d8a6edfef303" + dependencies: + circular-json "^0.5.5" + date-format "^1.2.0" + debug "^3.1.0" + rfdc "^1.1.2" + streamroller "0.7.0" + loggly@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/loggly/-/loggly-1.1.1.tgz#0a0fc1d3fa3a5ec44fdc7b897beba2a4695cebee" @@ -1704,6 +1826,10 @@ loggly@^1.1.0: request "2.75.x" timespan "2.3.x" +lru-cache@2.2.x: + version "2.2.4" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.2.4.tgz#6c658619becf14031d0d0b594b16042ce4dc063d" + lru-cache@4.1.x, lru-cache@^4.1.2: version "4.1.3" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c" @@ -1768,7 +1894,7 @@ micromatch@^2.1.5: parse-glob "^3.0.4" regex-cache "^0.4.2" -micromatch@^3.1.10: +micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" dependencies: @@ -1800,6 +1926,10 @@ mime@^1.3.4: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" +mime@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.3.1.tgz#b1621c54d63b97c47d3cfe7f7215f7d64517c369" + minimatch@^3.0.2, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" @@ -1963,7 +2093,7 @@ nopt@^4.0.1: abbrev "1" osenv "^0.1.4" -normalize-path@^2.0.0, normalize-path@^2.0.1: +normalize-path@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" dependencies: @@ -2137,6 +2267,10 @@ pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + 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" @@ -2454,6 +2588,10 @@ ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" +rfdc@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.1.2.tgz#e6e72d74f5dc39de8f538f65e00c36c18018e349" + rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1: version "2.6.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" @@ -2610,6 +2748,25 @@ socket.io-client@2.0.4: socket.io-parser "~3.1.1" to-array "0.1.4" +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" + 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.1.1: version "3.1.3" resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.1.3.tgz#ed2da5ee79f10955036e3da413bfd7f1e4d86c8e" @@ -2619,6 +2776,14 @@ socket.io-parser@~3.1.1: has-binary2 "~1.0.2" isarray "2.0.1" +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" + dependencies: + component-emitter "1.2.1" + debug "~3.1.0" + isarray "2.0.1" + socket.io@2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.0.4.tgz#c1a4590ceff87ecf13c72652f046f716b29e6014" @@ -2629,6 +2794,17 @@ socket.io@2.0.4: socket.io-client "2.0.4" socket.io-parser "~3.1.1" +socket.io@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.1.1.tgz#a069c5feabee3e6b214a75b40ce0652e1cfb9980" + 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" + socks-proxy-agent@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.1.tgz#5936bf8b707a993079c6f37db2091821bffa6473" @@ -2906,6 +3082,10 @@ unset-value@^1.0.0: 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" + urix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" @@ -2914,6 +3094,13 @@ use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" +useragent@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.2.1.tgz#cf593ef4f2d175875e8bb658ea92e18a4fd06d8e" + dependencies: + lru-cache "2.2.x" + tmp "0.0.x" + useragent@^2.1.12: version "2.3.0" resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.3.0.tgz#217f943ad540cb2128658ab23fc960f6a88c9972" diff --git a/internal/e2e/package_typescript_2.7/BUILD.bazel b/internal/e2e/package_typescript_2.7/BUILD.bazel index 6c6528d9..ebf2da60 100644 --- a/internal/e2e/package_typescript_2.7/BUILD.bazel +++ b/internal/e2e/package_typescript_2.7/BUILD.bazel @@ -18,9 +18,6 @@ load("@build_bazel_rules_typescript//:defs.bzl", "ts_library") ts_library( name = "main", srcs = ["main.ts"], - deps = [ - "@npm//:@types/node", - ], ) ts_library( @@ -30,6 +27,8 @@ ts_library( deps = [ ":main", "@npm//:@types/jasmine", + "@npm//:@types/node", + "@npm//:@bazel/typescript", ], ) diff --git a/internal/e2e/package_typescript_2.7/main.spec.ts b/internal/e2e/package_typescript_2.7/main.spec.ts index 534605a9..790b562a 100644 --- a/internal/e2e/package_typescript_2.7/main.spec.ts +++ b/internal/e2e/package_typescript_2.7/main.spec.ts @@ -4,4 +4,23 @@ describe('main', () => { it('should compile and run with @bazel/typescript npm package', () => { expect(main.test()).toEqual('test'); }); + + it('should successfully require @bazel/typescript', () => { + try { + const {debug} = require('@bazel/typescript'); + debug('test'); + } catch (e) { + fail(e.toString()) + } + }); + + it('should successfully require built-in node module \'os\'', () => { + try { + const os = require('os'); + console.log('Platform: ' + os.platform()); + console.log('Architecture: ' + os.arch()); + } catch (e) { + fail(e.toString()) + } + }); }); diff --git a/internal/e2e/package_typescript_2.7/main.ts b/internal/e2e/package_typescript_2.7/main.ts index 684bee08..36f3fab5 100644 --- a/internal/e2e/package_typescript_2.7/main.ts +++ b/internal/e2e/package_typescript_2.7/main.ts @@ -1,8 +1,3 @@ -import * as os from 'os'; - -console.log('Platform: ' + os.platform()); -console.log('Architecture: ' + os.arch()); - export function test() { return 'test'; } \ No newline at end of file diff --git a/internal/e2e/package_typescript_2.7/tsconfig.json.oss b/internal/e2e/package_typescript_2.7/tsconfig.json similarity index 100% rename from internal/e2e/package_typescript_2.7/tsconfig.json.oss rename to internal/e2e/package_typescript_2.7/tsconfig.json diff --git a/internal/e2e/package_typescript_2.8/BUILD.bazel b/internal/e2e/package_typescript_2.8/BUILD.bazel index 6c6528d9..ebf2da60 100644 --- a/internal/e2e/package_typescript_2.8/BUILD.bazel +++ b/internal/e2e/package_typescript_2.8/BUILD.bazel @@ -18,9 +18,6 @@ load("@build_bazel_rules_typescript//:defs.bzl", "ts_library") ts_library( name = "main", srcs = ["main.ts"], - deps = [ - "@npm//:@types/node", - ], ) ts_library( @@ -30,6 +27,8 @@ ts_library( deps = [ ":main", "@npm//:@types/jasmine", + "@npm//:@types/node", + "@npm//:@bazel/typescript", ], ) diff --git a/internal/e2e/package_typescript_2.8/main.spec.ts b/internal/e2e/package_typescript_2.8/main.spec.ts index 534605a9..790b562a 100644 --- a/internal/e2e/package_typescript_2.8/main.spec.ts +++ b/internal/e2e/package_typescript_2.8/main.spec.ts @@ -4,4 +4,23 @@ describe('main', () => { it('should compile and run with @bazel/typescript npm package', () => { expect(main.test()).toEqual('test'); }); + + it('should successfully require @bazel/typescript', () => { + try { + const {debug} = require('@bazel/typescript'); + debug('test'); + } catch (e) { + fail(e.toString()) + } + }); + + it('should successfully require built-in node module \'os\'', () => { + try { + const os = require('os'); + console.log('Platform: ' + os.platform()); + console.log('Architecture: ' + os.arch()); + } catch (e) { + fail(e.toString()) + } + }); }); diff --git a/internal/e2e/package_typescript_2.8/main.ts b/internal/e2e/package_typescript_2.8/main.ts index 684bee08..36f3fab5 100644 --- a/internal/e2e/package_typescript_2.8/main.ts +++ b/internal/e2e/package_typescript_2.8/main.ts @@ -1,8 +1,3 @@ -import * as os from 'os'; - -console.log('Platform: ' + os.platform()); -console.log('Architecture: ' + os.arch()); - export function test() { return 'test'; } \ No newline at end of file diff --git a/internal/e2e/package_typescript_2.8/tsconfig.json.oss b/internal/e2e/package_typescript_2.8/tsconfig.json similarity index 100% rename from internal/e2e/package_typescript_2.8/tsconfig.json.oss rename to internal/e2e/package_typescript_2.8/tsconfig.json diff --git a/internal/e2e/package_typescript_2.9/BUILD.bazel b/internal/e2e/package_typescript_2.9/BUILD.bazel index 6c6528d9..ebf2da60 100644 --- a/internal/e2e/package_typescript_2.9/BUILD.bazel +++ b/internal/e2e/package_typescript_2.9/BUILD.bazel @@ -18,9 +18,6 @@ load("@build_bazel_rules_typescript//:defs.bzl", "ts_library") ts_library( name = "main", srcs = ["main.ts"], - deps = [ - "@npm//:@types/node", - ], ) ts_library( @@ -30,6 +27,8 @@ ts_library( deps = [ ":main", "@npm//:@types/jasmine", + "@npm//:@types/node", + "@npm//:@bazel/typescript", ], ) diff --git a/internal/e2e/package_typescript_2.9/main.spec.ts b/internal/e2e/package_typescript_2.9/main.spec.ts index 534605a9..790b562a 100644 --- a/internal/e2e/package_typescript_2.9/main.spec.ts +++ b/internal/e2e/package_typescript_2.9/main.spec.ts @@ -4,4 +4,23 @@ describe('main', () => { it('should compile and run with @bazel/typescript npm package', () => { expect(main.test()).toEqual('test'); }); + + it('should successfully require @bazel/typescript', () => { + try { + const {debug} = require('@bazel/typescript'); + debug('test'); + } catch (e) { + fail(e.toString()) + } + }); + + it('should successfully require built-in node module \'os\'', () => { + try { + const os = require('os'); + console.log('Platform: ' + os.platform()); + console.log('Architecture: ' + os.arch()); + } catch (e) { + fail(e.toString()) + } + }); }); diff --git a/internal/e2e/package_typescript_2.9/main.ts b/internal/e2e/package_typescript_2.9/main.ts index 684bee08..36f3fab5 100644 --- a/internal/e2e/package_typescript_2.9/main.ts +++ b/internal/e2e/package_typescript_2.9/main.ts @@ -1,8 +1,3 @@ -import * as os from 'os'; - -console.log('Platform: ' + os.platform()); -console.log('Architecture: ' + os.arch()); - export function test() { return 'test'; } \ No newline at end of file diff --git a/internal/e2e/package_typescript_2.9/tsconfig.json.oss b/internal/e2e/package_typescript_2.9/tsconfig.json similarity index 100% rename from internal/e2e/package_typescript_2.9/tsconfig.json.oss rename to internal/e2e/package_typescript_2.9/tsconfig.json diff --git a/internal/e2e/package_typescript_3.0/BUILD.bazel b/internal/e2e/package_typescript_3.0/BUILD.bazel index 6c6528d9..ebf2da60 100644 --- a/internal/e2e/package_typescript_3.0/BUILD.bazel +++ b/internal/e2e/package_typescript_3.0/BUILD.bazel @@ -18,9 +18,6 @@ load("@build_bazel_rules_typescript//:defs.bzl", "ts_library") ts_library( name = "main", srcs = ["main.ts"], - deps = [ - "@npm//:@types/node", - ], ) ts_library( @@ -30,6 +27,8 @@ ts_library( deps = [ ":main", "@npm//:@types/jasmine", + "@npm//:@types/node", + "@npm//:@bazel/typescript", ], ) diff --git a/internal/e2e/package_typescript_3.0/main.spec.ts b/internal/e2e/package_typescript_3.0/main.spec.ts index 534605a9..790b562a 100644 --- a/internal/e2e/package_typescript_3.0/main.spec.ts +++ b/internal/e2e/package_typescript_3.0/main.spec.ts @@ -4,4 +4,23 @@ describe('main', () => { it('should compile and run with @bazel/typescript npm package', () => { expect(main.test()).toEqual('test'); }); + + it('should successfully require @bazel/typescript', () => { + try { + const {debug} = require('@bazel/typescript'); + debug('test'); + } catch (e) { + fail(e.toString()) + } + }); + + it('should successfully require built-in node module \'os\'', () => { + try { + const os = require('os'); + console.log('Platform: ' + os.platform()); + console.log('Architecture: ' + os.arch()); + } catch (e) { + fail(e.toString()) + } + }); }); diff --git a/internal/e2e/package_typescript_3.0/main.ts b/internal/e2e/package_typescript_3.0/main.ts index 684bee08..36f3fab5 100644 --- a/internal/e2e/package_typescript_3.0/main.ts +++ b/internal/e2e/package_typescript_3.0/main.ts @@ -1,8 +1,3 @@ -import * as os from 'os'; - -console.log('Platform: ' + os.platform()); -console.log('Architecture: ' + os.arch()); - export function test() { return 'test'; } \ No newline at end of file diff --git a/internal/e2e/package_typescript_3.0/tsconfig.json.oss b/internal/e2e/package_typescript_3.0/tsconfig.json similarity index 100% rename from internal/e2e/package_typescript_3.0/tsconfig.json.oss rename to internal/e2e/package_typescript_3.0/tsconfig.json diff --git a/internal/e2e/package_typescript_karma/BUILD.bazel b/internal/e2e/package_typescript_karma/BUILD.bazel index f823fc4c..26eeddbd 100644 --- a/internal/e2e/package_typescript_karma/BUILD.bazel +++ b/internal/e2e/package_typescript_karma/BUILD.bazel @@ -33,7 +33,7 @@ ts_web_test_suite( name = "testing", browsers = [ "@io_bazel_rules_webtesting//browsers:chromium-local", - # TODO(gregmagolan): re-enable once `target_wrapped_test.conf.js does not exist!` issue resolved + # TODO(gregmagolan): re-enable once `Cannot find module 'Firefox.app/Contents/MacOS/firefox'` issue resolved # "@io_bazel_rules_webtesting//browsers:firefox-local", ], deps = [ diff --git a/internal/e2e/package_typescript_karma/tsconfig.json.oss b/internal/e2e/package_typescript_karma/tsconfig.json similarity index 100% rename from internal/e2e/package_typescript_karma/tsconfig.json.oss rename to internal/e2e/package_typescript_karma/tsconfig.json diff --git a/internal/e2e/package_typescript_karma/yarn.lock b/internal/e2e/package_typescript_karma/yarn.lock index 02d4b5f5..95dd936d 100644 --- a/internal/e2e/package_typescript_karma/yarn.lock +++ b/internal/e2e/package_typescript_karma/yarn.lock @@ -3,7 +3,7 @@ "@bazel/karma@file:../build_bazel_rules_typescript/bazel-bin/internal/karma/npm_package": - version "0.17.0-7-g5bd7ccc" + version "0.18.0-2-ga9643ab" dependencies: jasmine-core "2.8.0" karma alexeagle/karma#fa1a84ac881485b5657cb669e9b4e5da77b79f0a @@ -17,7 +17,7 @@ tmp "0.0.33" "@bazel/typescript@file:../build_bazel_rules_typescript/bazel-bin/internal/npm_package": - version "0.17.0-7-g5bd7ccc" + version "0.18.0-2-ga9643ab" dependencies: protobufjs "5.0.0" source-map-support "0.5.9" diff --git a/internal/karma/BUILD.bazel b/internal/karma/BUILD.bazel index 73db765b..0bb2b94b 100644 --- a/internal/karma/BUILD.bazel +++ b/internal/karma/BUILD.bazel @@ -61,6 +61,7 @@ npm_package( srcs = [ "README.md", "package.json", + "karma.js", ], deps = [ ":check_version_copy", diff --git a/internal/karma/karma.conf.js b/internal/karma/karma.conf.js index 9edeac0e..81db6d06 100644 --- a/internal/karma/karma.conf.js +++ b/internal/karma/karma.conf.js @@ -1,80 +1,93 @@ // Karma configuration // GENERATED BY Bazel -const path = require('path'); -const fs = require('fs'); -const tmp = require('tmp'); - -const browsers = []; -let customLaunchers = null; - -// WEB_TEST_METADATA is configured in rules_webtesting based on value -// of the browsers attribute passed to ts_web_test_suite -// We setup the karma configuration based on the values in this object -if (process.env['WEB_TEST_METADATA']) { - const webTestMetadata = require(process.env['WEB_TEST_METADATA']); - 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']; - customLaunchers = { - 'sauce': { - base: 'SauceLabs', - browserName: capabilities['browserName'], - platform: capabilities['platform'], - version: capabilities['version'], - } - }; - 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 - webTestMetadata['webTestFiles'].forEach(webTestFiles => { - const webTestNamedFiles = webTestFiles['namedFiles']; - if (webTestNamedFiles['CHROMIUM']) { - // When karma is configured to use Chrome it will look for a CHROME_BIN - // environment variable. - process.env.CHROME_BIN = require.resolve(webTestNamedFiles['CHROMIUM']); - browsers.push(process.env['DISPLAY'] ? 'Chrome' : 'ChromeHeadless'); - } - if (webTestNamedFiles['FIREFOX']) { - // When karma is configured to use Firefox it will look for a - // FIREFOX_BIN environment variable. - process.env.FIREFOX_BIN = require.resolve(webTestNamedFiles['FIREFOX']); - browsers.push(process.env['DISPLAY'] ? 'Firefox' : 'FirefoxHeadless'); +try +{ + const fs = require('fs'); + const tmp = require('tmp'); + + const browsers = []; + let customLaunchers = null; + + // WEB_TEST_METADATA is configured in rules_webtesting based on value + // of the browsers attribute passed to ts_web_test_suite + // We setup the karma configuration based on the values in this object + if (process.env['WEB_TEST_METADATA']) { + const webTestMetadata = require(process.env['WEB_TEST_METADATA']); + 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); } - }); - } else { - console.warn(`Unknown WEB_TEST_METADATA environment '${webTestMetadata['environment']}'`); + // 'capabilities' will specify the sauce labs configuration to use + const capabilities = webTestMetadata['capabilities']; + customLaunchers = { + 'sauce': { + base: 'SauceLabs', + browserName: capabilities['browserName'], + platform: capabilities['platform'], + version: capabilities['version'], + } + }; + 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 + webTestMetadata['webTestFiles'].forEach(webTestFiles => { + const webTestNamedFiles = webTestFiles['namedFiles']; + if (webTestNamedFiles['CHROMIUM']) { + // When karma is configured to use Chrome it will look for a CHROME_BIN + // environment variable. + process.env.CHROME_BIN = require.resolve(webTestNamedFiles['CHROMIUM']); + browsers.push(process.env['DISPLAY'] ? 'Chrome' : 'ChromeHeadless'); + } + if (webTestNamedFiles['FIREFOX']) { + // When karma is configured to use Firefox it will look for a + // FIREFOX_BIN environment variable. + process.env.FIREFOX_BIN = require.resolve(webTestNamedFiles['FIREFOX']); + browsers.push(process.env['DISPLAY'] ? 'Firefox' : 'FirefoxHeadless'); + } + }); + } else { + console.warn(`Unknown WEB_TEST_METADATA environment '${webTestMetadata['environment']}'`); + } } -} -// Fallback to using the system local chrome if no valid browsers have been -// configured above -if (!browsers.length) { - console.warn('No browsers configured. Configuring Karma to use system Chrome.'); - browsers.push(process.env['DISPLAY'] ? 'Chrome': 'ChromeHeadless'); -} + // Fallback to using the system local chrome if no valid browsers have been + // configured above + if (!browsers.length) { + console.warn('No browsers configured. Configuring Karma to use system Chrome.'); + browsers.push(process.env['DISPLAY'] ? 'Chrome': 'ChromeHeadless'); + } -const proxies = {}; -const files = [ - TMPL_bootstrap_files - TMPL_user_files -].map(f => require.resolve(f)); + const proxies = {}; + const files = [ + TMPL_bootstrap_files + TMPL_user_files + ].map(f => { + if (f.startsWith('NODE_MODULES/')) { + try { + // attempt to resolve in @bazel/karma 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); + } + }); -// 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 + // 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 @@ -198,3 +211,7 @@ const files = [ config.set(configuration); } +} catch (e) { + console.error('Error in karma configuration', e.toString()); + throw e; +} diff --git a/internal/karma/karma.js b/internal/karma/karma.js new file mode 100644 index 00000000..2653ede1 --- /dev/null +++ b/internal/karma/karma.js @@ -0,0 +1,3 @@ +#!/usr/bin/env node + +require('karma/lib/cli').run(); diff --git a/internal/karma/package.json b/internal/karma/package.json index fdbdd5b8..9380ca59 100644 --- a/internal/karma/package.json +++ b/internal/karma/package.json @@ -8,7 +8,11 @@ "karma", "bazel" ], + "main": "./index.js", "typings": "./index.d.ts", + "bin": { + "karma": "./karma.js" + }, "dependencies": { "jasmine-core": "2.8.0", "karma": "alexeagle/karma#fa1a84ac881485b5657cb669e9b4e5da77b79f0a", diff --git a/internal/karma/ts_web_test.bzl b/internal/karma/ts_web_test.bzl index 5c884ab6..27df24eb 100644 --- a/internal/karma/ts_web_test.bzl +++ b/internal/karma/ts_web_test.bzl @@ -23,7 +23,7 @@ load("@io_bazel_rules_webtesting//web:web.bzl", "web_test_suite") load("@io_bazel_rules_webtesting//web/internal:constants.bzl", "DEFAULT_WRAPPED_TEST_TAGS") _CONF_TMPL = "//internal/karma:karma.conf.js" -_DEFAULT_KARMA_BIN = "@build_bazel_rules_typescript//:karma/karma" +_DEFAULT_KARMA_BIN = "@npm//:@bazel/karma/karma" def _ts_web_test_impl(ctx): conf = ctx.actions.declare_file( @@ -38,24 +38,25 @@ def _ts_web_test_impl(ctx): elif hasattr(d, "files"): files += d.files + # Write the AMD names shim bootstrap file + 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) + # 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: - # npm/node_modules/jasmine-core/lib/jasmine-core/jasmine.js - # npm/node_modules/karma-jasmine/lib/boot.js - # npm/node_modules/karma-jasmine/lib/adapter.js + # 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 ] - 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) - # 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 @@ -63,9 +64,12 @@ def _ts_web_test_impl(ctx): # 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/karma/node_modules` before + # looking in root node_modules. bootstrap_entries += [ - "npm/node_modules/requirejs/require.js", - "npm/node_modules/karma-requirejs/lib/adapter.js", + "NODE_MODULES/requirejs/require.js", + "NODE_MODULES/karma-requirejs/lib/adapter.js", "/".join([ctx.workspace_name, amd_names_shim.short_path]), ] diff --git a/internal/package.json b/internal/package.json index 80c9cd2b..1ac5e9c3 100644 --- a/internal/package.json +++ b/internal/package.json @@ -8,6 +8,7 @@ "typescript", "bazel" ], + "main": "./tsc_wrapped/index.js", "typings": "./tsc_wrapped/index.d.ts", "peerDependencies": { "typescript": ">=2.4.2" diff --git a/internal/ts_repositories.bzl b/internal/ts_repositories.bzl index 59042f2c..a66a8f1e 100644 --- a/internal/ts_repositories.bzl +++ b/internal/ts_repositories.bzl @@ -26,7 +26,8 @@ def ts_setup_workspace(): # 0.14.0: @bazel_tools//tools/bash/runfiles is required # 0.15.0: "data" attributes don't need 'cfg = "data"' - check_bazel_version("0.15.0") + # 0.17.1: allow @ in package names is required for fine grained deps + check_bazel_version("0.17.1") go_repository( name = "com_github_kylelemons_godebug", @@ -42,7 +43,8 @@ def ts_setup_workspace(): # 0.11.3: node module resolution fixes & check_rules_nodejs_version # 0.14.0: fine grained npm dependencies support for ts_library - check_rules_nodejs_version("0.14.0") + # 0.14.1: fine grained npm dependencies fix for npm_install + check_rules_nodejs_version("0.14.1") # Included here for backward compatability for downstream repositories # that use @build_bazel_rules_typescript_tsc_wrapped_deps such as rxjs. diff --git a/package.bzl b/package.bzl index d42f9794..066800c1 100644 --- a/package.bzl +++ b/package.bzl @@ -38,9 +38,9 @@ def rules_typescript_dependencies(): _maybe( http_archive, name = "build_bazel_rules_nodejs", - urls = ["https://github.com/bazelbuild/rules_nodejs/archive/0.14.0.zip"], - strip_prefix = "rules_nodejs-0.14.0", - sha256 = "0e39999df9bf8c6fce46629457edb8c0073ad68244483339af578d83bf4fb794", + urls = ["https://github.com/bazelbuild/rules_nodejs/archive/0.14.1.zip"], + strip_prefix = "rules_nodejs-0.14.1", + sha256 = "813eb51733d3632f456f3bb581d940ed64e80dab417595c93bf5ad19079898e2", ) # ts_web_test depends on the web testing rules to provision browsers.