Opt-in to --incompatible_depset_is_not_iterable

Closes #454

PiperOrigin-RevId: 250943883
diff --git a/.bazelrc b/.bazelrc
index adf60bc..01852fe 100644
--- a/.bazelrc
+++ b/.bazelrc
@@ -7,3 +7,9 @@
 # Turn off legacy external runfiles
 run --nolegacy_external_runfiles
 test --nolegacy_external_runfiles
+
+# Enable the "Managed Directories" feature
+build --experimental_allow_incremental_repository_updates
+
+# Opt-in to upcoming breaking change
+build --incompatible_depset_is_not_iterable
diff --git a/WORKSPACE b/WORKSPACE
index 4fd6286..00fe502 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -12,7 +12,10 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-workspace(name = "build_bazel_rules_typescript")
+workspace(
+    name = "build_bazel_rules_typescript",
+    managed_directories = {"@npm": ["node_modules"]},
+)
 
 # Load our dependencies
 load("//:package.bzl", "rules_typescript_dev_dependencies")
@@ -22,13 +25,6 @@
 # Setup nodejs toolchain
 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(
-    name = "build_bazel_rules_typescript_internal_bazel_managed_deps",
-    package_json = "//examples/bazel_managed_deps:package.json",
-    yarn_lock = "//examples/bazel_managed_deps:yarn.lock",
-)
-
 # Download npm dependencies
 yarn_install(
     name = "npm",
diff --git a/internal/BUILD.bazel b/internal/BUILD.bazel
index 26dc0fb..a66f109 100644
--- a/internal/BUILD.bazel
+++ b/internal/BUILD.bazel
@@ -86,6 +86,7 @@
         "@npm//tsickle",
         "@npm//tsutils",
         "@npm//typescript",
+        "//third_party/github.com/bazelbuild/bazel/src/main/protobuf:worker_protocol.proto",
     ],
     entry_point = "build_bazel_rules_typescript/internal/tsc_wrapped/tsc_wrapped.js",
     visibility = ["//visibility:public"],
diff --git a/internal/tsc_wrapped/worker.ts b/internal/tsc_wrapped/worker.ts
index 2f9828e..6362aa1 100644
--- a/internal/tsc_wrapped/worker.ts
+++ b/internal/tsc_wrapped/worker.ts
@@ -89,7 +89,7 @@
     // This extra lookup should never happen in google3. It's only needed for
     // local development in the rules_typescript repo.
     protofile = require.resolve(
-        '../../third_party/github.com/bazelbuild/bazel/src/main/protobuf/worker_protocol.proto');
+        'build_bazel_rules_typescript/third_party/github.com/bazelbuild/bazel/src/main/protobuf/worker_protocol.proto');
   }
 
   const protoNamespace = protobufjs.loadSync(protofile);
diff --git a/package.bzl b/package.bzl
index 5e07daa..3b13286 100644
--- a/package.bzl
+++ b/package.bzl
@@ -30,8 +30,8 @@
     _maybe(
         http_archive,
         name = "build_bazel_rules_nodejs",
-        sha256 = "73325a155c16bfbde29fb2ffcaf59d9d5a1c13b06ada386d3edd5a9d82bda702",
-        urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/0.29.1/rules_nodejs-0.29.1.tar.gz"],
+        sha256 = "bc180118b9e1c7f2b74dc76a8f798d706fe9fc53470ef9296728267b4cd29441",
+        urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/0.30.2/rules_nodejs-0.30.2.tar.gz"],
     )
 
     # For protocol buffers
