From 45c84b1c25642054d38947f044853f734549ad1f Mon Sep 17 00:00:00 2001 From: Jason Bedard Date: Mon, 22 Jul 2024 16:23:37 -0700 Subject: [PATCH] fix(npm): invalid export of package/resolved.json (#1855) --- e2e/pnpm_lockfiles/lockfile-test.bzl | 3 +++ e2e/pnpm_lockfiles/v54/snapshots/is-odd_resolved.json | 1 + e2e/pnpm_lockfiles/v60/snapshots/is-odd_resolved.json | 1 + e2e/pnpm_lockfiles/v61/snapshots/is-odd_resolved.json | 1 + e2e/pnpm_lockfiles/v90/snapshots/is-odd_resolved.json | 1 + npm/private/npm_translate_lock_generate.bzl | 5 +++-- 6 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 e2e/pnpm_lockfiles/v54/snapshots/is-odd_resolved.json create mode 100644 e2e/pnpm_lockfiles/v60/snapshots/is-odd_resolved.json create mode 100644 e2e/pnpm_lockfiles/v61/snapshots/is-odd_resolved.json create mode 100644 e2e/pnpm_lockfiles/v90/snapshots/is-odd_resolved.json diff --git a/e2e/pnpm_lockfiles/lockfile-test.bzl b/e2e/pnpm_lockfiles/lockfile-test.bzl index 2ab76cf0d..cd741852a 100644 --- a/e2e/pnpm_lockfiles/lockfile-test.bzl +++ b/e2e/pnpm_lockfiles/lockfile-test.bzl @@ -19,6 +19,9 @@ BZL_FILES = { # global "defs.bzl": "@REPO_NAME//:defs.bzl", + # resolved.json reference + "is-odd_resolved.json": "@REPO_NAME//VERSION:is-odd/resolved.json", + # hasBin, optional deps, deps "rollup_links_defs.bzl": "@REPO_NAME__rollup__2.14.0__links//:defs.bzl", "rollup_package_json.bzl": "@REPO_NAME__rollup__2.14.0//VERSION:package_json.bzl", diff --git a/e2e/pnpm_lockfiles/v54/snapshots/is-odd_resolved.json b/e2e/pnpm_lockfiles/v54/snapshots/is-odd_resolved.json new file mode 100644 index 000000000..4458f3c65 --- /dev/null +++ b/e2e/pnpm_lockfiles/v54/snapshots/is-odd_resolved.json @@ -0,0 +1 @@ +{"$schema":"https://docs.aspect.build/rules/aspect_rules_js/docs/npm_translate_lock","integrity":"sha512-CQpnWPrDwmP1+SMHXZhtLtJv90yiyVfluGsX5iNCVkrhQtU3TQHsUWPG9wkdk9Lgd5yNpAg9jQEo90CBaXgWMA==","version":"3.0.1"} \ No newline at end of file diff --git a/e2e/pnpm_lockfiles/v60/snapshots/is-odd_resolved.json b/e2e/pnpm_lockfiles/v60/snapshots/is-odd_resolved.json new file mode 100644 index 000000000..4458f3c65 --- /dev/null +++ b/e2e/pnpm_lockfiles/v60/snapshots/is-odd_resolved.json @@ -0,0 +1 @@ +{"$schema":"https://docs.aspect.build/rules/aspect_rules_js/docs/npm_translate_lock","integrity":"sha512-CQpnWPrDwmP1+SMHXZhtLtJv90yiyVfluGsX5iNCVkrhQtU3TQHsUWPG9wkdk9Lgd5yNpAg9jQEo90CBaXgWMA==","version":"3.0.1"} \ No newline at end of file diff --git a/e2e/pnpm_lockfiles/v61/snapshots/is-odd_resolved.json b/e2e/pnpm_lockfiles/v61/snapshots/is-odd_resolved.json new file mode 100644 index 000000000..4458f3c65 --- /dev/null +++ b/e2e/pnpm_lockfiles/v61/snapshots/is-odd_resolved.json @@ -0,0 +1 @@ +{"$schema":"https://docs.aspect.build/rules/aspect_rules_js/docs/npm_translate_lock","integrity":"sha512-CQpnWPrDwmP1+SMHXZhtLtJv90yiyVfluGsX5iNCVkrhQtU3TQHsUWPG9wkdk9Lgd5yNpAg9jQEo90CBaXgWMA==","version":"3.0.1"} \ No newline at end of file diff --git a/e2e/pnpm_lockfiles/v90/snapshots/is-odd_resolved.json b/e2e/pnpm_lockfiles/v90/snapshots/is-odd_resolved.json new file mode 100644 index 000000000..3526ac504 --- /dev/null +++ b/e2e/pnpm_lockfiles/v90/snapshots/is-odd_resolved.json @@ -0,0 +1 @@ +{"$schema":"https://docs.aspect.build/rules/aspect_rules_js/docs/npm_translate_lock","integrity":"sha512-CQpnWPrDwmP1+SMHXZhtLtJyiyVfluGsX5iNCVkrhQtU3TQHsUWPG9wkdk9Lgd5yNpAg9jQEo90CBaXgWMA==","version":"3.0.1"} \ No newline at end of file diff --git a/npm/private/npm_translate_lock_generate.bzl b/npm/private/npm_translate_lock_generate.bzl index 667b9a06b..29f768460 100644 --- a/npm/private/npm_translate_lock_generate.bzl +++ b/npm/private/npm_translate_lock_generate.bzl @@ -286,14 +286,15 @@ def npm_link_all_packages(name = "node_modules", imported_links = []): build_file = "{}/{}".format(link_package, "BUILD.bazel") if link_package else "BUILD.bazel" if build_file not in rctx_files: rctx_files[build_file] = [] - resolved_json_file_path = "{}/{}/{}".format(link_package, _import.package, _RESOLVED_JSON_FILENAME).lstrip("/") + resolved_json_rel_path = "{}/{}".format(_import.package, _RESOLVED_JSON_FILENAME) if _import.package else _RESOLVED_JSON_FILENAME + resolved_json_file_path = "{}/{}".format(link_package, resolved_json_rel_path) if link_package else resolved_json_rel_path rctx.file(resolved_json_file_path, json.encode({ # Allow consumers to auto-detect this filetype "$schema": "https://docs.aspect.build/rules/aspect_rules_js/docs/npm_translate_lock", "version": _import.version, "integrity": _import.integrity, })) - rctx_files[build_file].append("exports_files([\"{}\"])".format(resolved_json_file_path)) + rctx_files[build_file].append("exports_files([\"{}\"])".format(resolved_json_rel_path)) if _import.package_info.get("has_bin"): if rctx.attr.generate_bzl_library_targets: rctx_files[build_file].append("""load("@bazel_skylib//:bzl_library.bzl", "bzl_library")""")