Upgrade npm bazel rules to latest
Later than v2, rollup_bundle needs additional configuration to find
workspace files. It also no longer minifies, so needed to add an
additional post-bundle step to maintain api.
We had to rename the `Object` class to `ObjectGenerated` in the
flatbuffers TypeScript generator. This lets us avoid name clashes with
the builtin `Object` class.
Upstream issue: https://github.com/google/flatbuffers/issues/6994
Change-Id: I45ab717bfc9ff8ef24aa05644fb845879cc09d98
Signed-off-by: Philipp Schrader <philipp.schrader@gmail.com>
diff --git a/BUILD b/BUILD
index 62ee0d1..91997b9 100644
--- a/BUILD
+++ b/BUILD
@@ -1,6 +1,9 @@
load("@bazel_gazelle//:def.bzl", "gazelle")
-exports_files(["tsconfig.json"])
+exports_files([
+ "tsconfig.json",
+ "rollup.config.js",
+])
# gazelle:prefix github.com/frc971/971-Robot-Code
# gazelle:build_file_name BUILD
diff --git a/WORKSPACE b/WORKSPACE
index 2a5927e..1d251eb 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -678,24 +678,17 @@
)
http_archive(
- name = "build_bazel_rules_typescript",
- strip_prefix = "rules_typescript-0.21.0",
- url = "https://github.com/bazelbuild/rules_typescript/archive/0.21.0.zip",
-)
-
-http_archive(
name = "build_bazel_rules_nodejs",
- sha256 = "0d9660cf0894f1fe1e9840818553e0080fbce0851169812d77a70bdb9981c946",
- urls = ["https://www.frc971.org/Build-Dependencies/rules_nodejs-0.37.0.tar.gz"],
+ sha256 = "cfc289523cf1594598215901154a6c2515e8bf3671fd708264a6f6aefe02bf39",
+ urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/4.4.6/rules_nodejs-4.4.6.tar.gz"],
)
-# Setup the NodeJS toolchain
-load("@build_bazel_rules_nodejs//:defs.bzl", "node_repositories", "yarn_install")
+load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories", "yarn_install")
node_repositories()
# Setup Bazel managed npm dependencies with the `yarn_install` rule.
-#
+
# To run yarn by hand, use:
# bazel run @nodejs_linux_amd64//:bin/yarn -- list
# I'm sure there is a better path, but that works...
@@ -706,15 +699,6 @@
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()
-
-load("@npm_bazel_typescript//:index.bzl", "ts_setup_workspace")
-
-ts_setup_workspace()
-
# Flatbuffers
local_repository(
name = "com_github_google_flatbuffers",
diff --git a/aos/network/www/BUILD b/aos/network/www/BUILD
index 64d7452..f62ed67 100644
--- a/aos/network/www/BUILD
+++ b/aos/network/www/BUILD
@@ -1,5 +1,5 @@
-load("@npm_bazel_typescript//:defs.bzl", "ts_library")
-load("@build_bazel_rules_nodejs//:defs.bzl", "rollup_bundle")
+load("@npm//@bazel/typescript:index.bzl", "ts_library")
+load("//tools/build_rules:js.bzl", "rollup_bundle")
load("//aos:config.bzl", "aos_config")
filegroup(
@@ -43,7 +43,6 @@
rollup_bundle(
name = "main_bundle",
- enable_code_splitting = False,
entry_point = "main.ts",
target_compatible_with = ["@platforms//os:linux"],
visibility = ["//aos:__subpackages__"],
@@ -165,7 +164,6 @@
rollup_bundle(
name = "reflection_test_bundle",
- enable_code_splitting = False,
entry_point = "reflection_test_main.ts",
target_compatible_with = ["@platforms//os:linux"],
deps = [
diff --git a/aos/network/www/proxy.ts b/aos/network/www/proxy.ts
index c52f495..5461899 100644
--- a/aos/network/www/proxy.ts
+++ b/aos/network/www/proxy.ts
@@ -243,7 +243,7 @@
this.webSocketConnection.send(array.buffer.slice(array.byteOffset));
}
- onIceCandidateError(e: RTCPeerConnectionIceErrorEvent): void {
+ onIceCandidateError(e: Event): void {
console.warn(e);
}
diff --git a/aos/network/www/reflection.ts b/aos/network/www/reflection.ts
index 4362806..18d4996 100644
--- a/aos/network/www/reflection.ts
+++ b/aos/network/www/reflection.ts
@@ -236,7 +236,7 @@
}
// Returns the Object definition associated with the given type index.
- getType(typeIndex: number): reflection.Object {
+ getType(typeIndex: number): reflection.ObjectGenerated {
if (typeIndex === -1) {
return this.schema.rootTable();
}
@@ -249,7 +249,7 @@
// Retrieves the Field schema for the given field name within a given
// type index.
getField(fieldName: string, typeIndex: number): reflection.Field {
- const schema: reflection.Object = this.getType(typeIndex);
+ const schema: reflection.ObjectGenerated = this.getType(typeIndex);
const numFields = schema.fieldsLength();
for (let ii = 0; ii < numFields; ++ii) {
const field = schema.fields(ii);
diff --git a/frc971/analysis/BUILD b/frc971/analysis/BUILD
index 0269d65..0c18061 100644
--- a/frc971/analysis/BUILD
+++ b/frc971/analysis/BUILD
@@ -1,5 +1,5 @@
-load("@npm_bazel_typescript//:defs.bzl", "ts_library")
-load("@build_bazel_rules_nodejs//:defs.bzl", "rollup_bundle")
+load("@npm//@bazel/typescript:index.bzl", "ts_library")
+load("//tools/build_rules:js.bzl", "rollup_bundle")
load("@com_github_google_flatbuffers//:build_defs.bzl", "flatbuffer_cc_library", "flatbuffer_ts_library")
load("//aos:config.bzl", "aos_config")
@@ -57,7 +57,6 @@
rollup_bundle(
name = "plot_index_bundle",
- enable_code_splitting = False,
entry_point = "plot_index.ts",
target_compatible_with = ["@platforms//os:linux"],
deps = [
diff --git a/frc971/control_loops/drivetrain/BUILD b/frc971/control_loops/drivetrain/BUILD
index eaf37db..6d48192 100644
--- a/frc971/control_loops/drivetrain/BUILD
+++ b/frc971/control_loops/drivetrain/BUILD
@@ -2,7 +2,7 @@
load("//aos:config.bzl", "aos_config")
load("//tools/build_rules:select.bzl", "cpu_select")
load("//aos:flatbuffers.bzl", "cc_static_flatbuffer")
-load("@npm_bazel_typescript//:defs.bzl", "ts_library")
+load("@npm//@bazel/typescript:index.bzl", "ts_library")
package(default_visibility = ["//visibility:public"])
diff --git a/frc971/wpilib/BUILD b/frc971/wpilib/BUILD
index 2c8ed29..b6e30d8 100644
--- a/frc971/wpilib/BUILD
+++ b/frc971/wpilib/BUILD
@@ -1,4 +1,4 @@
-load("@npm_bazel_typescript//:defs.bzl", "ts_library")
+load("@npm//@bazel/typescript:index.bzl", "ts_library")
load("@com_github_google_flatbuffers//:build_defs.bzl", "flatbuffer_cc_library", "flatbuffer_ts_library")
load("//aos:config.bzl", "aos_config")
diff --git a/package.json b/package.json
index 2478e0a..96033c5 100644
--- a/package.json
+++ b/package.json
@@ -2,10 +2,13 @@
"name": "971-Robot-Code",
"license": "MIT",
"devDependencies": {
- "@bazel/bazel": "^0.29.0",
"@types/flatbuffers": "latest",
- "@bazel/ibazel": "^0.10.3",
- "@bazel/typescript": "^0.37.0",
- "typescript": "^3.1.6"
+ "@bazel/typescript": "latest",
+ "@bazel/rollup": "latest",
+ "@bazel/terser": "latest",
+ "@rollup/plugin-node-resolve": "latest",
+ "typescript": "latest",
+ "rollup": "latest",
+ "terser": "latest"
}
}
diff --git a/rollup.config.js b/rollup.config.js
new file mode 100644
index 0000000..6bcc548
--- /dev/null
+++ b/rollup.config.js
@@ -0,0 +1,6 @@
+import { nodeResolve } from '@rollup/plugin-node-resolve';
+
+export default {
+ context: "window",
+ plugins: [nodeResolve()]
+};
diff --git a/third_party/flatbuffers/build_defs.bzl b/third_party/flatbuffers/build_defs.bzl
index 5994848..5add25f 100644
--- a/third_party/flatbuffers/build_defs.bzl
+++ b/third_party/flatbuffers/build_defs.bzl
@@ -5,7 +5,7 @@
Rules for building C++ flatbuffers with Bazel.
"""
-load("@npm_bazel_typescript//:defs.bzl", "ts_library")
+load("@npm//@bazel/typescript:index.bzl", "ts_library")
flatc_path = "@com_github_google_flatbuffers//:flatc"
diff --git a/third_party/flatbuffers/include/flatbuffers/code_generators.h b/third_party/flatbuffers/include/flatbuffers/code_generators.h
index d64ab03..270c061 100644
--- a/third_party/flatbuffers/include/flatbuffers/code_generators.h
+++ b/third_party/flatbuffers/include/flatbuffers/code_generators.h
@@ -133,10 +133,13 @@
// Ensure that a type is prefixed with its namespace even within
// its own namespace to avoid conflict between generated method
// names and similarly named classes or structs
+ // frc971 modifications: Add the `js_ts` flag to tweak the behaviour for
+ // TypeScript. We can't have a class called `Object`. We modify it to be
+ // `ObjectGenerated`.
std::string WrapInNameSpace(const Namespace *ns,
- const std::string &name) const;
+ const std::string &name, bool js_ts = false) const;
- std::string WrapInNameSpace(const Definition &def) const;
+ std::string WrapInNameSpace(const Definition &def, bool js_ts = false) const;
std::string GetNameSpace(const Definition &def) const;
diff --git a/third_party/flatbuffers/src/code_generators.cpp b/third_party/flatbuffers/src/code_generators.cpp
index 46d65f7..30f8cb3 100644
--- a/third_party/flatbuffers/src/code_generators.cpp
+++ b/third_party/flatbuffers/src/code_generators.cpp
@@ -120,15 +120,21 @@
// Ensure that a type is prefixed with its namespace.
std::string BaseGenerator::WrapInNameSpace(const Namespace *ns,
- const std::string &name) const {
+ const std::string &name,
+ bool js_ts) const {
std::string qualified_name = qualifying_start_;
for (auto it = ns->components.begin(); it != ns->components.end(); ++it)
qualified_name += *it + qualifying_separator_;
- return qualified_name + name;
+ std::string result = qualified_name + name;
+ if (js_ts && name == "Object") {
+ result += "Generated";
+ }
+ return result;
}
-std::string BaseGenerator::WrapInNameSpace(const Definition &def) const {
- return WrapInNameSpace(def.defined_namespace, def.name);
+std::string BaseGenerator::WrapInNameSpace(const Definition &def,
+ bool js_ts) const {
+ return WrapInNameSpace(def.defined_namespace, def.name, js_ts);
}
std::string BaseGenerator::GetNameSpace(const Definition &def) const {
diff --git a/third_party/flatbuffers/src/idl_gen_js_ts.cpp b/third_party/flatbuffers/src/idl_gen_js_ts.cpp
index 0240f51..42aea8e 100644
--- a/third_party/flatbuffers/src/idl_gen_js_ts.cpp
+++ b/third_party/flatbuffers/src/idl_gen_js_ts.cpp
@@ -40,6 +40,11 @@
enum AnnotationType { kParam = 0, kType = 1, kReturns = 2 };
+// frc971 modification: We need to rename the `Object` class to `ObjectGenerated`
+// to avoid compilation errors with reserved keywords.
+#define WRAP_IN_NAMESPACE(...) \
+ WrapInNameSpace(__VA_ARGS__, true)
+
const JsTsLanguageParameters &GetJsLangParams(IDLOptions::Language lang) {
static JsTsLanguageParameters js_language_parameters[] = {
{
@@ -353,7 +358,7 @@
exports += "this." + enum_def_name + " = " + enum_def_name + ";\n";
}
}
- code += WrapInNameSpace(enum_def) + (reverse ? "Name" : "") + " = {\n";
+ code += WRAP_IN_NAMESPACE(enum_def) + (reverse ? "Name" : "") + " = {\n";
}
for (auto it = enum_def.Vals().begin(); it != enum_def.Vals().end(); ++it) {
auto &ev = **it;
@@ -433,7 +438,7 @@
if (type.base_type == BASE_TYPE_BOOL) { getter = "!!" + getter; }
if (type.enum_def) {
getter = "/** " +
- GenTypeAnnotation(kType, WrapInNameSpace(*type.enum_def), "",
+ GenTypeAnnotation(kType, WRAP_IN_NAMESPACE(*type.enum_def), "",
false) +
" */ (" + getter + ")";
}
@@ -456,15 +461,15 @@
value.type.base_type != BASE_TYPE_VECTOR) {
if (auto val = value.type.enum_def->FindByValue(value.constant)) {
if (lang_.language == IDLOptions::kTs) {
- return GenPrefixedTypeName(WrapInNameSpace(*value.type.enum_def),
+ return GenPrefixedTypeName(WRAP_IN_NAMESPACE(*value.type.enum_def),
value.type.enum_def->file) +
"." + val->name;
} else {
- return WrapInNameSpace(*value.type.enum_def) + "." + val->name;
+ return WRAP_IN_NAMESPACE(*value.type.enum_def) + "." + val->name;
}
} else {
return "/** " +
- GenTypeAnnotation(kType, WrapInNameSpace(*value.type.enum_def),
+ GenTypeAnnotation(kType, WRAP_IN_NAMESPACE(*value.type.enum_def),
"", false) +
"} */ (" + value.constant + ")";
}
@@ -501,7 +506,7 @@
if (IsString(type)) {
name = "string|Uint8Array";
} else {
- name = WrapInNameSpace(*type.struct_def);
+ name = WRAP_IN_NAMESPACE(*type.struct_def);
}
return (allowNull) ? (name + "|null") : (name);
}
@@ -514,7 +519,7 @@
default:
if (IsScalar(type.base_type)) {
if (type.enum_def) {
- const auto enum_name = WrapInNameSpace(*type.enum_def);
+ const auto enum_name = WRAP_IN_NAMESPACE(*type.enum_def);
return (allowNull) ? (enum_name + "|null") : (enum_name);
}
@@ -744,7 +749,7 @@
imported_files.insert(ev.union_type.struct_def->file);
}
- type = GenPrefixedTypeName(WrapInNameSpace(*(ev.union_type.struct_def)),
+ type = GenPrefixedTypeName(WRAP_IN_NAMESPACE(*(ev.union_type.struct_def)),
ev.union_type.struct_def->file);
} else {
FLATBUFFERS_ASSERT(false);
@@ -775,7 +780,7 @@
type = "string"; // no need to wrap string type in namespace
} else if (ev.union_type.base_type == BASE_TYPE_STRUCT) {
type = GenPrefixedTypeName(
- GetObjApiClassName(WrapInNameSpace(*(ev.union_type.struct_def)),
+ GetObjApiClassName(WRAP_IN_NAMESPACE(*(ev.union_type.struct_def)),
opts),
union_enum.file);
} else {
@@ -820,7 +825,7 @@
}
const auto enum_type = GenPrefixedTypeName(
- WrapInNameSpace(*(union_type.enum_def)), union_type.enum_def->file);
+ WRAP_IN_NAMESPACE(*(union_type.enum_def)), union_type.enum_def->file);
const auto &union_enum = *(union_type.enum_def);
const auto union_enum_loop = [&](const std::string &accessor_str) {
@@ -838,7 +843,7 @@
ret += "return " + accessor_str + "'') as string;";
} else if (ev.union_type.base_type == BASE_TYPE_STRUCT) {
const auto type = GenPrefixedTypeName(
- WrapInNameSpace(*(ev.union_type.struct_def)),
+ WRAP_IN_NAMESPACE(*(ev.union_type.struct_def)),
ev.union_type.struct_def->file);
ret += "return " + accessor_str + "new " + type + "())! as " +
type + ";";
@@ -878,7 +883,7 @@
if (union_type.enum_def) {
const auto &enum_def = *union_type.enum_def;
const auto enum_type =
- GenPrefixedTypeName(WrapInNameSpace(enum_def), enum_def.file);
+ GenPrefixedTypeName(WRAP_IN_NAMESPACE(enum_def), enum_def.file);
const std::string union_accessor = "this." + field_name;
const auto union_has_string = UnionHasStringType(enum_def);
@@ -888,7 +893,7 @@
if (!is_array) {
const auto conversion_function =
- GenPrefixedTypeName(WrapInNameSpace(enum_def.defined_namespace,
+ GenPrefixedTypeName(WRAP_IN_NAMESPACE(enum_def.defined_namespace,
GenUnionConvFuncName(enum_def)),
enum_def.file);
const auto target_enum = "this." + field_name + "Type()";
@@ -904,7 +909,7 @@
ret += " })()";
} else {
const auto conversion_function = GenPrefixedTypeName(
- WrapInNameSpace(enum_def.defined_namespace,
+ WRAP_IN_NAMESPACE(enum_def.defined_namespace,
GenUnionListConvFuncName(enum_def)),
enum_def.file);
const auto target_enum_accesor = "this." + field_name + "Type";
@@ -1008,7 +1013,7 @@
std::string pack_func_create_call;
const auto struct_name =
- GenPrefixedTypeName(WrapInNameSpace(struct_def), struct_def.file);
+ GenPrefixedTypeName(WRAP_IN_NAMESPACE(struct_def), struct_def.file);
if (has_create) {
pack_func_create_call = " return " + struct_name + ".create" +
@@ -1080,7 +1085,7 @@
case BASE_TYPE_STRUCT: {
const auto &sd = *field.value.type.struct_def;
field_type += GenPrefixedTypeName(
- WrapInNameSpace(sd.defined_namespace,
+ WRAP_IN_NAMESPACE(sd.defined_namespace,
GetObjApiClassName(sd, parser.opts)),
field.value.type.struct_def->file);
@@ -1105,7 +1110,7 @@
case BASE_TYPE_STRUCT: {
const auto &sd = *field.value.type.struct_def;
field_type += GenPrefixedTypeName(
- WrapInNameSpace(sd.defined_namespace,
+ WRAP_IN_NAMESPACE(sd.defined_namespace,
GetObjApiClassName(sd, parser.opts)),
field.value.type.struct_def->file);
field_type += ")[]";
@@ -1118,12 +1123,12 @@
field_offset_decl =
"builder.createStructOffsetList(this." + field_name +
", " +
- GenPrefixedTypeName(WrapInNameSpace(struct_def),
+ GenPrefixedTypeName(WRAP_IN_NAMESPACE(struct_def),
struct_def.file) +
".start" + MakeCamel(field_name) + "Vector)";
} else {
field_offset_decl =
- GenPrefixedTypeName(WrapInNameSpace(struct_def),
+ GenPrefixedTypeName(WRAP_IN_NAMESPACE(struct_def),
struct_def.file) +
".create" + MakeCamel(field_name) +
"Vector(builder, builder.createObjectOffsetList(" +
@@ -1139,7 +1144,7 @@
field_binded_method + ", this." + field_name +
"Length())";
field_offset_decl =
- GenPrefixedTypeName(WrapInNameSpace(struct_def),
+ GenPrefixedTypeName(WRAP_IN_NAMESPACE(struct_def),
struct_def.file) +
".create" + MakeCamel(field_name) +
"Vector(builder, builder.createObjectOffsetList(" +
@@ -1154,7 +1159,7 @@
field_val = GenUnionValTS(field_name, vectortype, true);
field_offset_decl =
- GenPrefixedTypeName(WrapInNameSpace(struct_def),
+ GenPrefixedTypeName(WRAP_IN_NAMESPACE(struct_def),
struct_def.file) +
".create" + MakeCamel(field_name) +
"Vector(builder, builder.createObjectOffsetList(" +
@@ -1180,7 +1185,7 @@
"Length())";
field_offset_decl =
- GenPrefixedTypeName(WrapInNameSpace(struct_def),
+ GenPrefixedTypeName(WRAP_IN_NAMESPACE(struct_def),
struct_def.file) +
".create" + MakeCamel(field_name) +
"Vector(builder, this." + field_name + ")";
@@ -1314,11 +1319,17 @@
// Emit constructor
if (lang_.language == IDLOptions::kTs) {
object_name = struct_def.name;
+ if (object_name == "Object") {
+ object_name += "Generated";
+ }
GenDocComment(struct_def.doc_comment, code_ptr, "@constructor");
if (!object_namespace.empty()) {
code += "export namespace " + object_namespace + "{\n";
}
code += "export class " + struct_def.name;
+ if (struct_def.name.compare("Object") == 0) {
+ code += "Generated";
+ }
code += " {\n";
if (lang_.language != IDLOptions::kTs) {
code += " /**\n";
@@ -1336,7 +1347,7 @@
code += " bb_pos:number = 0;\n";
} else {
bool isStatement = struct_def.defined_namespace->components.empty();
- object_name = WrapInNameSpace(struct_def);
+ object_name = WRAP_IN_NAMESPACE(struct_def);
GenDocComment(struct_def.doc_comment, code_ptr, "@constructor");
if (isStatement) {
if (parser_.opts.use_goog_js_export_format) {
@@ -1485,7 +1496,7 @@
else {
switch (field.value.type.base_type) {
case BASE_TYPE_STRUCT: {
- auto type = WrapInNameSpace(*field.value.type.struct_def);
+ auto type = WRAP_IN_NAMESPACE(*field.value.type.struct_def);
GenDocComment(
field.doc_comment, code_ptr,
GenTypeAnnotation(kParam, type + "=", "obj") +
@@ -1628,7 +1639,7 @@
if (field.value.type.enum_def) {
code += "/** " +
GenTypeAnnotation(
- kType, WrapInNameSpace(*field.value.type.enum_def),
+ kType, WRAP_IN_NAMESPACE(*field.value.type.enum_def),
"", false) +
" */ (" + field.value.constant + ")";
} else {
@@ -1802,7 +1813,7 @@
} else {
code += object_name + ".getFullyQualifiedName = function() {\n";
}
- code += " return '" + WrapInNameSpace(struct_def) + "';\n";
+ code += " return '" + WRAP_IN_NAMESPACE(struct_def) + "';\n";
code += "}\n\n";
}
@@ -2053,8 +2064,12 @@
}
if (lang_.language == IDLOptions::kTs) {
+ std::string methodPrefix = struct_def.name;
+ if (methodPrefix == "Object") {
+ methodPrefix += "Generated";
+ }
code += "):flatbuffers.Offset {\n";
- code += " " + struct_def.name + ".start" + Verbose(struct_def) +
+ code += " " + methodPrefix + ".start" + Verbose(struct_def) +
"(builder);\n";
} else {
code += ") {\n";
@@ -2064,6 +2079,9 @@
std::string methodPrefix =
lang_.language == IDLOptions::kTs ? struct_def.name : object_name;
+ if (methodPrefix == "Object") {
+ methodPrefix += "Generated";
+ }
for (auto it = struct_def.fields.vec.begin();
it != struct_def.fields.vec.end(); ++it) {
const auto &field = **it;
diff --git a/third_party/flatbuffers/ts/BUILD b/third_party/flatbuffers/ts/BUILD
index 2787fbc..05d20bf 100644
--- a/third_party/flatbuffers/ts/BUILD
+++ b/third_party/flatbuffers/ts/BUILD
@@ -1,4 +1,4 @@
-load("@npm_bazel_typescript//:defs.bzl", "ts_library")
+load("@npm//@bazel/typescript:index.bzl", "ts_library")
ts_library(
name = "flatbuffers_ts",
diff --git a/tools/build_rules/js.bzl b/tools/build_rules/js.bzl
new file mode 100644
index 0000000..a014d13
--- /dev/null
+++ b/tools/build_rules/js.bzl
@@ -0,0 +1,61 @@
+load("@build_bazel_rules_nodejs//:providers.bzl", "JSModuleInfo")
+load("@npm//@bazel/rollup:index.bzl", upstream_rollup_bundle = "rollup_bundle")
+load("@npm//@bazel/terser:index.bzl", "terser_minified")
+
+def rollup_bundle(name, deps, visibility = None, **kwargs):
+ """Calls the upstream rollup_bundle() and exposes a .min.js file.
+
+ Legacy version of rollup_bundle() used to provide the .min.js file. This
+ wrapper provides the same interface by explicitly exposing a .min.js file.
+ """
+ upstream_rollup_bundle(
+ name = name,
+ visibility = visibility,
+ deps = deps + [
+ "@npm//@rollup/plugin-node-resolve",
+ ],
+ config_file = "//:rollup.config.js",
+ link_workspace_root = True,
+ **kwargs
+ )
+
+ terser_minified(
+ name = name + "__min",
+ src = name + ".js",
+ )
+
+ # Copy the __min.js file (a declared output inside the rule) so that it's a
+ # pre-declared output and publicly visible. I.e. via attr.output() below.
+ _expose_minified_js(
+ name = name + "__min_exposed",
+ src = ":%s__min" % name,
+ out = name + ".min.js",
+ visibility = visibility,
+ )
+
+def _expose_minified_js_impl(ctx):
+ """Copies the .min.js file in order to make it publicly accessible."""
+ sources = ctx.attr.src[JSModuleInfo].sources.to_list()
+ min_js = None
+ for src in sources:
+ if src.basename.endswith("__min.js"):
+ min_js = src
+ break
+
+ if min_js == None:
+ fail("Couldn't find .min.js in " + str(ctx.attr.src))
+
+ ctx.actions.run(
+ inputs = [min_js],
+ outputs = [ctx.outputs.out],
+ executable = "cp",
+ arguments = [min_js.path, ctx.outputs.out.path],
+ )
+
+_expose_minified_js = rule(
+ implementation = _expose_minified_js_impl,
+ attrs = {
+ "src": attr.label(providers = [JSModuleInfo]),
+ "out": attr.output(mandatory = True),
+ },
+)
diff --git a/tsconfig.json b/tsconfig.json
index ed8f3dc..aed3439 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,7 +4,8 @@
"strict": false,
"noImplicitAny": false,
"target": "es6",
- "lib": ["es6", "dom", "dom.iterable"]
+ "lib": ["es6", "dom", "dom.iterable"],
+ "moduleResolution": "node"
},
"bazelOptions": {
"workspaceName": "971-Robot-Code"
diff --git a/y2019/vision/server/BUILD b/y2019/vision/server/BUILD
index 3952676..93172b4 100644
--- a/y2019/vision/server/BUILD
+++ b/y2019/vision/server/BUILD
@@ -1,7 +1,7 @@
load("//aos/seasocks:gen_embedded.bzl", "gen_embedded")
load("@com_google_protobuf//:protobuf.bzl", "cc_proto_library")
load("//frc971/downloader:downloader.bzl", "aos_downloader_dir")
-load("@npm_bazel_typescript//:defs.bzl", "ts_library")
+load("@npm//@bazel/typescript:index.bzl", "ts_library")
ts_library(
name = "demo",
diff --git a/y2019/vision/server/www/BUILD b/y2019/vision/server/www/BUILD
index 62c1f13..7c40eaa 100644
--- a/y2019/vision/server/www/BUILD
+++ b/y2019/vision/server/www/BUILD
@@ -1,5 +1,5 @@
-load("@npm_bazel_typescript//:defs.bzl", "ts_library")
-load("@build_bazel_rules_nodejs//:defs.bzl", "rollup_bundle")
+load("@npm//@bazel/typescript:index.bzl", "ts_library")
+load("//tools/build_rules:js.bzl", "rollup_bundle")
package(default_visibility = ["//visibility:public"])
@@ -35,7 +35,6 @@
rollup_bundle(
name = "visualizer_bundle",
- enable_code_splitting = False,
entry_point = "main.ts",
target_compatible_with = ["@platforms//os:linux"],
deps = [
diff --git a/y2019/vision/server/www/main.ts b/y2019/vision/server/www/main.ts
index 9e90563..0b2937c 100644
--- a/y2019/vision/server/www/main.ts
+++ b/y2019/vision/server/www/main.ts
@@ -51,7 +51,8 @@
const socket = new WebSocket(`ws://${server}/ws`);
socket.addEventListener('message', (event) => {
- const j = JSON.parse(event.data);
+ // data is a proto which we don't currently have TS support for.
+ const j = JSON.parse(event.data) as any;
this.x = j.robotPose.x;
this.y = j.robotPose.y;
this.theta = j.robotPose.theta;
diff --git a/y2020/control_loops/drivetrain/BUILD b/y2020/control_loops/drivetrain/BUILD
index 570f0c1..56ac3a9 100644
--- a/y2020/control_loops/drivetrain/BUILD
+++ b/y2020/control_loops/drivetrain/BUILD
@@ -1,6 +1,6 @@
load("@com_github_google_flatbuffers//:build_defs.bzl", "flatbuffer_cc_library", "flatbuffer_ts_library")
load("//aos:config.bzl", "aos_config")
-load("@npm_bazel_typescript//:defs.bzl", "ts_library")
+load("@npm//@bazel/typescript:index.bzl", "ts_library")
genrule(
name = "genrule_drivetrain",
diff --git a/y2020/control_loops/superstructure/BUILD b/y2020/control_loops/superstructure/BUILD
index 74ccece..abf24fc 100644
--- a/y2020/control_loops/superstructure/BUILD
+++ b/y2020/control_loops/superstructure/BUILD
@@ -1,5 +1,5 @@
load("@com_github_google_flatbuffers//:build_defs.bzl", "flatbuffer_cc_library", "flatbuffer_ts_library")
-load("@npm_bazel_typescript//:defs.bzl", "ts_library")
+load("@npm//@bazel/typescript:index.bzl", "ts_library")
package(default_visibility = ["//visibility:public"])
diff --git a/y2020/www/BUILD b/y2020/www/BUILD
index cdfd9d7..27c0392 100644
--- a/y2020/www/BUILD
+++ b/y2020/www/BUILD
@@ -1,5 +1,5 @@
-load("@npm_bazel_typescript//:defs.bzl", "ts_library")
-load("@build_bazel_rules_nodejs//:defs.bzl", "rollup_bundle")
+load("@npm//@bazel/typescript:index.bzl", "ts_library")
+load("//tools/build_rules:js.bzl", "rollup_bundle")
load("//frc971/downloader:downloader.bzl", "aos_downloader_dir")
ts_library(
@@ -44,7 +44,6 @@
rollup_bundle(
name = "camera_main_bundle",
- enable_code_splitting = False,
entry_point = "camera_main.ts",
target_compatible_with = ["@platforms//os:linux"],
visibility = ["//y2020:__subpackages__"],
@@ -55,7 +54,6 @@
rollup_bundle(
name = "field_main_bundle",
- enable_code_splitting = False,
entry_point = "field_main.ts",
target_compatible_with = ["@platforms//os:linux"],
visibility = ["//y2020:__subpackages__"],
diff --git a/y2021_bot3/control_loops/superstructure/BUILD b/y2021_bot3/control_loops/superstructure/BUILD
index c6b36a1..8266edc 100644
--- a/y2021_bot3/control_loops/superstructure/BUILD
+++ b/y2021_bot3/control_loops/superstructure/BUILD
@@ -1,5 +1,5 @@
load("@com_github_google_flatbuffers//:build_defs.bzl", "flatbuffer_cc_library")
-load("@npm_bazel_typescript//:defs.bzl", "ts_library")
+load("@npm//@bazel/typescript:index.bzl", "ts_library")
package(default_visibility = ["//visibility:public"])
diff --git a/yarn.lock b/yarn.lock
index 821a804..dc90302 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,51 +2,35 @@
# yarn lockfile v1
-"@bazel/bazel-darwin_x64@0.29.0":
- version "0.29.0"
- resolved "https://registry.yarnpkg.com/@bazel/bazel-darwin_x64/-/bazel-darwin_x64-0.29.0.tgz#d2ebcb95bc66031b0545dd8b0e597b3aa5b9024b"
- integrity sha512-q6snNakVA3wzv3VIuFlsw3/xcB/ygsAMhkigsuZXv1yHmwnuBOI4UJ2r2+Ttc4HPHflS0aWuI/raHDq81vBYKw==
-
-"@bazel/bazel-linux_x64@0.29.0":
- version "0.29.0"
- resolved "https://registry.yarnpkg.com/@bazel/bazel-linux_x64/-/bazel-linux_x64-0.29.0.tgz#95250ad8463425bec81a95736056f432c186cb9d"
- integrity sha512-QxWdtlsFKMi3SJ++osjA8QQbWOlGZXU0/TtUTiswsRwWdOEwZhOa2c1ljIQY5QBgzc3CCh2clRnkjWQj0/V/Dw==
-
-"@bazel/bazel-win32_x64@0.29.0":
- version "0.29.0"
- resolved "https://registry.yarnpkg.com/@bazel/bazel-win32_x64/-/bazel-win32_x64-0.29.0.tgz#62af30d4ccf0a31e656a6ac9337e928d29a4598d"
- integrity sha512-r0DhNarJrzzcXrvRbey43hGVO4J2QBAS43VrgjrxVw+1kyjKkIOQIh3wKr/OKx2jKOX0y3hCrLpL/aivHqub4g==
-
-"@bazel/bazel@^0.29.0":
- version "0.29.0"
- resolved "https://registry.yarnpkg.com/@bazel/bazel/-/bazel-0.29.0.tgz#bf4ecf47d6e67e8df8d342d24c146bd732d78640"
- integrity sha512-OBxPv+V73PtADVG4qsGJ7Zj0wJrJorRbHgYE8qsRBNKls6e6rf0jkjSIQvAvP1Dyt7x4MGyhIzzK/5IsPeQZIA==
+"@bazel/rollup@latest":
+ version "4.4.6"
+ resolved "https://registry.yarnpkg.com/@bazel/rollup/-/rollup-4.4.6.tgz#936d34c9c8159d42f84f1ac3c9ebb1bed27f691a"
+ integrity sha512-VujfM6QGuNpQZVzOf2nfAi3Xoi4EdA9nXXy6Gq4WiSaDPbgZrlXl/4Db+Hb6Nej5uvWqqppgvigCPHcWX9yM/w==
dependencies:
- "@bazel/hide-bazel-files" latest
- optionalDependencies:
- "@bazel/bazel-darwin_x64" "0.29.0"
- "@bazel/bazel-linux_x64" "0.29.0"
- "@bazel/bazel-win32_x64" "0.29.0"
+ "@bazel/worker" "4.4.6"
-"@bazel/hide-bazel-files@latest":
- version "0.37.0"
- resolved "https://registry.yarnpkg.com/@bazel/hide-bazel-files/-/hide-bazel-files-0.37.0.tgz#3c30a3f64f0b976c8c0e8dd236b0f26db0f6f860"
- integrity sha512-aVReQa7UxWjBNTsZTAmFKHujTaDxlMUEq2BgvP7mYp1nnZjsCI30SjzPkTn77Ghw4/lK8lhht7AdfWPQp271pQ==
+"@bazel/terser@latest":
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/@bazel/terser/-/terser-4.5.0.tgz#f5fe56b5e398d2a7f5ae8db0463b5f00cdc4e6dc"
+ integrity sha512-CEjCwZCag8HpDi8d56rVSS0DRn/AzhDZqzM8G5+j2V+cyhn8Iv+yHLqMb4oOZ3Z4XMZQzw+MnHGv2MGvtOyvvw==
-"@bazel/ibazel@^0.10.3":
- version "0.10.3"
- resolved "https://registry.yarnpkg.com/@bazel/ibazel/-/ibazel-0.10.3.tgz#2e2b8a1d3e885946eac41db2b1aa6801fb319887"
- integrity sha512-v1nXbMTHVlMM4z4uWp6XiRoHAyUlYggF1SOboLLWRp0+D22kWixqArWqnozLw2mOtnxr97BdLjluWiho6A8Hjg==
-
-"@bazel/typescript@^0.37.0":
- version "0.37.0"
- resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-0.37.0.tgz#9213d963cf132db614a9780b87815cda256a3e14"
- integrity sha512-4Pz5x87ihPjKQxo/XMfFXJeGHiNEOdaIqLOqzuIXbwczJvMxPKMwnXzikr9XkjHrHs26zZo4iMtXALqW2j7C5w==
+"@bazel/typescript@latest":
+ version "4.4.6"
+ resolved "https://registry.yarnpkg.com/@bazel/typescript/-/typescript-4.4.6.tgz#fbaac22460b3aa4a0961c6c657d239af8f895778"
+ integrity sha512-J205En8MjmnWSPnz4CqJm1x4mzcdWM+HvAsOzzVb0DHx86O+mjPFwqleeAtPGLTE9aWskel81XICJfEuTlNtiw==
dependencies:
+ "@bazel/worker" "4.4.6"
protobufjs "6.8.8"
semver "5.6.0"
source-map-support "0.5.9"
- tsutils "2.27.2"
+ tsutils "3.21.0"
+
+"@bazel/worker@4.4.6":
+ version "4.4.6"
+ resolved "https://registry.yarnpkg.com/@bazel/worker/-/worker-4.4.6.tgz#c9122c8ec765f62dc723203270a3c913caf8826a"
+ integrity sha512-1Sk0FGIc1m9rFwXhCnm46XDRng88vAnY1FBb7OQPonha/kuxjZTpPDP7q2ndSkqDNyCFKp94cPUFUT58Fgqvfw==
+ dependencies:
+ google-protobuf "^3.6.1"
"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2":
version "1.1.2"
@@ -101,6 +85,32 @@
resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570"
integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=
+"@rollup/plugin-node-resolve@latest":
+ version "13.1.3"
+ resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.1.3.tgz#2ed277fb3ad98745424c1d2ba152484508a92d79"
+ integrity sha512-BdxNk+LtmElRo5d06MGY4zoepyrXX1tkzX2hrnPEZ53k78GuOMWLqmJDGIIOPwVRIFZrLQOo+Yr6KtCuLIA0AQ==
+ dependencies:
+ "@rollup/pluginutils" "^3.1.0"
+ "@types/resolve" "1.17.1"
+ builtin-modules "^3.1.0"
+ deepmerge "^4.2.2"
+ is-module "^1.0.0"
+ resolve "^1.19.0"
+
+"@rollup/pluginutils@^3.1.0":
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b"
+ integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==
+ dependencies:
+ "@types/estree" "0.0.39"
+ estree-walker "^1.0.1"
+ picomatch "^2.2.2"
+
+"@types/estree@0.0.39":
+ version "0.0.39"
+ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f"
+ integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==
+
"@types/flatbuffers@latest":
version "1.10.0"
resolved "https://registry.yarnpkg.com/@types/flatbuffers/-/flatbuffers-1.10.0.tgz#aa74e30ffdc86445f2f060e1808fc9d56b5603ba"
@@ -111,20 +121,96 @@
resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.0.tgz#719551d2352d301ac8b81db732acb6bdc28dbdef"
integrity sha512-1w52Nyx4Gq47uuu0EVcsHBxZFJgurQ+rTKS3qMHxR1GY2T8c2AJYd6vZoZ9q1rupaDjU0yT+Jc2XTyXkjeMA+Q==
+"@types/node@*":
+ version "17.0.8"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.8.tgz#50d680c8a8a78fe30abe6906453b21ad8ab0ad7b"
+ integrity sha512-YofkM6fGv4gDJq78g4j0mMuGMkZVxZDgtU0JRdx6FgiJDG+0fY0GKVolOV8WqVmEhLCXkQRjwDdKyPxJp/uucg==
+
"@types/node@^10.1.0":
version "10.14.18"
resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.18.tgz#b7d45fc950e6ffd7edc685e890d13aa7b8535dce"
integrity sha512-ryO3Q3++yZC/+b8j8BdKd/dn9JlzlHBPdm80656xwYUdmPkpTGTjkAdt6BByiNupGPE8w0FhBgvYy/fX9hRNGQ==
+"@types/resolve@1.17.1":
+ version "1.17.1"
+ resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6"
+ integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==
+ dependencies:
+ "@types/node" "*"
+
buffer-from@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
+builtin-modules@^3.1.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887"
+ integrity sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==
+
+commander@^2.20.0:
+ version "2.20.3"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
+ integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
+
+deepmerge@^4.2.2:
+ version "4.2.2"
+ resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
+ integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
+
+estree-walker@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700"
+ integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==
+
+fsevents@~2.3.2:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
+ integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
+
+function-bind@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
+ integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
+
+google-protobuf@^3.6.1:
+ version "3.19.1"
+ resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.19.1.tgz#5af5390e8206c446d8f49febaffd4b7f4ac28f41"
+ integrity sha512-Isv1RlNC+IzZzilcxnlVSf+JvuhxmY7DaxYCBy+zPS9XVuJRtlTTIXR9hnZ1YL1MMusJn/7eSy2swCzZIomQSg==
+
+has@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
+ integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
+ dependencies:
+ function-bind "^1.1.1"
+
+is-core-module@^2.8.0:
+ version "2.8.1"
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211"
+ integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==
+ dependencies:
+ has "^1.0.3"
+
+is-module@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591"
+ integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=
+
long@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28"
integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==
+path-parse@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
+ integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
+
+picomatch@^2.2.2:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
+ integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
+
protobufjs@6.8.8:
version "6.8.8"
resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.8.8.tgz#c8b4f1282fd7a90e6f5b109ed11c84af82908e7c"
@@ -144,6 +230,22 @@
"@types/node" "^10.1.0"
long "^4.0.0"
+resolve@^1.19.0:
+ version "1.21.0"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.21.0.tgz#b51adc97f3472e6a5cf4444d34bc9d6b9037591f"
+ integrity sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==
+ dependencies:
+ is-core-module "^2.8.0"
+ path-parse "^1.0.7"
+ supports-preserve-symlinks-flag "^1.0.0"
+
+rollup@latest:
+ version "2.60.2"
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.60.2.tgz#3f45ace36a9b10b4297181831ea0719922513463"
+ integrity sha512-1Bgjpq61sPjgoZzuiDSGvbI1tD91giZABgjCQBKM5aYLnzjq52GoDuWVwT/cm/MCxCMPU8gqQvkj8doQ5C8Oqw==
+ optionalDependencies:
+ fsevents "~2.3.2"
+
semver@5.6.0:
version "5.6.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004"
@@ -156,20 +258,49 @@
buffer-from "^1.0.0"
source-map "^0.6.0"
+source-map-support@~0.5.20:
+ version "0.5.21"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
+ integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
+ dependencies:
+ buffer-from "^1.0.0"
+ source-map "^0.6.0"
+
source-map@^0.6.0:
version "0.6.1"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
+source-map@~0.7.2:
+ version "0.7.3"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
+ integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
+
+supports-preserve-symlinks-flag@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
+ integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
+
+terser@latest:
+ version "5.10.0"
+ resolved "https://registry.yarnpkg.com/terser/-/terser-5.10.0.tgz#b86390809c0389105eb0a0b62397563096ddafcc"
+ integrity sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==
+ dependencies:
+ commander "^2.20.0"
+ source-map "~0.7.2"
+ source-map-support "~0.5.20"
+
tslib@^1.8.1:
version "1.9.3"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286"
-tsutils@2.27.2:
- version "2.27.2"
- resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.27.2.tgz#60ba88a23d6f785ec4b89c6e8179cac9b431f1c7"
+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"
-typescript@^3.1.6:
- version "3.1.6"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.1.6.tgz#b6543a83cfc8c2befb3f4c8fba6896f5b0c9be68"
+typescript@latest:
+ version "4.5.2"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.2.tgz#8ac1fba9f52256fdb06fb89e4122fa6a346c2998"
+ integrity sha512-5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw==