diff options
author | David Ostrovsky <david@ostrovsky.org> | 2022-02-12 14:53:31 +0100 |
---|---|---|
committer | Thomas Dräbing <thomas.draebing@sap.com> | 2022-03-17 10:52:14 +0000 |
commit | 368ddc38cd34c2b35547f5dddbfa2e4122fbdbc9 (patch) | |
tree | dfef7ef3b8cff647ed024e8340b444188bddf1c3 | |
parent | db0d286414b04c9301a6d01e6ff13a3c7238a7cf (diff) |
Bazel: Bump rules_nodejs version to 5.1.0
See [1] and [2] for some background documentation.
The new dependency on @bazel/concatjs is unfortunate, but that is where
ts_library has moved. And we have spent 2 hours trying to get ts_project
to work instead, and failed. So I guess we have to live with this for
now.
Without `symlink_node_modules` in `yarn_install` the `node_modules`
directory would not appear anymore next to the package.json file. It
would only appear in Bazel's out directories. That breaks all sorts of
things, `server.go` for example cannot cope at all without
`node_modules` being present.
[1] https://github.com/bazelbuild/rules_nodejs/releases/tag/5.0.0
[2] https://github.com/bazelbuild/rules_nodejs/wiki/Migrating-to-5.0
Release-Notes: Update rules_nodejs version to 5.1.0
Bug: Issue 15771
Change-Id: Iba20c21e9a6ec83fb3c1c2fdd28f2908cdf249cb
-rw-r--r-- | WORKSPACE | 51 | ||||
-rw-r--r-- | package.json | 7 | ||||
-rw-r--r-- | polygerrit-ui/app/node_modules_licenses/BUILD | 7 | ||||
-rw-r--r-- | tools/node_tools/BUILD | 10 | ||||
-rw-r--r-- | tools/node_tools/node_modules_licenses/BUILD | 7 | ||||
-rw-r--r-- | tools/node_tools/package.json | 5 | ||||
-rw-r--r-- | tools/node_tools/polygerrit_app_preprocessor/BUILD | 5 | ||||
-rw-r--r-- | tools/node_tools/polygerrit_app_preprocessor/links-updater.ts | 2 | ||||
-rw-r--r-- | tools/node_tools/utils/BUILD | 5 | ||||
-rw-r--r-- | tools/node_tools/yarn.lock | 50 | ||||
-rw-r--r-- | yarn.lock | 58 |
11 files changed, 156 insertions, 51 deletions
@@ -57,8 +57,38 @@ protobuf_deps() http_archive( name = "build_bazel_rules_nodejs", - sha256 = "84b1d11b1f3bda68c24d992dc6e830bca9db8fa12276f2ca7fcb7761c893976b", - urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/3.0.0-rc.1/rules_nodejs-3.0.0-rc.1.tar.gz"], + sha256 = "c077680a307eb88f3e62b0b662c2e9c6315319385bc8c637a861ffdbed8ca247", + urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/5.1.0/rules_nodejs-5.1.0.tar.gz"], +) + +load("@build_bazel_rules_nodejs//:repositories.bzl", "build_bazel_rules_nodejs_dependencies") + +build_bazel_rules_nodejs_dependencies() + +# This is required just because we have a dependency on @bazel/concatjs. +# We don't actually use any of this web_testing stuff. +# TODO: Remove this dependency. +http_archive( + name = "io_bazel_rules_webtesting", + sha256 = "e9abb7658b6a129740c0b3ef6f5a2370864e102a5ba5ffca2cea565829ed825a", + urls = [ + "https://github.com/bazelbuild/rules_webtesting/releases/download/0.3.5/rules_webtesting.tar.gz", + ], +) + +# TODO: Remove this, see comments on `io_bazel_rules_webtesting`. +load("@io_bazel_rules_webtesting//web:repositories.bzl", "web_test_repositories") + +# TODO: Remove this, see comments on `io_bazel_rules_webtesting`. +web_test_repositories() + +# TODO: Remove this, see comments on `io_bazel_rules_webtesting`. +load("@io_bazel_rules_webtesting//web/versioned:browsers-0.3.3.bzl", "browser_repositories") + +# TODO: Remove this, see comments on `io_bazel_rules_webtesting`. +browser_repositories( + chromium = True, + firefox = True, ) # Golang support for PolyGerrit local dev server. @@ -931,42 +961,57 @@ maven_jar( sha1 = "639033469776fd37c08358c6b92a4761feb2af4b", ) -load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install") +load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories", "yarn_install") + +node_repositories( + node_version = "16.13.2", + yarn_version = "1.22.17", +) yarn_install( name = "npm", + exports_directories_only = False, frozen_lockfile = False, package_json = "//:package.json", + symlink_node_modules = True, yarn_lock = "//:yarn.lock", ) yarn_install( name = "ui_npm", args = ["--prod"], + exports_directories_only = False, frozen_lockfile = False, package_json = "//:polygerrit-ui/app/package.json", + symlink_node_modules = True, yarn_lock = "//:polygerrit-ui/app/yarn.lock", ) yarn_install( name = "ui_dev_npm", + exports_directories_only = False, frozen_lockfile = False, package_json = "//:polygerrit-ui/package.json", + symlink_node_modules = True, yarn_lock = "//:polygerrit-ui/yarn.lock", ) yarn_install( name = "tools_npm", + exports_directories_only = False, frozen_lockfile = False, package_json = "//:tools/node_tools/package.json", + symlink_node_modules = True, yarn_lock = "//:tools/node_tools/yarn.lock", ) yarn_install( name = "plugins_npm", args = ["--prod"], + exports_directories_only = False, frozen_lockfile = False, package_json = "//:plugins/package.json", + symlink_node_modules = True, yarn_lock = "//:plugins/yarn.lock", ) diff --git a/package.json b/package.json index be73d16d10..c75795d359 100644 --- a/package.json +++ b/package.json @@ -4,9 +4,10 @@ "description": "Gerrit Code Review", "dependencies": {}, "devDependencies": { - "@bazel/rollup": "^3.0.0-rc.1", - "@bazel/terser": "^3.0.0-rc.1", - "@bazel/typescript": "^3.0.0-rc.1", + "@bazel/concatjs": "^5.1.0", + "@bazel/rollup": "^5.1.0", + "@bazel/terser": "^5.1.0", + "@bazel/typescript": "^5.1.0", "eslint": "^6.6.0", "eslint-config-google": "^0.13.0", "eslint-plugin-html": "^6.0.0", diff --git a/polygerrit-ui/app/node_modules_licenses/BUILD b/polygerrit-ui/app/node_modules_licenses/BUILD index 7652ddcdd3..77400c680b 100644 --- a/polygerrit-ui/app/node_modules_licenses/BUILD +++ b/polygerrit-ui/app/node_modules_licenses/BUILD @@ -1,4 +1,4 @@ -load("@npm//@bazel/typescript:index.bzl", "ts_library") +load("@npm//@bazel/concatjs:index.bzl", "ts_library") load("//tools/node_tools/node_modules_licenses:node_modules_licenses.bzl", "node_modules_licenses") filegroup( @@ -6,17 +6,18 @@ filegroup( srcs = glob(["licenses/*.txt"]), ) +# TODO: Would be nice to use `ts_project` from @bazel/typescript instead. +# We would prefer to not depend on @bazel/concatjs ... ts_library( name = "licenses-config", srcs = [ "licenses.ts", ], compiler = "//tools/node_tools:tsc_wrapped-bin", - node_modules = "@tools_npm//:node_modules", tsconfig = "tsconfig.json", deps = [ "//tools/node_tools/node_modules_licenses:licenses-map", - "@tools_npm//@types/node", + "@tools_npm//:node_modules", ], ) diff --git a/tools/node_tools/BUILD b/tools/node_tools/BUILD index 03e3a13c53..8aeed0177e 100644 --- a/tools/node_tools/BUILD +++ b/tools/node_tools/BUILD @@ -28,13 +28,19 @@ nodejs_binary( # Create a tsc_wrapped compiler rule to use in the ts_library # compiler attribute when using self-managed dependencies +# TODO: Would be nice to just use `tsc-bin` below instead. +# We would prefer to not depend on @bazel/concatjs ... nodejs_binary( name = "tsc_wrapped-bin", # Point bazel to your node_modules to find the entry point - data = ["@tools_npm//:node_modules"], + data = [ + "@tools_npm//:node_modules", + "@tools_npm//@bazel/concatjs", + "@tools_npm//typescript", + ], # It seems, bazel uses different approaches to compile ts files (it runs some # ts service in background). It works without any workaround. - entry_point = "@tools_npm//:node_modules/@bazel/typescript/internal/tsc_wrapped/tsc_wrapped.js", + entry_point = "@tools_npm//:node_modules/@bazel/concatjs/internal/tsc_wrapped/tsc_wrapped.js", ) # Wrap a typescript into a tsc-bin binary. diff --git a/tools/node_tools/node_modules_licenses/BUILD b/tools/node_tools/node_modules_licenses/BUILD index 581b3a9246..f28ed35c87 100644 --- a/tools/node_tools/node_modules_licenses/BUILD +++ b/tools/node_tools/node_modules_licenses/BUILD @@ -1,17 +1,18 @@ load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary") -load("@npm//@bazel/typescript:index.bzl", "ts_library") +load("@npm//@bazel/concatjs:index.bzl", "ts_library") load("@npm//@bazel/rollup:index.bzl", "rollup_bundle") package(default_visibility = ["//visibility:public"]) +# TODO: Would be nice to use `ts_project` from @bazel/typescript instead. +# We would prefer to not depend on @bazel/concatjs ... ts_library( name = "licenses-map", srcs = glob(["*.ts"]), compiler = "//tools/node_tools:tsc_wrapped-bin", - node_modules = "@tools_npm//:node_modules", tsconfig = "tsconfig.json", deps = [ - "@tools_npm//@types/node", + "@tools_npm//:node_modules", ], ) diff --git a/tools/node_tools/package.json b/tools/node_tools/package.json index 81448e9ab6..038f191025 100644 --- a/tools/node_tools/package.json +++ b/tools/node_tools/package.json @@ -3,8 +3,9 @@ "description": "Gerrit Build Tools", "browser": false, "dependencies": { - "@bazel/rollup": "^3.0.0-rc.1", - "@bazel/typescript": "^3.0.0-rc.1", + "@bazel/concatjs": "^5.1.0", + "@bazel/rollup": "^5.1.0", + "@bazel/typescript": "^5.1.0", "@types/node": "^10.17.12", "@types/parse5": "^4.0.0", "@types/parse5-html-rewriting-stream": "^5.1.2", diff --git a/tools/node_tools/polygerrit_app_preprocessor/BUILD b/tools/node_tools/polygerrit_app_preprocessor/BUILD index b5ee34f73e..47f2a41696 100644 --- a/tools/node_tools/polygerrit_app_preprocessor/BUILD +++ b/tools/node_tools/polygerrit_app_preprocessor/BUILD @@ -1,13 +1,14 @@ load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary") load("@npm//@bazel/rollup:index.bzl", "rollup_bundle") -load("@npm//@bazel/typescript:index.bzl", "ts_library") +load("@npm//@bazel/concatjs:index.bzl", "ts_library") package(default_visibility = ["//visibility:public"]) +# TODO: Would be nice to use `ts_project` from @bazel/typescript instead. +# We would prefer to not depend on @bazel/concatjs ... ts_library( name = "preprocessor", srcs = glob(["*.ts"]), - node_modules = "@tools_npm//:node_modules", tsconfig = "tsconfig.json", deps = [ "//tools/node_tools/utils", diff --git a/tools/node_tools/polygerrit_app_preprocessor/links-updater.ts b/tools/node_tools/polygerrit_app_preprocessor/links-updater.ts index 24e445d2d5..9f872cc96f 100644 --- a/tools/node_tools/polygerrit_app_preprocessor/links-updater.ts +++ b/tools/node_tools/polygerrit_app_preprocessor/links-updater.ts @@ -39,7 +39,7 @@ async function main() { process.exit(1); } - const jsonRedirects: JSONRedirects = JSON.parse(fs.readFileSync(process.argv[3], {encoding: "utf-8"})); + const jsonRedirects: JSONRedirects = JSON.parse(fs.readFileSync(process.argv[3], {encoding: "utf-8"})) as JSONRedirects; const redirectsResolver = new RedirectsResolver(jsonRedirects.redirects); const input = readMultilineParamFile(process.argv[2]); diff --git a/tools/node_tools/utils/BUILD b/tools/node_tools/utils/BUILD index 5c407ca5d0..0a6e768f93 100644 --- a/tools/node_tools/utils/BUILD +++ b/tools/node_tools/utils/BUILD @@ -1,11 +1,12 @@ -load("@npm//@bazel/typescript:index.bzl", "ts_library") +load("@npm//@bazel/concatjs:index.bzl", "ts_library") package(default_visibility = ["//visibility:public"]) +# TODO: Would be nice to use `ts_project` from @bazel/typescript instead. +# We would prefer to not depend on @bazel/concatjs ... ts_library( name = "utils", srcs = glob(["*.ts"]), - node_modules = "@tools_npm//:node_modules", tsconfig = "tsconfig.json", deps = [ "@tools_npm//:node_modules", diff --git a/tools/node_tools/yarn.lock b/tools/node_tools/yarn.lock index 3ac0c20cd4..527868b277 100644 --- a/tools/node_tools/yarn.lock +++ b/tools/node_tools/yarn.lock @@ -492,20 +492,39 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" -"@bazel/rollup@^3.0.0-rc.1": - version "3.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@bazel/rollup/-/rollup-3.0.0-rc.1.tgz#153fb7ca556dfb0397aa3a86cbef71bcefb00733" - integrity sha512-O2WGfDw17aiQfUF6t5aL1kbVGeR6BnCImmtCOoFf1I8/Nw0dx+iE9x2qfqPyvSivZRuL2EBTI+xUcti42bpWgA== +"@bazel/concatjs@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@bazel/concatjs/-/concatjs-5.1.0.tgz#f4321dec4a225c3ceac41b2dc7ec7c3dd3dd5e21" + integrity sha512-sj+vxHVB/swh7awOfQ37h3p/gxSPgLSnUkDt6POrj26qkfi7HrLB1ZkWAPFIIxjEhsBp1LchoHiezjw2GylZQg== + dependencies: + protobufjs "6.8.8" + source-map-support "0.5.9" + tsutils "3.21.0" + +"@bazel/rollup@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@bazel/rollup/-/rollup-5.1.0.tgz#dc858ddc93c9fdb9cc2e7982e632c939c646ebdc" + integrity sha512-wEiWdSyVbsycSirSYjR6FGfPGbRNI7sGNAYmrV0hIzYIi+KqXeTNcwKIRSE9PESP3mb0VWbZmHvXvmrWk6daPQ== + dependencies: + "@bazel/worker" "5.1.0" -"@bazel/typescript@^3.0.0-rc.1": - version "3.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.0.0-rc.1.tgz#4a80682124475db63abc97b7da358caaadbd3077" - integrity sha512-KaGaCEbXjCKaRuwH/hLjW7aBuNyU8p/9yUe4KlP4KKoRqHAmjYISbUOw7VAksOW6BxXHgknOcZYaVF6PzE4CgQ== +"@bazel/typescript@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-5.1.0.tgz#348552355cc92a43f22e637fabce76ed64505548" + integrity sha512-E7wYv1tBFtcsFp0YN7Cf9Lv184xOzvT5WJKwZxt+43oq8R5tGmTSuqQwm4c9JmEq6s0eZmwUaRv+WXp9hxsE4A== dependencies: + "@bazel/worker" "5.1.0" protobufjs "6.8.8" semver "5.6.0" source-map-support "0.5.9" - tsutils "2.27.2" + tsutils "3.21.0" + +"@bazel/worker@5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@bazel/worker/-/worker-5.1.0.tgz#6f1e0f3ef628e3449d424cacd341c9abd09a3735" + integrity sha512-u3aU93UtHz3vL6ozezq0jnw83s1cNT4dAnW+vvB7M++YKFlB3CWzZFb0JRJbCp1b6DDe30ML0WOdd3nVYuylpw== + dependencies: + google-protobuf "^3.6.1" "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" @@ -3958,6 +3977,11 @@ globby@^8.0.1: pify "^3.0.0" slash "^1.0.0" +google-protobuf@^3.6.1: + version "3.19.4" + resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.19.4.tgz#8d32c3e34be9250956f28c0fb90955d13f311888" + integrity sha512-OIPNCxsG2lkIvf+P5FNfJ/Km95CsXOBecS9ZcAU6m2Rq3svc0Apl9nB3GMDNKfQ9asNv4KjyAqGwPQFrVle3Yg== + got@^5.0.0: version "5.7.1" resolved "https://registry.yarnpkg.com/got/-/got-5.7.1.tgz#5f81635a61e4a6589f180569ea4e381680a51f35" @@ -7856,10 +7880,10 @@ tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== -tsutils@2.27.2: - version "2.27.2" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.27.2.tgz#60ba88a23d6f785ec4b89c6e8179cac9b431f1c7" - integrity sha512-qf6rmT84TFMuxAKez2pIfR8UCai49iQsfB7YWVjV1bKpy/d0PWT5rEOSM6La9PiHZ0k1RRZQiwVdVJfQ3BPHgg== +tsutils@3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== dependencies: tslib "^1.8.1" @@ -485,25 +485,44 @@ lodash "^4.17.11" to-fast-properties "^2.0.0" -"@bazel/rollup@^3.0.0-rc.1": - version "3.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@bazel/rollup/-/rollup-3.0.0-rc.1.tgz#153fb7ca556dfb0397aa3a86cbef71bcefb00733" - integrity sha512-O2WGfDw17aiQfUF6t5aL1kbVGeR6BnCImmtCOoFf1I8/Nw0dx+iE9x2qfqPyvSivZRuL2EBTI+xUcti42bpWgA== +"@bazel/concatjs@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@bazel/concatjs/-/concatjs-5.1.0.tgz#f4321dec4a225c3ceac41b2dc7ec7c3dd3dd5e21" + integrity sha512-sj+vxHVB/swh7awOfQ37h3p/gxSPgLSnUkDt6POrj26qkfi7HrLB1ZkWAPFIIxjEhsBp1LchoHiezjw2GylZQg== + dependencies: + protobufjs "6.8.8" + source-map-support "0.5.9" + tsutils "3.21.0" -"@bazel/terser@^3.0.0-rc.1": - version "3.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@bazel/terser/-/terser-3.0.0-rc.1.tgz#62398c1702d3eecbc41764c9ef24a6a232abb1b3" - integrity sha512-iaJTYl/oUBqLFG6MFYODwqBWGTshFFdVCClTmpZwdnwnAkcGf7kU1noX2vz3VcwOOHoJseBG/dhluvRmFerJ3g== +"@bazel/rollup@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@bazel/rollup/-/rollup-5.1.0.tgz#dc858ddc93c9fdb9cc2e7982e632c939c646ebdc" + integrity sha512-wEiWdSyVbsycSirSYjR6FGfPGbRNI7sGNAYmrV0hIzYIi+KqXeTNcwKIRSE9PESP3mb0VWbZmHvXvmrWk6daPQ== + dependencies: + "@bazel/worker" "5.1.0" -"@bazel/typescript@^3.0.0-rc.1": - version "3.0.0-rc.1" - resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-3.0.0-rc.1.tgz#4a80682124475db63abc97b7da358caaadbd3077" - integrity sha512-KaGaCEbXjCKaRuwH/hLjW7aBuNyU8p/9yUe4KlP4KKoRqHAmjYISbUOw7VAksOW6BxXHgknOcZYaVF6PzE4CgQ== +"@bazel/terser@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@bazel/terser/-/terser-5.1.0.tgz#5c82b93f4d9def8103c16be2dd33900d156fa066" + integrity sha512-uE3hTqfkZr4nvlk3jwi0xx6URqqI7r6GGPtDAU02/PVei+O4PfThaov7cwHO+D1FnoLncDqChb9Iolr7Crw/8A== + +"@bazel/typescript@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-5.1.0.tgz#348552355cc92a43f22e637fabce76ed64505548" + integrity sha512-E7wYv1tBFtcsFp0YN7Cf9Lv184xOzvT5WJKwZxt+43oq8R5tGmTSuqQwm4c9JmEq6s0eZmwUaRv+WXp9hxsE4A== dependencies: + "@bazel/worker" "5.1.0" protobufjs "6.8.8" semver "5.6.0" source-map-support "0.5.9" - tsutils "2.27.2" + tsutils "3.21.0" + +"@bazel/worker@5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@bazel/worker/-/worker-5.1.0.tgz#6f1e0f3ef628e3449d424cacd341c9abd09a3735" + integrity sha512-u3aU93UtHz3vL6ozezq0jnw83s1cNT4dAnW+vvB7M++YKFlB3CWzZFb0JRJbCp1b6DDe30ML0WOdd3nVYuylpw== + dependencies: + google-protobuf "^3.6.1" "@mrmlnc/readdir-enhanced@^2.2.1": version "2.2.1" @@ -4542,6 +4561,11 @@ globby@^8.0.1: pify "^3.0.0" slash "^1.0.0" +google-protobuf@^3.6.1: + version "3.19.4" + resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.19.4.tgz#8d32c3e34be9250956f28c0fb90955d13f311888" + integrity sha512-OIPNCxsG2lkIvf+P5FNfJ/Km95CsXOBecS9ZcAU6m2Rq3svc0Apl9nB3GMDNKfQ9asNv4KjyAqGwPQFrVle3Yg== + got@^5.0.0: version "5.7.1" resolved "https://registry.yarnpkg.com/got/-/got-5.7.1.tgz#5f81635a61e4a6589f180569ea4e381680a51f35" @@ -9269,10 +9293,10 @@ tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== -tsutils@2.27.2: - version "2.27.2" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.27.2.tgz#60ba88a23d6f785ec4b89c6e8179cac9b431f1c7" - integrity sha512-qf6rmT84TFMuxAKez2pIfR8UCai49iQsfB7YWVjV1bKpy/d0PWT5rEOSM6La9PiHZ0k1RRZQiwVdVJfQ3BPHgg== +tsutils@3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== dependencies: tslib "^1.8.1" |