"aspect-build/rules_js"

module(
    name = "aspect_rules_js",
    bazel_compatibility = [">=6.0.0"],
    compatibility_level = 1,
)

# Lower-bounds (minimum) versions for direct runtime dependencies.
# Do not bump these unless rules_js requires a newer version to function.
bazel_dep(name = "aspect_bazel_lib", version = "2.17.1")  # TODO(alexeagle): remove
bazel_dep(name = "aspect_tools_telemetry", version = "0.3.3")
bazel_dep(name = "bazel_features", version = "1.9.0")
bazel_dep(name = "bazel_lib", version = "3.0.0")
bazel_dep(name = "bazel_skylib", version = "1.5.0")
bazel_dep(name = "platforms", version = "0.0.5")
bazel_dep(name = "rules_nodejs", version = "6.3.0")
bazel_dep(name = "yq.bzl", version = "0.3.2")

tel = use_extension("@aspect_tools_telemetry//:extension.bzl", "telemetry")
use_repo(tel, "aspect_tools_telemetry_report")

node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node")
use_repo(node, "nodejs_toolchains")
use_repo(node, "nodejs_darwin_amd64")
use_repo(node, "nodejs_darwin_arm64")
use_repo(node, "nodejs_linux_amd64")
use_repo(node, "nodejs_linux_arm64")
use_repo(node, "nodejs_linux_ppc64le")
use_repo(node, "nodejs_linux_s390x")
use_repo(node, "nodejs_windows_amd64")

# The default + public version of pnpm used by default.
pnpm = use_extension("@aspect_rules_js//npm:extensions.bzl", "pnpm")
pnpm.pnpm(name = "pnpm")
use_repo(pnpm, "pnpm", "pnpm__links")

bazel_lib_toolchains = use_extension("@aspect_bazel_lib//lib:extensions.bzl", "toolchains")
bazel_lib_toolchains.tar()
use_repo(
    bazel_lib_toolchains,
    "bsd_tar_darwin_amd64",
    "bsd_tar_darwin_arm64",
    "bsd_tar_linux_amd64",
    "bsd_tar_linux_arm64",
    "bsd_tar_toolchains",
    "bsd_tar_windows_amd64",
    "bsd_tar_windows_arm64",
    "coreutils_toolchains",
)

yq_toolchain = use_extension("@yq.bzl//yq:extensions.bzl", "yq")
use_repo(
    yq_toolchain,
    "yq_darwin_amd64",
    "yq_darwin_arm64",
    "yq_linux_amd64",
    "yq_linux_arm64",
    "yq_linux_ppc64le",
    "yq_linux_s390x",
    "yq_windows_amd64",
)

####### Dev dependencies ########

# Dev-only pnpm used for local testing
pnpm10 = use_extension("@aspect_rules_js//npm:extensions.bzl", "pnpm", dev_dependency = True)
pnpm10.pnpm(
    name = "pnpm10",
    pnpm_version = "10.22.0",
    pnpm_version_integrity = "sha512-vwSe/plbKPUn/StBrgR0zikYb37cs79UUIe9Yfu+uyv3U2LRMH/aCcLSiOHkmXh6wS1Py2F6l0cYpgUfLu50HA==",
)
use_repo(pnpm10, "pnpm10")

bazel_dep(name = "bazelrc-preset.bzl", version = "1.3.0", dev_dependency = True)
bazel_dep(name = "aspect_rules_lint", version = "1.1.0", dev_dependency = True)
bazel_dep(name = "buildifier_prebuilt", version = "8.0.1", dev_dependency = True)
bazel_dep(name = "rules_shell", version = "0.6.1", dev_dependency = True)

# Overrides of non-dev deps for local testing using recent versions
archive_override(
    module_name = "rules_nodejs",
    integrity = "sha256-OY23vNcf28WAxvjReCrpn1JQeRFypf/jHS+dgTjzOC4=",
    strip_prefix = "rules_nodejs-7cbb1fb5378fb4739e4d9698a14abd9eada900f0",
    urls = [
        "https://github.com/bazel-contrib/rules_nodejs/archive/7cbb1fb5378fb4739e4d9698a14abd9eada900f0.tar.gz",
    ],
)

host = use_extension(
    "@aspect_bazel_lib//lib:extensions.bzl",
    "host",
    dev_dependency = True,
)
host.host()
use_repo(host, "aspect_bazel_lib_host")

