"""Rules/toolchains for components with Bazel.""" module( name = "components", ) bazel_dep(name = "yq.bzl", version = "0.4.0") bazel_dep(name = "rules_nodejs", version = "6.7.7") bazel_dep(name = "aspect_rules_js", version = "3.6.0") bazel_dep(name = "rules_pkg", version = "1.3.0") bazel_dep(name = "tar.bzl", version = "0.10.9") bazel_dep(name = "bazel_lib", version = "3.8.0") bazel_dep(name = "aspect_rules_esbuild", version = "0.27.1") bazel_dep(name = "aspect_rules_jasmine", version = "2.0.4") bazel_dep(name = "platforms", version = "1.1.0") bazel_dep(name = "aspect_rules_ts", version = "3.10.1") bazel_dep(name = "bazel_skylib", version = "1.9.2") bazel_dep(name = "rules_browsers") git_override( module_name = "rules_browsers", commit = "6c0b598bef709b8d3ec603c733a1b18d073b191b", remote = "https://github.com/angular/rules_browsers.git", ) bazel_dep(name = "rules_sass") git_override( module_name = "rules_sass", commit = "53391fc5b8d1e1c5506801b9a54f4a298665578e", remote = "https://github.com/angular/rules_sass.git", ) bazel_dep(name = "rules_angular") git_override( module_name = "rules_angular", commit = "e5cb4c388495711d194f2d686cb0f0f69fd3bd54", remote = "https://github.com/angular/rules_angular.git", ) bazel_dep(name = "devinfra") git_override( module_name = "devinfra", commit = "4915333b8fd3bb24085df356cde085edf2d7db89", remote = "https://github.com/angular/dev-infra.git", ) yq = use_extension("@yq.bzl//yq:extensions.bzl", "yq") use_repo(yq, "yq_toolchains") rules_ts_ext = use_extension("@aspect_rules_ts//ts:extensions.bzl", "ext") rules_ts_ext.deps( name = "components_npm_typescript", # Obtained by: curl --silent https://registry.npmjs.org/typescript/6.0.2 | jq -r '.dist.integrity' ts_integrity = "sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==", ts_version = "6.0.2", ) use_repo(rules_ts_ext, **{"npm_typescript": "components_npm_typescript"}) node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node") node.toolchain( node_repositories = { "22.23.4-darwin_arm64": ("node-v22.23.4-darwin-arm64.tar.gz", "node-v22.23.4-darwin-arm64", "c9e1dbc748b33ed2d14f42445191ecaf14c56259c7a9a26d0042c49ec2b66428"), "22.23.4-darwin_amd64": ("node-v22.23.4-darwin-x64.tar.gz", "node-v22.23.4-darwin-x64", "efcc2b0db6f94bf53eddb038fe2b370277a042bd29e4f19b8f8e23598795b819"), "22.23.4-linux_arm64": ("node-v22.23.4-linux-arm64.tar.xz", "node-v22.23.4-linux-arm64", "6287aa46b6c375d816e63ae66d024fbbfd70404825aabdfdf898a970871d2f4b"), "22.23.4-linux_ppc64le": ("node-v22.23.4-linux-ppc64le.tar.xz", "node-v22.23.4-linux-ppc64le", "e4732f45e0cad787d6ba70c4eb6db45dbdb3f286f67dee429dbc6b4ff36eac43"), "22.23.4-linux_s390x": ("node-v22.23.4-linux-s390x.tar.xz", "node-v22.23.4-linux-s390x", "07ae074fc218fc42e24c939df0dc0209443fb08eb5b2ed6d26b1bf6757781fff"), "22.23.4-linux_amd64": ("node-v22.23.4-linux-x64.tar.xz", "node-v22.23.4-linux-x64", "1805bcd35e6815559bd2eb97db438d3fdb0eb3a5e6a977b7c1badca76337e9ce"), "22.23.4-windows_amd64": ("node-v22.23.4-win-x64.zip", "node-v22.23.4-win-x64", "cbc74b5e0982c9dbb41525fd8fb5dcd32fbee237863f7829072f4639a1ce5f20"), }, node_version = "22.23.4", ) use_repo(node, "nodejs_toolchains") pnpm = use_extension("@aspect_rules_js//npm:extensions.bzl", "pnpm") pnpm.pnpm( name = "pnpm", pnpm_version = "11.28.6", pnpm_version_integrity = "sha512-VdkDkMOzkELxUFoml3ifAlbG2Vuyi918tzGvGIfJ8mKe9YGsufTk7HcgJMggPCrtIqAymblxA/3PMmaOkF0AJA==", ) use_repo(pnpm, "pnpm") npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm") npm.npm_translate_lock( name = "npm", custom_postinstalls = { "@angular/common": "node ../../@nginfra/angular-linking/index.mjs", "@angular/forms": "node ../../@nginfra/angular-linking/index.mjs", "@angular/localize": "node ../../@nginfra/angular-linking/index.mjs", "@angular/platform-browser": "node ../../@nginfra/angular-linking/index.mjs", "@angular/platform-server": "node ../../@nginfra/angular-linking/index.mjs", "@angular/router": "node ../../@nginfra/angular-linking/index.mjs", }, data = [ "//:package.json", "//:pnpm-workspace.yaml", "//integration:package.json", "//src/aria:package.json", "//src/cdk:package.json", "//src/cdk-experimental:package.json", "//src/components-examples:package.json", "//src/dev-app:package.json", "//src/e2e-app:package.json", "//src/google-maps:package.json", "//src/material:package.json", "//src/material-date-fns-adapter:package.json", "//src/material-experimental:package.json", "//src/material-luxon-adapter:package.json", "//src/material-moment-adapter:package.json", "//src/universal-app:package.json", "//src/youtube-player:package.json", ], package_visibility = { "@angular/aria": [ "//integration:__subpackages__", "//docs:__subpackages__", "//src/components-examples:__subpackages__", "//src/dev-app:__subpackages__", ], "@angular/cdk": [ "//docs:__subpackages__", "//integration:__subpackages__", "//src/aria:__subpackages__", "//src/cdk-experimental:__subpackages__", "//src/components-examples:__subpackages__", "//src/dev-app:__subpackages__", "//src/material-experimental:__subpackages__", "//src/material:__subpackages__", "//src/e2e-app:__subpackages__", ], "@angular/cdk-experimental": [ "//docs:__subpackages__", "//integration:__subpackages__", "//src/components-examples:__subpackages__", "//src/dev-app:__subpackages__", "//src/material-experimental:__subpackages__", "//src/e2e-app:__subpackages__", ], "@angular/material": [ "//docs:__subpackages__", "//integration:__subpackages__", "//src/components-examples:__subpackages__", "//src/dev-app:__subpackages__", "//src/material-experimental:__subpackages__", "//src/material-moment-adapter:__subpackages__", "//src/e2e-app:__subpackages__", ], "@angular/material-experimental": [ "//integration:__subpackages__", "//docs:__subpackages__", "//src/components-examples:__subpackages__", "//src/dev-app:__subpackages__", ], "@angular/google-maps": [ "//integration:__subpackages__", "//docs:__subpackages__", "//src/dev-app:__subpackages__", ], "@angular/youtube-player": [ "//integration:__subpackages__", "//docs:__subpackages__", "//src/dev-app:__subpackages__", ], "@angular/material-moment-adapter": [ "//integration:__subpackages__", "//docs:__subpackages__", ], "@angular/material-date-fns-adapter": [ "//integration:__subpackages__", "//docs:__subpackages__", "//src/components-examples:__subpackages__", ], "@angular/material-luxon-adapter": [ "//integration:__subpackages__", "//docs:__subpackages__", "//src/components-examples:__subpackages__", ], }, pnpm_lock = "//:pnpm-lock.yaml", ) use_repo(npm, "npm") rules_angular = use_extension("@rules_angular//setup:extensions.bzl", "rules_angular") rules_angular.setup( name = "components_rules_angular_configurable_deps", angular_compiler_cli = "//:node_modules/@angular/compiler-cli", typescript = "//:node_modules/typescript", ) use_repo(rules_angular, **{"rules_angular_configurable_deps": "components_rules_angular_configurable_deps"})