diff --git a/package.json b/package.json
index 6699458..5b85c2e 100644
--- a/package.json
+++ b/package.json
@@ -3,11 +3,11 @@
     "homepage": "https://github.com/bazelbuild/rules_typescript",
     "license": "Apache-2.0",
     "devDependencies": {
-        "@bazel/bazel": "0.25.1",
+        "@bazel/bazel": "^0.26.0",
         "@bazel/buildifier": "^0.20.0",
         "@bazel/ibazel": "^0.2.0",
-        "@bazel/jasmine": "^0.29.0",
-        "@bazel/typescript": "0.29.0",
+        "@bazel/jasmine": "^0.30.0",
+        "@bazel/typescript": "^0.30.0",
         "@types/jasmine": "^2.8.2",
         "@types/long": "^4.0.0",
         "@types/node": "7.0.18",
diff --git a/yarn.lock b/yarn.lock
index 68a5dbe..789b5f2 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,29 +2,29 @@
 # yarn lockfile v1
 
 
-"@bazel/bazel-darwin_x64@0.25.1":
-  version "0.25.1"
-  resolved "https://registry.yarnpkg.com/@bazel/bazel-darwin_x64/-/bazel-darwin_x64-0.25.1.tgz#6526aba1cd912830595c3903ad29dfcb338114a3"
-  integrity sha512-VYPHaXZFlyl/1MOnUdByusox0RataI+dvQ37FiuuK9byFlcgCoIvhAx20nLK56tEhi/obXXaG2AO4w6rfOcgWg==
+"@bazel/bazel-darwin_x64@0.26.0":
+  version "0.26.0"
+  resolved "https://registry.yarnpkg.com/@bazel/bazel-darwin_x64/-/bazel-darwin_x64-0.26.0.tgz#24660853a01e286359636025618a1fda1aa978e1"
+  integrity sha512-9qcRlTW9g8TPJ1PWYIkNDUMsEjdhN4sJz5fDjva3GM7mnIST0sgJiRRW5Y9L3Ksv9+jNWmIOlj5wsibAUYyb5w==
 
-"@bazel/bazel-linux_x64@0.25.1":
-  version "0.25.1"
-  resolved "https://registry.yarnpkg.com/@bazel/bazel-linux_x64/-/bazel-linux_x64-0.25.1.tgz#7f0d098725f0bde4f0904b72b64ea2f22fdbf2bc"
-  integrity sha512-i+b6RSWn5qGZlrcct+lpWVHd3sen7UaBqQyi/0Rn+J72XCIbY2AFoi+j6SlCXb3EFltxJBCHKJHZqEtkP79bDQ==
+"@bazel/bazel-linux_x64@0.26.0":
+  version "0.26.0"
+  resolved "https://registry.yarnpkg.com/@bazel/bazel-linux_x64/-/bazel-linux_x64-0.26.0.tgz#9302b6df4363b5c492f2755174988935b84fb076"
+  integrity sha512-v9RTFIZb/A8Ej0Q1uCc/uTCRFZIRGqQpBVLO9Vqkbg4kScND9FxAI2RO0bv3Zhz7YTXBvJ8+kSfd/DY+0azwsA==
 
-"@bazel/bazel-win32_x64@0.25.1":
-  version "0.25.1"
-  resolved "https://registry.yarnpkg.com/@bazel/bazel-win32_x64/-/bazel-win32_x64-0.25.1.tgz#43bdec698fbb7babfd02470a1dcab384f01f9d6b"
-  integrity sha512-LM/rY8cxioCFe0m6WxdfvZ6pbD9eKzp69C1BhIkoESyp0IDLDvnLJ6uvs722e3hl8Zj1sIEIbiCwrYk33lPkTg==
+"@bazel/bazel-win32_x64@0.26.0":
+  version "0.26.0"
+  resolved "https://registry.yarnpkg.com/@bazel/bazel-win32_x64/-/bazel-win32_x64-0.26.0.tgz#ae878cf2aae0ad9799141e554c47417f426c1aa7"
+  integrity sha512-hmhuWQUzTmVLDusSt701LFzkWoRdEsakDtEGKgIuQuAJ7zqwH8QUn3PpWIg5BA0qF0gxJBKMfTHGvNhMft3pmg==
 
-"@bazel/bazel@0.25.1":
-  version "0.25.1"
-  resolved "https://registry.yarnpkg.com/@bazel/bazel/-/bazel-0.25.1.tgz#fc76ad9c07371e9ce0bf5bde6ff61cf8abbeaefd"
-  integrity sha512-HM2IsX9M4siW8b2AHZP4ixtT1NH9H74M0/DJfh0hr15NlivTapvkVQSfEfW57CCMfkuMcDjvfJQK+KzfuVyMgw==
+"@bazel/bazel@^0.26.0":
+  version "0.26.0"
+  resolved "https://registry.yarnpkg.com/@bazel/bazel/-/bazel-0.26.0.tgz#651513d5e11198f4c911024fdd57e76e0742fe9d"
+  integrity sha512-vxm3nuvYu97NRVkcRBfuLHqDytykCazZaTX13j+Ssqg0XIuuIiewTXGNKq2lcxeydJnscArMyYEv+gyXpexHDA==
   optionalDependencies:
-    "@bazel/bazel-darwin_x64" "0.25.1"
-    "@bazel/bazel-linux_x64" "0.25.1"
-    "@bazel/bazel-win32_x64" "0.25.1"
+    "@bazel/bazel-darwin_x64" "0.26.0"
+    "@bazel/bazel-linux_x64" "0.26.0"
+    "@bazel/bazel-win32_x64" "0.26.0"
 
 "@bazel/buildifier-darwin_x64@0.20.0":
   version "0.20.0"
@@ -49,19 +49,19 @@
   resolved "https://registry.yarnpkg.com/@bazel/ibazel/-/ibazel-0.2.0.tgz#c119aef4344a789cef5e792caaee52264123e71c"
   integrity sha1-wRmu9DRKeJzvXnksqu5SJkEj5xw=
 
-"@bazel/jasmine@^0.29.0":
-  version "0.29.0"
-  resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-0.29.0.tgz#347d9c512daf8576dcdaa9bb168733fa444c2263"
-  integrity sha512-QH/mLAH4e7gcJrfOT0BmJ4wk+5Ly3RU+RPLaCyacnCjmJCICukZJa/rrjbVtwd8u7ZM+Hf6tRaLLydSeKXGBug==
+"@bazel/jasmine@^0.30.0":
+  version "0.30.2"
+  resolved "https://registry.yarnpkg.com/@bazel/jasmine/-/jasmine-0.30.2.tgz#113325e2f30b9dbdf7cf8cd422a22f01259705cc"
+  integrity sha512-cDyrKrfsga8jRsr8iOE4xCMiJSr/iDyLDS8GeZZPB9nIjBAVrcgnPyflMhvtIERJCOX1WBZ0NKQOo659dZhmig==
   dependencies:
     jasmine "~3.3.1"
     jasmine-core "~3.3.0"
     v8-coverage "1.0.9"
 
-"@bazel/typescript@0.29.0":
-  version "0.29.0"
-  resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-0.29.0.tgz#d276afe034f37b5f35ee1369c99dc33c637fc9f6"
-  integrity sha512-Dp5ucrE1vXTORGiwEi6Ur4dlICpLsmZ1dscsEQT4ywF7xTT0/NmIG0ecBghiCFPFQTxt1D05TR3SH06rPtTAew==
+"@bazel/typescript@^0.30.0":
+  version "0.30.2"
+  resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-0.30.2.tgz#962eb122b80d3ef4805cf0520fc0a50d069ecb21"
+  integrity sha512-SIYHbg05Zyh7lrB8msnRjJ9hQSAHMOOWEV8seCKmCOx0noGP1Q00zXc4VRfi3uQCyCLZSFJvI4BXxnnKDwl61g==
   dependencies:
     protobufjs "6.8.8"
     semver "5.6.0"