node_dev = use_extension(
    "@rules_nodejs//nodejs:extensions.bzl",
    "node",
    dev_dependency = True,
)
use_repo(node_dev, "node16_linux_amd64")
use_repo(node_dev, "node16_darwin_arm64")
use_repo(node_dev, "node16_darwin_amd64")
use_repo(node_dev, "node16_linux_arm64")
use_repo(node_dev, "node16_linux_s390x")
use_repo(node_dev, "node16_linux_ppc64le")
use_repo(node_dev, "node16_windows_amd64")
use_repo(node_dev, "node18_linux_amd64")
use_repo(node_dev, "node18_darwin_arm64")
use_repo(node_dev, "node18_darwin_amd64")
use_repo(node_dev, "node18_linux_arm64")
use_repo(node_dev, "node18_linux_s390x")
use_repo(node_dev, "node18_linux_ppc64le")
use_repo(node_dev, "node18_windows_amd64")
use_repo(node_dev, "node20_linux_amd64")
use_repo(node_dev, "node20_darwin_arm64")
use_repo(node_dev, "node20_darwin_amd64")
use_repo(node_dev, "node20_linux_arm64")
use_repo(node_dev, "node20_linux_s390x")
use_repo(node_dev, "node20_linux_ppc64le")
use_repo(node_dev, "node20_windows_amd64")
use_repo(node_dev, "node22_linux_amd64")
use_repo(node_dev, "node22_darwin_arm64")
use_repo(node_dev, "node22_darwin_amd64")
use_repo(node_dev, "node22_linux_arm64")
use_repo(node_dev, "node22_linux_s390x")
use_repo(node_dev, "node22_linux_ppc64le")
use_repo(node_dev, "node22_windows_amd64")
use_repo(node_dev, "node24_linux_amd64")
use_repo(node_dev, "node24_darwin_arm64")
use_repo(node_dev, "node24_darwin_amd64")
use_repo(node_dev, "node24_linux_arm64")
use_repo(node_dev, "node24_linux_s390x")
use_repo(node_dev, "node24_linux_ppc64le")
use_repo(node_dev, "node24_windows_amd64")
node_dev.toolchain(node_version = "18.20.4")
node_dev.toolchain(
    name = "node16",
    node_version = "16.20.0",
)
node_dev.toolchain(
    name = "node18",
    node_version = "18.20.4",
)
node_dev.toolchain(
    name = "node20",
    node_version = "20.17.0",
)
node_dev.toolchain(
    name = "node22",
    node_version = "22.20.0",
)
node_dev.toolchain(
    name = "node24",
    node_version = "24.9.0",
)

############################################
# npm dependencies used by examples

npm = use_extension(
    "@aspect_rules_js//npm:extensions.bzl",
    "npm",
    dev_dependency = True,
)
npm.npm_translate_lock(
    name = "npm",
    bins = {
        # derived from "bin" attribute in node_modules/typescript/package.json
        "typescript": [
            "tsc=./bin/tsc",
            "tsserver=./bin/tsserver",
        ],
    },
    custom_postinstalls = {
        "@aspect-test/c": "echo moo > cow.txt",
        "@aspect-test/c@2.0.2": "echo mooo >> cow.txt",
        "pngjs": "chmod -R a+X *",  # fixes malformed tarball content file permissions in this package after extraction (see https://github.com/aspect-build/rules_js/issues/1637 for more details)
    },
    data = [
        "//:examples/npm_deps/patches/meaning-of-life@1.0.0-pnpm.patch",
        "//:package.json",
        "//:pnpm-workspace.yaml",
        "//examples/js_binary:package.json",
        "//examples/js_lib_pkg/a:package.json",
        "//examples/js_lib_pkg/b:package.json",
        "//examples/linked_consumer:package.json",
        "//examples/linked_empty_node_modules:package.json",
        "//examples/linked_lib:package.json",
        "//examples/linked_pkg:package.json",
        "//examples/macro:package.json",
        "//examples/nextjs:package.json",
        "//examples/npm_deps:package.json",
        "//examples/npm_package/libs/lib_a:package.json",
        "//examples/npm_package/packages/pkg_a:package.json",
        "//examples/npm_package/packages/pkg_b:package.json",
        "//examples/npm_package/packages/pkg_d:package.json",
        "//examples/npm_package/packages/pkg_e:package.json",
        "//examples/runfiles:package.json",
        "//examples/stack_traces:package.json",
        "//examples/webpack_cli:package.json",
        "//js/private/coverage/bundle:package.json",
        "//js/private/devserver/src:package.json",
        "//js/private/test/image:package.json",
        "//js/private/test/js_run_devserver:package.json",
        "//js/private/test/node-patches:package.json",
        "//js/private/worker/src:package.json",
        "//npm/private/test:package.json",
        "//npm/private/test:vendored/lodash-4.17.21.tgz",
        "//npm/private/test/npm_package:package.json",
        "//npm/private/test/npm_package_publish:package.json",
        "//npm/private/test/vendored/is-odd:package.json",
        "//npm/private/test/vendored/semver-max:package.json",
    ],
    generate_bzl_library_targets = True,
    lifecycle_hooks = {
        # We fetch @kubernetes/client-node from source and it has a `prepare` lifecycle hook that needs to be run
        # which runs the `build` package.json script: https://github.com/kubernetes-client/javascript/blob/fc681991e61c6808dd26012a2331f83671a11218/package.json#L28.
        # Here we run run build so we just run `tsc` instead of `npm run build` which ends up just running `tsc`.
        "@kubernetes/client-node": ["build"],
        # 'install' hook fails as it assumes the following path to `node-pre-gyp`: ./node_modules/.bin/node-pre-gyp
        # https://github.com/stultuss/protoc-gen-grpc-ts/blob/53d52a9d0e1fe3cbe930dec5581eca89b3dde807/package.json#L28
        "protoc-gen-grpc@2.0.3": [],
    },
    lifecycle_hooks_execution_requirements = {
        "*": [
            "no-sandbox",
        ],
        # If @kubernetes/client-node is not sandboxed, will fail with
        # ```
        # src/azure_auth.ts(97,43): error TS2575: No overload expects 2 arguments, but overloads do exist that expect either 1 or 4 arguments.
        # src/azure_auth.ts(98,34): error TS2575: No overload expects 2 arguments, but overloads do exist that expect either 1 or 4 arguments.
        # src/gcp_auth.ts(93,43): error TS2575: No overload expects 2 arguments, but overloads do exist that expect either 1 or 4 arguments.
        # src/gcp_auth.ts(94,34): error TS2575: No overload expects 2 arguments, but overloads do exist that expect either 1 or 4 arguments.
        # ```
        # since a `jsonpath-plus@7.2.0` that is newer then the transitive dep `jsonpath-plus@0.19.0` is found outside of the sandbox that
        # includes typings that don't match the 0.19.0 "any" usage.
        "@kubernetes/client-node": [],
        "@figma/nodegit": [
            "no-sandbox",
            "requires-network",
        ],
        "esbuild": [
            "no-sandbox",
            "requires-network",
        ],
        "segfault-handler": [
            "no-sandbox",
            "requires-network",
        ],
        "puppeteer": [
            "no-remote",
            "no-sandbox",
            "requires-network",
        ],
    },
    npmrc = "//:.npmrc",
    package_visibility = {
        "unused": ["//npm/private/test:__subpackages__"],
        "@mycorp/pkg-a": [
            "//examples:__subpackages__",
            "//js/private/test/image:__subpackages__",
        ],
        "@mycorp/pkg-d": [
            "//examples:__subpackages__",
            "//js/private/test/image:__subpackages__",
        ],
        "@mycorp/pkg-e": ["//examples:__subpackages__"],
    },
    pnpm_lock = "//:pnpm-lock.yaml",
    public_hoist_packages = {
        # Instructs the linker to hoist the ms@2.1.3 npm package to `node_modules/ms` in the `examples/npm_deps` package.
        # Similar to adding `public-hoist-pattern[]=ms` in .npmrc but with control over which version to hoist and where
        # to hoist it. This hoisted package can be referenced by the label `//examples/npm_deps:node_modules/ms` same as
        # other direct dependencies in the `examples/npm_deps/package.json`.
        "ms@2.1.3": ["examples/npm_deps"],
    },
    update_pnpm_lock = True,
    use_pnpm = "@pnpm10//:package/bin/pnpm.cjs",
    verify_node_modules_ignored = "//:.bazelignore",
    verify_patches = "//examples/npm_deps/patches:patches",
)

# Configure package exclusions using tag class
npm.npm_exclude_package_contents(
    package = "chalk",
    patterns = ["**/README*"],
)
use_repo(
    npm,
    "npm",
    "npm__fsevents__2.3.3__links",
    "npm__rollup__2.70.2",
    "npm__rollup__2.70.2__links",
    "npm__unused__0.2.2__links",
    "npm__webpack-bundle-analyzer__4.5.0_bufferutil_4.0.8",
)

# As an example, manually import a package using explicit coordinates.
# Just a demonstration of the syntax de-sugaring.
npm.npm_import(
    name = "acorn__8.4.0",
    bins = {"acorn": "./bin/acorn"},
    integrity = "sha512-ULr0LDaEqQrMFGyQ3bhJkLsbtrQ8QibAseGZeaSUiT/6zb9IvIkomWHJIvgvwad+hinRAgsI51JcWk2yvwyL+w==",
    package = "acorn",
    # Root package where to link the package store
    root_package = "",
    version = "8.4.0",
)
use_repo(
    npm,
    "acorn__8.4.0",
    "acorn__8.4.0__links",
)
