diff --git a/e2e/pnpm_lockfiles/.bazelignore b/e2e/pnpm_lockfiles/.bazelignore index dc9c6b14b..0922dd762 100644 --- a/e2e/pnpm_lockfiles/.bazelignore +++ b/e2e/pnpm_lockfiles/.bazelignore @@ -17,4 +17,5 @@ v54/node_modules/ v60/node_modules/ v61/node_modules/ v90/node_modules/ +v10/node_modules/ vendored/is-number/node_modules diff --git a/e2e/pnpm_lockfiles/MODULE.bazel b/e2e/pnpm_lockfiles/MODULE.bazel index d7e2f817e..57039105f 100644 --- a/e2e/pnpm_lockfiles/MODULE.bazel +++ b/e2e/pnpm_lockfiles/MODULE.bazel @@ -10,6 +10,7 @@ PNPM_LOCK_VERSIONS = [ "v60", "v61", "v90", + "v10", ] # Lockfiles with unique test cases diff --git a/e2e/pnpm_lockfiles/WORKSPACE b/e2e/pnpm_lockfiles/WORKSPACE index c05b26712..ebe0c6632 100644 --- a/e2e/pnpm_lockfiles/WORKSPACE +++ b/e2e/pnpm_lockfiles/WORKSPACE @@ -9,6 +9,7 @@ PNPM_LOCK_VERSIONS = [ "v60", "v61", "v90", + "v10", ] # Lockfiles with unique test cases @@ -44,6 +45,7 @@ load("@aspect_rules_js//npm:repositories.bzl", "npm_translate_lock") for version in PNPM_LOCK_VERSIONS ] +load("@lock-v10//:repositories.bzl", npm_repositories_v10 = "npm_repositories") load("@lock-v54//:repositories.bzl", npm_repositories_v54 = "npm_repositories") load("@lock-v60//:repositories.bzl", npm_repositories_v60 = "npm_repositories") load("@lock-v61//:repositories.bzl", npm_repositories_v61 = "npm_repositories") @@ -57,6 +59,8 @@ npm_repositories_v61() npm_repositories_v90() +npm_repositories_v10() + [ npm_translate_lock( name = lockfile.replace(".yaml", ""), diff --git a/e2e/pnpm_lockfiles/setup.sh b/e2e/pnpm_lockfiles/setup.sh index 7c22f5a30..b108de44b 100755 --- a/e2e/pnpm_lockfiles/setup.sh +++ b/e2e/pnpm_lockfiles/setup.sh @@ -14,3 +14,6 @@ pushd base && npx pnpm@8.6.0 install --lockfile-only && mv pnpm-lock.yaml ../v61 # pnpm v9.0.0 bumped the lockfile version to 9.0 pushd base && npx pnpm@^9.0 install --lockfile-only && mv pnpm-lock.yaml ../v90 && popd + +# pnpm v10 +pushd base && npx pnpm@^10.0 install --lockfile-only && mv pnpm-lock.yaml ../v10 && popd diff --git a/e2e/pnpm_lockfiles/update-snapshots.sh b/e2e/pnpm_lockfiles/update-snapshots.sh index 738f72d21..2c04512d9 100755 --- a/e2e/pnpm_lockfiles/update-snapshots.sh +++ b/e2e/pnpm_lockfiles/update-snapshots.sh @@ -4,8 +4,10 @@ bazel run @@//v54:repos bazel run @@//v60:repos bazel run @@//v61:repos bazel run @@//v90:repos +bazel run @@//v10:repos bazel run --enable_bzlmod=false @@//v54:wksp-repos bazel run --enable_bzlmod=false @@//v60:wksp-repos bazel run --enable_bzlmod=false @@//v61:wksp-repos bazel run --enable_bzlmod=false @@//v90:wksp-repos +bazel run --enable_bzlmod=false @@//v10:wksp-repos diff --git a/e2e/pnpm_lockfiles/v10/BUILD.bazel b/e2e/pnpm_lockfiles/v10/BUILD.bazel new file mode 100644 index 000000000..cab06d025 --- /dev/null +++ b/e2e/pnpm_lockfiles/v10/BUILD.bazel @@ -0,0 +1,6 @@ +load("@lock-v10//:defs.bzl", "npm_link_all_packages") +load("//:lockfile-test.bzl", "lockfile_test") + +npm_link_all_packages() + +lockfile_test() diff --git a/e2e/pnpm_lockfiles/v10/package.json b/e2e/pnpm_lockfiles/v10/package.json new file mode 120000 index 000000000..9846ac29f --- /dev/null +++ b/e2e/pnpm_lockfiles/v10/package.json @@ -0,0 +1 @@ +../base/package.json \ No newline at end of file diff --git a/e2e/pnpm_lockfiles/v10/patches b/e2e/pnpm_lockfiles/v10/patches new file mode 120000 index 000000000..143935d1f --- /dev/null +++ b/e2e/pnpm_lockfiles/v10/patches @@ -0,0 +1 @@ +../base/patches \ No newline at end of file diff --git a/e2e/pnpm_lockfiles/v10/pnpm-lock.yaml b/e2e/pnpm_lockfiles/v10/pnpm-lock.yaml new file mode 100644 index 000000000..c06fa3d01 --- /dev/null +++ b/e2e/pnpm_lockfiles/v10/pnpm-lock.yaml @@ -0,0 +1,642 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +overrides: + is-number: file:../vendored/is-number + diff: https://github.com/kpdecker/jsdiff/archive/refs/tags/v5.2.0.tar.gz + fsevents: ^2.3 + typescript: 5.5.2 + +patchedDependencies: + meaning-of-life@1.0.0: + hash: 33610921243aecf4fa5a23dc8080659f436ccda15f41ce4f53c687039a305ee0 + path: patches/meaning-of-life@1.0.0-pnpm.patch + +importers: + + .: + dependencies: + '@aspect-test-a-bad-scope': + specifier: npm:@aspect-test/a + version: '@aspect-test/a@5.0.2' + '@aspect-test-custom-scope/a': + specifier: npm:@aspect-test/a + version: '@aspect-test/a@5.0.2' + '@aspect-test/a': + specifier: ^5.0.2 + version: 5.0.2 + '@aspect-test/a2': + specifier: npm:@aspect-test/a + version: '@aspect-test/a@5.0.2' + '@aspect-test/e': + specifier: ~1.0.0 + version: 1.0.0 + '@isaacs/cliui': + specifier: 8.0.2 + version: 8.0.2 + '@scoped/a': + specifier: workspace:* + version: link:../projects/a + '@scoped/b': + specifier: link:../projects/b + version: link:../projects/b + '@scoped/c': + specifier: file:../projects/c + version: file:../projects/c + '@scoped/d': + specifier: ../projects/d + version: link:../projects/d + aspect-test-a-no-scope: + specifier: npm:@aspect-test/a + version: '@aspect-test/a@5.0.2' + aspect-test-a/no-at: + specifier: npm:@aspect-test/a + version: '@aspect-test/a@5.0.2' + debug: + specifier: ngokevin/debug#9742c5f383a6f8046241920156236ade8ec30d53 + version: https://codeload.github.com/ngokevin/debug/tar.gz/9742c5f383a6f8046241920156236ade8ec30d53 + hello: + specifier: https://gitpkg.vercel.app/EqualMa/gitpkg-hello/packages/hello + version: https://gitpkg.vercel.app/EqualMa/gitpkg-hello/packages/hello + is-odd: + specifier: npm:is-odd@3.0.1 + version: 3.0.1 + is-odd-alias: + specifier: npm:is-odd + version: is-odd@3.0.1 + is-odd-v0: + specifier: npm:is-odd@0.1.0 + version: is-odd@0.1.0 + is-odd-v1: + specifier: npm:is-odd@1.0.0 + version: is-odd@1.0.0 + is-odd-v2: + specifier: npm:is-odd@2.0.0 + version: is-odd@2.0.0 + is-odd-v3: + specifier: npm:is-odd@3.0.0 + version: is-odd@3.0.0 + jquery-git-ssh-e61fccb: + specifier: git+ssh://git@github.com/jquery/jquery.git#e61fccb9d736235b4b011f89cba6866bc0b8997d + version: jquery@https://codeload.github.com/jquery/jquery/tar.gz/e61fccb9d736235b4b011f89cba6866bc0b8997d + jsonify: + specifier: https://github.com/aspect-build/test-packages/releases/download/0.0.0/@foo-jsonify-0.0.0.tgz + version: '@foo/jsonify@https://objects.githubusercontent.com/github-production-release-asset-2e65be/479133753/39afbe81-ae4d-4b58-97a4-a6a3ca092d4d?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20250211%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250211T185742Z&X-Amz-Expires=300&X-Amz-Signature=22ff1778b26a1f8757c95957fc69cd3710d3a8caa3b68bd5ded7c2032a0f377b&X-Amz-SignedHeaders=host&response-content-disposition=attachment%3B%20filename%3D%40foo-jsonify-0.0.0.tgz&response-content-type=application%2Foctet-stream' + meaning-of-life: + specifier: 1.0.0 + version: 1.0.0(patch_hash=33610921243aecf4fa5a23dc8080659f436ccda15f41ce4f53c687039a305ee0) + rollup: + specifier: 2.14.0 + version: 2.14.0 + rollup-plugin-with-peers: + specifier: npm:@rollup/plugin-typescript@8.2.1 + version: '@rollup/plugin-typescript@8.2.1(rollup@2.14.0)(tslib@2.8.1)(typescript@5.5.2)' + rollup3: + specifier: npm:rollup@3.29.4 + version: rollup@3.29.4 + scoped/bad: + specifier: link:../projects/b + version: link:../projects/b + tslib: + specifier: ^2.6.3 + version: 2.8.1 + typescript: + specifier: 5.5.2 + version: 5.5.2 + uvu: + specifier: 0.5.6 + version: 0.5.6 + devDependencies: + '@aspect-test/b': + specifier: 5.0.2 + version: 5.0.2 + '@types/archiver': + specifier: 5.3.1 + version: 5.3.1 + '@types/node': + specifier: 16.18.11 + version: 16.18.11 + alias-only-sizzle: + specifier: npm:@types/sizzle@~2.3.9 + version: '@types/sizzle@2.3.9' + alias-types-node: + specifier: npm:@types/node@~16.18.11 + version: '@types/node@16.18.11' + optionalDependencies: + '@aspect-test/c': + specifier: 2.0.0 + version: 2.0.0 + + ../projects/a: {} + + ../projects/a-types: + dependencies: + '@types/node': + specifier: 16.18.11 + version: 16.18.11 + + ../projects/b: + dependencies: + '@scoped/a': + specifier: workspace:* + version: link:../a + devDependencies: + '@types/node': + specifier: 16.18.11 + version: 16.18.11 + a-types: + specifier: workspace:* + version: link:../a-types + + ../projects/c: + dependencies: + '@scoped/a': + specifier: link:../a + version: link:../a + + ../projects/d: + dependencies: + '@scoped/a': + specifier: workspace:* + version: link:../a + + ../vendored/is-number: {} + +packages: + + '@aspect-test/a@5.0.2': + resolution: {integrity: sha512-bURS+F0+tS2XPxUPbrqsTZxIre1U5ZglwzDqcOCrU7MbxuRrkO24hesgTMGJldCglwL/tiEGRlvdMndlPgRdNw==} + hasBin: true + + '@aspect-test/b@5.0.2': + resolution: {integrity: sha512-I8wnJV5J0h8ui1O3K6XPq1qGHKopTl/OnvkSfor7uJ9yRCm2Qv6Tf2LsTgR2xzkgiwhA4iBwdYFwecwinF244w==} + hasBin: true + + '@aspect-test/c@2.0.0': + resolution: {integrity: sha512-vRuHi/8zxZ+IRGdgdX4VoMNFZrR9UqO87yQx61IGIkjgV7QcKUeu5jfvIE3Mr0WNQeMdO1JpyTx1UUpsE73iug==} + hasBin: true + + '@aspect-test/c@2.0.2': + resolution: {integrity: sha512-rMJmd3YBvY7y0jh+2m72TiAhe6dVKjMMNFFVOXFCbM233m7lsG4cq970H1C8rUsc3AcA5E/cEHlxSVffHlHD2Q==} + hasBin: true + + '@aspect-test/d@2.0.0': + resolution: {integrity: sha512-jndwr8pLUfn795uApTcXG/yZ5hV2At1aS/wo5BVLxqlVVgLoOETF/Dp4QOjMHE/SXkXFowz6Hao+WpmzVvAO0A==} + hasBin: true + peerDependencies: + '@aspect-test/c': x.x.x + + '@aspect-test/e@1.0.0': + resolution: {integrity: sha512-GyAxHYKN650db+xnimHnL2LPz65ilmQsVhCasWA7drDNQn/rfmPiEVMzjRiS7m46scXIERaBmiJMzYDf0bIUbA==} + hasBin: true + + '@foo/jsonify@https://objects.githubusercontent.com/github-production-release-asset-2e65be/479133753/39afbe81-ae4d-4b58-97a4-a6a3ca092d4d?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20250211%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250211T185742Z&X-Amz-Expires=300&X-Amz-Signature=22ff1778b26a1f8757c95957fc69cd3710d3a8caa3b68bd5ded7c2032a0f377b&X-Amz-SignedHeaders=host&response-content-disposition=attachment%3B%20filename%3D%40foo-jsonify-0.0.0.tgz&response-content-type=application%2Foctet-stream': + resolution: {tarball: https://objects.githubusercontent.com/github-production-release-asset-2e65be/479133753/39afbe81-ae4d-4b58-97a4-a6a3ca092d4d?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20250211%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250211T185742Z&X-Amz-Expires=300&X-Amz-Signature=22ff1778b26a1f8757c95957fc69cd3710d3a8caa3b68bd5ded7c2032a0f377b&X-Amz-SignedHeaders=host&response-content-disposition=attachment%3B%20filename%3D%40foo-jsonify-0.0.0.tgz&response-content-type=application%2Foctet-stream} + version: 0.0.0 + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@rollup/plugin-typescript@8.2.1': + resolution: {integrity: sha512-Qd2E1pleDR4bwyFxqbjt4eJf+wB0UKVMLc7/BAFDGVdAXQMCsD4DUv5/7/ww47BZCYxWtJqe1Lo0KVNswBJlRw==} + engines: {node: '>=8.0.0'} + peerDependencies: + rollup: ^2.14.0 + tslib: '*' + typescript: 5.5.2 + + '@rollup/pluginutils@3.1.0': + resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} + engines: {node: '>= 8.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0 + + '@scoped/c@file:../projects/c': + resolution: {directory: ../projects/c, type: directory} + + '@types/archiver@5.3.1': + resolution: {integrity: sha512-wKYZaSXaDvTZuInAWjCeGG7BEAgTWG2zZW0/f7IYFcoHB2X2d9lkVFnrOlXl3W6NrvO6Ml3FLLu8Uksyymcpnw==, tarball: https://registry.npmjs.org/@types/archiver/-/archiver-5.3.1.tgz} + + '@types/estree@0.0.39': + resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==, tarball: https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz} + + '@types/glob@8.1.0': + resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==, tarball: https://registry.npmjs.org/@types/glob/-/glob-8.1.0.tgz} + + '@types/minimatch@5.1.2': + resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==, tarball: https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz} + + '@types/node@16.18.11': + resolution: {integrity: sha512-3oJbGBUWuS6ahSnEq1eN2XrCyf4YsWI8OyCvo7c64zQJNplk3mO84t53o8lfTk+2ji59g5ycfc6qQ3fdHliHuA==, tarball: https://registry.npmjs.org/@types/node/-/node-16.18.11.tgz} + + '@types/sizzle@2.3.9': + resolution: {integrity: sha512-xzLEyKB50yqCUPUJkIsrVvoWNfFUbIZI+RspLWt8u+tIW/BetMBZtgV2LY/2o+tYH8dRvQ+eoPf3NdhQCcLE2w==, tarball: https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.9.tgz} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + engines: {node: '>=12'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + debug@https://codeload.github.com/ngokevin/debug/tar.gz/9742c5f383a6f8046241920156236ade8ec30d53: + resolution: {tarball: https://codeload.github.com/ngokevin/debug/tar.gz/9742c5f383a6f8046241920156236ade8ec30d53} + version: 2.6.3 + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + diff@https://codeload.github.com/kpdecker/jsdiff/tar.gz/refs/tags/v5.2.0: + resolution: {tarball: https://codeload.github.com/kpdecker/jsdiff/tar.gz/refs/tags/v5.2.0} + version: 5.2.0 + engines: {node: '>=0.3.1'} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + estree-walker@1.0.1: + resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + hello@https://gitpkg.vercel.app/EqualMa/gitpkg-hello/packages/hello: + resolution: {tarball: https://gitpkg.vercel.app/EqualMa/gitpkg-hello/packages/hello} + version: 1.0.0 + + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + engines: {node: '>= 0.4'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-number@file:../vendored/is-number: + resolution: {directory: ../vendored/is-number, type: directory} + + is-odd@0.1.0: + resolution: {integrity: sha512-3RKAybrJxq3zCUC+TJ5Ao0sBsbacAT3OBeNVcCbsQsHUC70qWK2R4JsIvax4OTjeGWnB8FumAWATUtS1jd+KYw==} + engines: {node: '>=0.10.0'} + + is-odd@1.0.0: + resolution: {integrity: sha512-yIhxkKCK7pZnj48WBvaTQ36Or7PymGYqmZrSNqkrhmU3pakkp2TWhuN7hH25bqJgH+Xq4IZ3QNd3+QVshldEHA==} + engines: {node: '>=0.10.0'} + + is-odd@2.0.0: + resolution: {integrity: sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==} + engines: {node: '>=0.10.0'} + + is-odd@3.0.0: + resolution: {integrity: sha512-204vE5IJ0Cd6pA6x1dMyLooGk6/xeKuq90imFuJN/ndMDBP4Sk9tJpBlTedHPvt6KDbtTDTsjVzzgctFqNV7FQ==} + engines: {node: '>=4'} + + is-odd@3.0.1: + resolution: {integrity: sha512-CQpnWPrDwmP1+SMHXZhtLtJv90yiyVfluGsX5iNCVkrhQtU3TQHsUWPG9wkdk9Lgd5yNpAg9jQEo90CBaXgWMA==} + engines: {node: '>=4'} + + jquery@https://codeload.github.com/jquery/jquery/tar.gz/e61fccb9d736235b4b011f89cba6866bc0b8997d: + resolution: {tarball: https://codeload.github.com/jquery/jquery/tar.gz/e61fccb9d736235b4b011f89cba6866bc0b8997d} + version: 3.0.0-pre + + kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + + meaning-of-life@1.0.0: + resolution: {integrity: sha512-fVA4xSydqtK9owabGcYw1r4EKEsMOVVeYQLeCXPu77Z+8Y2j2B2I16UqZlKIOHnYkJ4RSvpJ00ywy9IWjmuxYw==} + + mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + + ms@0.7.3: + resolution: {integrity: sha512-lrKNzMWqQZgwJahtrtrM+9NgOoDUveDrVmm5aGXrf3BdtL0mq7X6IVzoZaw+TfNti29eHd1/8GI+h45K5cQ6/w==} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + resolve@1.22.10: + resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} + engines: {node: '>= 0.4'} + hasBin: true + + rollup@2.14.0: + resolution: {integrity: sha512-SUsFh2bBemQqCXOCBWRayjK3/6kNHVR8PbSKKYWIdI6e4zuGSW5B1hGVkFi40805dUrqosMLLxMuEyJMylC9YA==} + engines: {node: '>=10.0.0'} + hasBin: true + + rollup@3.29.4: + resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + + sade@1.8.1: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} + engines: {node: '>=6'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + typescript@5.5.2: + resolution: {integrity: sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==} + engines: {node: '>=14.17'} + hasBin: true + + uvu@0.5.6: + resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==} + engines: {node: '>=8'} + hasBin: true + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + +snapshots: + + '@aspect-test/a@5.0.2': + dependencies: + '@aspect-test/b': 5.0.2 + '@aspect-test/c': 2.0.2 + '@aspect-test/d': 2.0.0(@aspect-test/c@2.0.2) + + '@aspect-test/b@5.0.2': + dependencies: + '@aspect-test/a': 5.0.2 + '@aspect-test/c': 2.0.2 + '@aspect-test/d': 2.0.0(@aspect-test/c@2.0.2) + + '@aspect-test/c@2.0.0': + optional: true + + '@aspect-test/c@2.0.2': {} + + '@aspect-test/d@2.0.0(@aspect-test/c@2.0.2)': + dependencies: + '@aspect-test/c': 2.0.2 + + '@aspect-test/e@1.0.0': {} + + '@foo/jsonify@https://objects.githubusercontent.com/github-production-release-asset-2e65be/479133753/39afbe81-ae4d-4b58-97a4-a6a3ca092d4d?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20250211%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250211T185742Z&X-Amz-Expires=300&X-Amz-Signature=22ff1778b26a1f8757c95957fc69cd3710d3a8caa3b68bd5ded7c2032a0f377b&X-Amz-SignedHeaders=host&response-content-disposition=attachment%3B%20filename%3D%40foo-jsonify-0.0.0.tgz&response-content-type=application%2Foctet-stream': {} + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@rollup/plugin-typescript@8.2.1(rollup@2.14.0)(tslib@2.8.1)(typescript@5.5.2)': + dependencies: + '@rollup/pluginutils': 3.1.0(rollup@2.14.0) + resolve: 1.22.10 + rollup: 2.14.0 + tslib: 2.8.1 + typescript: 5.5.2 + + '@rollup/pluginutils@3.1.0(rollup@2.14.0)': + dependencies: + '@types/estree': 0.0.39 + estree-walker: 1.0.1 + picomatch: 2.3.1 + rollup: 2.14.0 + + '@scoped/c@file:../projects/c': + dependencies: + '@scoped/a': link:../a + + '@types/archiver@5.3.1': + dependencies: + '@types/glob': 8.1.0 + + '@types/estree@0.0.39': {} + + '@types/glob@8.1.0': + dependencies: + '@types/minimatch': 5.1.2 + '@types/node': 16.18.11 + + '@types/minimatch@5.1.2': {} + + '@types/node@16.18.11': {} + + '@types/sizzle@2.3.9': {} + + ansi-regex@5.0.1: {} + + ansi-regex@6.1.0: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.1: {} + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + debug@https://codeload.github.com/ngokevin/debug/tar.gz/9742c5f383a6f8046241920156236ade8ec30d53: + dependencies: + ms: 0.7.3 + + dequal@2.0.3: {} + + diff@https://codeload.github.com/kpdecker/jsdiff/tar.gz/refs/tags/v5.2.0: {} + + eastasianwidth@0.2.0: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + estree-walker@1.0.1: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + hello@https://gitpkg.vercel.app/EqualMa/gitpkg-hello/packages/hello: {} + + is-core-module@2.16.1: + dependencies: + hasown: 2.0.2 + + is-fullwidth-code-point@3.0.0: {} + + is-number@file:../vendored/is-number: {} + + is-odd@0.1.0: + dependencies: + is-number: file:../vendored/is-number + + is-odd@1.0.0: + dependencies: + is-number: file:../vendored/is-number + + is-odd@2.0.0: + dependencies: + is-number: file:../vendored/is-number + + is-odd@3.0.0: + dependencies: + is-number: file:../vendored/is-number + + is-odd@3.0.1: + dependencies: + is-number: file:../vendored/is-number + + jquery@https://codeload.github.com/jquery/jquery/tar.gz/e61fccb9d736235b4b011f89cba6866bc0b8997d: {} + + kleur@4.1.5: {} + + meaning-of-life@1.0.0(patch_hash=33610921243aecf4fa5a23dc8080659f436ccda15f41ce4f53c687039a305ee0): {} + + mri@1.2.0: {} + + ms@0.7.3: {} + + path-parse@1.0.7: {} + + picomatch@2.3.1: {} + + resolve@1.22.10: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + rollup@2.14.0: + optionalDependencies: + fsevents: 2.3.3 + + rollup@3.29.4: + optionalDependencies: + fsevents: 2.3.3 + + sade@1.8.1: + dependencies: + mri: 1.2.0 + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.1.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + tslib@2.8.1: {} + + typescript@5.5.2: {} + + uvu@0.5.6: + dependencies: + dequal: 2.0.3 + diff: https://codeload.github.com/kpdecker/jsdiff/tar.gz/refs/tags/v5.2.0 + kleur: 4.1.5 + sade: 1.8.1 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 diff --git a/e2e/pnpm_lockfiles/v10/snapshots/defs.bzl b/e2e/pnpm_lockfiles/v10/snapshots/defs.bzl new file mode 100644 index 000000000..08e4cee82 --- /dev/null +++ b/e2e/pnpm_lockfiles/v10/snapshots/defs.bzl @@ -0,0 +1,523 @@ +"""@generated by npm_translate_lock(name = "lock-", pnpm_lock = "@@//:pnpm-lock.yaml")""" + +load("@@aspect_rules_js~~npm~lock-__ansi-regex__5.0.1__links//:defs.bzl", store_0 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__ansi-regex__6.0.1__links//:defs.bzl", store_1 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__ansi-styles__4.3.0__links//:defs.bzl", store_2 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__ansi-styles__6.2.1__links//:defs.bzl", store_3 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__at_aspect-test_a__5.0.2__links//:defs.bzl", link_4 = "npm_link_imported_package_store", store_4 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__at_aspect-test_b__5.0.2__links//:defs.bzl", link_5 = "npm_link_imported_package_store", store_5 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__at_aspect-test_c__2.0.0__links//:defs.bzl", link_6 = "npm_link_imported_package_store", store_6 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__at_aspect-test_c__2.0.2__links//:defs.bzl", store_7 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__at_aspect-test_d__2.0.0_at_aspect-test_c_2.0.2__links//:defs.bzl", store_8 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__at_aspect-test_e__1.0.0__links//:defs.bzl", link_9 = "npm_link_imported_package_store", store_9 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__at_foo_jsonify__https___github.com_aspect-build_test-packages_releases_download_0.0.0_at_foo-jsonify-0.0.0.tgz__links//:defs.bzl", link_10 = "npm_link_imported_package_store", store_10 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__at_isaacs_cliui__8.0.2__links//:defs.bzl", link_11 = "npm_link_imported_package_store", store_11 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__at_rollup_plugin-typescript__8.2.1_1662662592__links//:defs.bzl", link_12 = "npm_link_imported_package_store", store_12 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__at_rollup_pluginutils__3.1.0_rollup_2.14.0__links//:defs.bzl", store_13 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__at_types_archiver__5.3.1__links//:defs.bzl", link_14 = "npm_link_imported_package_store", store_14 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__at_types_estree__0.0.39__links//:defs.bzl", store_15 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__at_types_glob__8.1.0__links//:defs.bzl", store_16 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__at_types_minimatch__5.1.2__links//:defs.bzl", store_17 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__at_types_node__16.18.11__links//:defs.bzl", link_18 = "npm_link_imported_package_store", store_18 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__at_types_sizzle__2.3.8__links//:defs.bzl", link_19 = "npm_link_imported_package_store", store_19 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__color-convert__2.0.1__links//:defs.bzl", store_20 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__color-name__1.1.4__links//:defs.bzl", store_21 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__debug__https___codeload.github.com_ngokevin_debug_tar.gz_9742c5f383a6f8046241920156236ade8ec30d53__links//:defs.bzl", link_22 = "npm_link_imported_package_store", store_22 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__dequal__2.0.3__links//:defs.bzl", store_23 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__diff__https___github.com_kpdecker_jsdiff_archive_refs_tags_v5.2.0.tar.gz__links//:defs.bzl", store_24 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__eastasianwidth__0.2.0__links//:defs.bzl", store_25 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__emoji-regex__8.0.0__links//:defs.bzl", store_26 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__emoji-regex__9.2.2__links//:defs.bzl", store_27 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__estree-walker__1.0.1__links//:defs.bzl", store_28 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__fsevents__2.3.3__links//:defs.bzl", store_29 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__function-bind__1.1.2__links//:defs.bzl", store_30 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__hasown__2.0.2__links//:defs.bzl", store_31 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__hello__https___gitpkg.vercel.app_EqualMa_gitpkg-hello_packages_hello__links//:defs.bzl", link_32 = "npm_link_imported_package_store", store_32 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__is-core-module__2.15.0__links//:defs.bzl", store_33 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__is-fullwidth-code-point__3.0.0__links//:defs.bzl", store_34 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__is-odd__0.1.0__links//:defs.bzl", link_35 = "npm_link_imported_package_store", store_35 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__is-odd__1.0.0__links//:defs.bzl", link_36 = "npm_link_imported_package_store", store_36 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__is-odd__2.0.0__links//:defs.bzl", link_37 = "npm_link_imported_package_store", store_37 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__is-odd__3.0.0__links//:defs.bzl", link_38 = "npm_link_imported_package_store", store_38 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__is-odd__3.0.1__links//:defs.bzl", link_39 = "npm_link_imported_package_store", store_39 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__jquery__https___codeload.github.com_jquery_jquery_tar.gz_e61fccb9d736235b4b011f89cba6866bc0b8997d__links//:defs.bzl", link_40 = "npm_link_imported_package_store", store_40 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__kleur__4.1.5__links//:defs.bzl", store_41 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__meaning-of-life__1.0.0_o3deharooos255qt5xdujc3cuq__links//:defs.bzl", link_42 = "npm_link_imported_package_store", store_42 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__mri__1.2.0__links//:defs.bzl", store_43 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__ms__0.7.3__links//:defs.bzl", store_44 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__path-parse__1.0.7__links//:defs.bzl", store_45 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__picomatch__2.3.1__links//:defs.bzl", store_46 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__resolve__1.22.8__links//:defs.bzl", store_47 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__rollup__2.14.0__links//:defs.bzl", link_48 = "npm_link_imported_package_store", store_48 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__rollup__3.29.4__links//:defs.bzl", link_49 = "npm_link_imported_package_store", store_49 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__sade__1.8.1__links//:defs.bzl", store_50 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__string-width__4.2.3__links//:defs.bzl", store_51 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__string-width__5.1.2__links//:defs.bzl", store_52 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__strip-ansi__6.0.1__links//:defs.bzl", store_53 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__strip-ansi__7.1.0__links//:defs.bzl", store_54 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__supports-preserve-symlinks-flag__1.0.0__links//:defs.bzl", store_55 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__tslib__2.6.3__links//:defs.bzl", link_56 = "npm_link_imported_package_store", store_56 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__typescript__5.5.2__links//:defs.bzl", link_57 = "npm_link_imported_package_store", store_57 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__uvu__0.5.6__links//:defs.bzl", link_58 = "npm_link_imported_package_store", store_58 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__wrap-ansi__7.0.0__links//:defs.bzl", store_59 = "npm_imported_package_store") +load("@@aspect_rules_js~~npm~lock-__wrap-ansi__8.1.0__links//:defs.bzl", store_60 = "npm_imported_package_store") + +# buildifier: disable=bzl-visibility +load("@aspect_rules_js//js:defs.bzl", _js_library = "js_library") + +# buildifier: disable=bzl-visibility +load("@aspect_rules_js//npm/private:npm_link_package_store.bzl", _npm_link_package_store = "npm_link_package_store") + +# buildifier: disable=bzl-visibility +load("@aspect_rules_js//npm/private:npm_package_store.bzl", _npm_package_store = "npm_package_store") + +_LINK_PACKAGES = ["", "projects/a", "projects/b", "projects/c", "projects/d", "vendored/is-number"] + +# buildifier: disable=function-docstring +def npm_link_all_packages(name = "node_modules", imported_links = []): + bazel_package = native.package_name() + root_package = "" + is_root = bazel_package == root_package + link = bazel_package in _LINK_PACKAGES + if not is_root and not link: + msg = "The npm_link_all_packages() macro loaded from @aspect_rules_js~~npm~lock-//:defs.bzl and called in bazel package '%s' may only be called in bazel packages that correspond to the pnpm root package or pnpm workspace projects. Projects are discovered from the pnpm-lock.yaml and may be missing if the lockfile is out of date. Root package: '', pnpm workspace projects: %s" % (bazel_package, "'" + "', '".join(_LINK_PACKAGES) + "'") + fail(msg) + link_targets = [] + scope_targets = {} + + for link_fn in imported_links: + new_link_targets, new_scope_targets = link_fn(name) + link_targets.extend(new_link_targets) + for _scope, _targets in new_scope_targets.items(): + if _scope not in scope_targets: + scope_targets[_scope] = [] + scope_targets[_scope].extend(_targets) + + if is_root: + store_0(name = "{}/ansi-regex".format(name)) + store_1(name = "{}/ansi-regex".format(name)) + store_2(name = "{}/ansi-styles".format(name)) + store_3(name = "{}/ansi-styles".format(name)) + store_4(name = "{}/@aspect-test/a".format(name)) + store_5(name = "{}/@aspect-test/b".format(name)) + store_6(name = "{}/@aspect-test/c".format(name)) + store_7(name = "{}/@aspect-test/c".format(name)) + store_8(name = "{}/@aspect-test/d".format(name)) + store_9(name = "{}/@aspect-test/e".format(name)) + store_10(name = "{}/@foo/jsonify".format(name)) + store_11(name = "{}/@isaacs/cliui".format(name)) + store_12(name = "{}/@rollup/plugin-typescript".format(name)) + store_13(name = "{}/@rollup/pluginutils".format(name)) + store_14(name = "{}/@types/archiver".format(name)) + store_15(name = "{}/@types/estree".format(name)) + store_16(name = "{}/@types/glob".format(name)) + store_17(name = "{}/@types/minimatch".format(name)) + store_18(name = "{}/@types/node".format(name)) + store_19(name = "{}/@types/sizzle".format(name)) + store_20(name = "{}/color-convert".format(name)) + store_21(name = "{}/color-name".format(name)) + store_22(name = "{}/debug".format(name)) + store_23(name = "{}/dequal".format(name)) + store_24(name = "{}/diff".format(name)) + store_25(name = "{}/eastasianwidth".format(name)) + store_26(name = "{}/emoji-regex".format(name)) + store_27(name = "{}/emoji-regex".format(name)) + store_28(name = "{}/estree-walker".format(name)) + store_29(name = "{}/fsevents".format(name)) + store_30(name = "{}/function-bind".format(name)) + store_31(name = "{}/hasown".format(name)) + store_32(name = "{}/hello".format(name)) + store_33(name = "{}/is-core-module".format(name)) + store_34(name = "{}/is-fullwidth-code-point".format(name)) + store_35(name = "{}/is-odd".format(name)) + store_36(name = "{}/is-odd".format(name)) + store_37(name = "{}/is-odd".format(name)) + store_38(name = "{}/is-odd".format(name)) + store_39(name = "{}/is-odd".format(name)) + store_40(name = "{}/jquery".format(name)) + store_41(name = "{}/kleur".format(name)) + store_42(name = "{}/meaning-of-life".format(name)) + store_43(name = "{}/mri".format(name)) + store_44(name = "{}/ms".format(name)) + store_45(name = "{}/path-parse".format(name)) + store_46(name = "{}/picomatch".format(name)) + store_47(name = "{}/resolve".format(name)) + store_48(name = "{}/rollup".format(name)) + store_49(name = "{}/rollup".format(name)) + store_50(name = "{}/sade".format(name)) + store_51(name = "{}/string-width".format(name)) + store_52(name = "{}/string-width".format(name)) + store_53(name = "{}/strip-ansi".format(name)) + store_54(name = "{}/strip-ansi".format(name)) + store_55(name = "{}/supports-preserve-symlinks-flag".format(name)) + store_56(name = "{}/tslib".format(name)) + store_57(name = "{}/typescript".format(name)) + store_58(name = "{}/uvu".format(name)) + store_59(name = "{}/wrap-ansi".format(name)) + store_60(name = "{}/wrap-ansi".format(name)) + if link: + if bazel_package == "": + link_4(name = "{}/@aspect-test-a-bad-scope".format(name)) + link_targets.append("//{}:{}/@aspect-test-a-bad-scope".format(bazel_package, name)) + if "@aspect-test-a-bad-scop" not in scope_targets: + scope_targets["@aspect-test-a-bad-scop"] = [link_targets[-1]] + else: + scope_targets["@aspect-test-a-bad-scop"].append(link_targets[-1]) + link_4(name = "{}/@aspect-test-custom-scope/a".format(name)) + link_targets.append("//{}:{}/@aspect-test-custom-scope/a".format(bazel_package, name)) + if "@aspect-test-custom-scope" not in scope_targets: + scope_targets["@aspect-test-custom-scope"] = [link_targets[-1]] + else: + scope_targets["@aspect-test-custom-scope"].append(link_targets[-1]) + link_4(name = "{}/@aspect-test/a".format(name)) + link_targets.append("//{}:{}/@aspect-test/a".format(bazel_package, name)) + if "@aspect-test" not in scope_targets: + scope_targets["@aspect-test"] = [link_targets[-1]] + else: + scope_targets["@aspect-test"].append(link_targets[-1]) + link_4(name = "{}/@aspect-test/a2".format(name)) + link_targets.append("//{}:{}/@aspect-test/a2".format(bazel_package, name)) + if "@aspect-test" not in scope_targets: + scope_targets["@aspect-test"] = [link_targets[-1]] + else: + scope_targets["@aspect-test"].append(link_targets[-1]) + link_4(name = "{}/aspect-test-a-no-scope".format(name)) + link_targets.append("//{}:{}/aspect-test-a-no-scope".format(bazel_package, name)) + link_4(name = "{}/aspect-test-a/no-at".format(name)) + link_targets.append("//{}:{}/aspect-test-a/no-at".format(bazel_package, name)) + link_5(name = "{}/@aspect-test/b".format(name)) + link_targets.append("//{}:{}/@aspect-test/b".format(bazel_package, name)) + if "@aspect-test" not in scope_targets: + scope_targets["@aspect-test"] = [link_targets[-1]] + else: + scope_targets["@aspect-test"].append(link_targets[-1]) + link_6(name = "{}/@aspect-test/c".format(name)) + link_targets.append("//{}:{}/@aspect-test/c".format(bazel_package, name)) + if "@aspect-test" not in scope_targets: + scope_targets["@aspect-test"] = [link_targets[-1]] + else: + scope_targets["@aspect-test"].append(link_targets[-1]) + link_9(name = "{}/@aspect-test/e".format(name)) + link_targets.append("//{}:{}/@aspect-test/e".format(bazel_package, name)) + if "@aspect-test" not in scope_targets: + scope_targets["@aspect-test"] = [link_targets[-1]] + else: + scope_targets["@aspect-test"].append(link_targets[-1]) + link_10(name = "{}/jsonify".format(name)) + link_targets.append("//{}:{}/jsonify".format(bazel_package, name)) + link_11(name = "{}/@isaacs/cliui".format(name)) + link_targets.append("//{}:{}/@isaacs/cliui".format(bazel_package, name)) + if "@isaacs" not in scope_targets: + scope_targets["@isaacs"] = [link_targets[-1]] + else: + scope_targets["@isaacs"].append(link_targets[-1]) + link_12(name = "{}/rollup-plugin-with-peers".format(name)) + link_targets.append("//{}:{}/rollup-plugin-with-peers".format(bazel_package, name)) + link_14(name = "{}/@types/archiver".format(name)) + link_targets.append("//{}:{}/@types/archiver".format(bazel_package, name)) + if "@types" not in scope_targets: + scope_targets["@types"] = [link_targets[-1]] + else: + scope_targets["@types"].append(link_targets[-1]) + link_18(name = "{}/@types/node".format(name)) + link_targets.append("//{}:{}/@types/node".format(bazel_package, name)) + if "@types" not in scope_targets: + scope_targets["@types"] = [link_targets[-1]] + else: + scope_targets["@types"].append(link_targets[-1]) + link_18(name = "{}/alias-types-node".format(name)) + link_targets.append("//{}:{}/alias-types-node".format(bazel_package, name)) + link_19(name = "{}/alias-only-sizzle".format(name)) + link_targets.append("//{}:{}/alias-only-sizzle".format(bazel_package, name)) + link_22(name = "{}/debug".format(name)) + link_targets.append("//{}:{}/debug".format(bazel_package, name)) + link_32(name = "{}/hello".format(name)) + link_targets.append("//{}:{}/hello".format(bazel_package, name)) + link_35(name = "{}/is-odd-v0".format(name)) + link_targets.append("//{}:{}/is-odd-v0".format(bazel_package, name)) + link_36(name = "{}/is-odd-v1".format(name)) + link_targets.append("//{}:{}/is-odd-v1".format(bazel_package, name)) + link_37(name = "{}/is-odd-v2".format(name)) + link_targets.append("//{}:{}/is-odd-v2".format(bazel_package, name)) + link_38(name = "{}/is-odd-v3".format(name)) + link_targets.append("//{}:{}/is-odd-v3".format(bazel_package, name)) + link_39(name = "{}/is-odd".format(name)) + link_targets.append("//{}:{}/is-odd".format(bazel_package, name)) + link_39(name = "{}/is-odd-alias".format(name)) + link_targets.append("//{}:{}/is-odd-alias".format(bazel_package, name)) + link_40(name = "{}/jquery-git-ssh-e61fccb".format(name)) + link_targets.append("//{}:{}/jquery-git-ssh-e61fccb".format(bazel_package, name)) + link_42(name = "{}/meaning-of-life".format(name)) + link_targets.append("//{}:{}/meaning-of-life".format(bazel_package, name)) + link_48(name = "{}/rollup".format(name)) + link_targets.append("//{}:{}/rollup".format(bazel_package, name)) + link_49(name = "{}/rollup3".format(name)) + link_targets.append("//{}:{}/rollup3".format(bazel_package, name)) + link_56(name = "{}/tslib".format(name)) + link_targets.append("//{}:{}/tslib".format(bazel_package, name)) + link_57(name = "{}/typescript".format(name)) + link_targets.append("//{}:{}/typescript".format(bazel_package, name)) + link_58(name = "{}/uvu".format(name)) + link_targets.append("//{}:{}/uvu".format(bazel_package, name)) + + if is_root: + _npm_package_store( + name = ".aspect_rules_js/{}/@scoped+c@0.0.0".format(name), + src = "//projects/c:pkg", + package = "@scoped/c", + version = "0.0.0", + deps = { + "//:.aspect_rules_js/{}/@scoped+a@0.0.0".format(name): "@scoped/a", + }, + visibility = ["//visibility:public"], + tags = ["manual"], + ) + + if bazel_package in [""]: + # terminal target for direct dependencies + _npm_link_package_store( + name = "{}/@scoped/c".format(name), + src = "//:.aspect_rules_js/{}/@scoped+c@0.0.0".format(name), + visibility = ["//visibility:public"], + tags = ["manual"], + ) + + # filegroup target that provides a single file which is + # package directory for use in $(execpath) and $(rootpath) + native.filegroup( + name = "{}/@scoped/c/dir".format(name), + srcs = [":{}/@scoped/c".format(name)], + output_group = "package_directory", + visibility = ["//visibility:public"], + tags = ["manual"], + ) + link_targets.append(":{}/@scoped/c".format(name)) + if "@scoped" not in scope_targets: + scope_targets["@scoped"] = [link_targets[-1]] + else: + scope_targets["@scoped"].append(link_targets[-1]) + + if is_root: + _npm_package_store( + name = ".aspect_rules_js/{}/is-number@0.0.0".format(name), + src = "//vendored/is-number:pkg", + package = "is-number", + version = "0.0.0", + deps = {}, + visibility = ["//visibility:public"], + tags = ["manual"], + ) + + if is_root: + _npm_package_store( + name = ".aspect_rules_js/{}/@scoped+a@0.0.0".format(name), + src = "//projects/a:pkg", + package = "@scoped/a", + version = "0.0.0", + deps = {}, + visibility = ["//visibility:public"], + tags = ["manual"], + ) + + if bazel_package in ["", "projects/b", "projects/c", "projects/d"]: + # terminal target for direct dependencies + _npm_link_package_store( + name = "{}/@scoped/a".format(name), + src = "//:.aspect_rules_js/{}/@scoped+a@0.0.0".format(name), + visibility = ["//visibility:public"], + tags = ["manual"], + ) + + # filegroup target that provides a single file which is + # package directory for use in $(execpath) and $(rootpath) + native.filegroup( + name = "{}/@scoped/a/dir".format(name), + srcs = [":{}/@scoped/a".format(name)], + output_group = "package_directory", + visibility = ["//visibility:public"], + tags = ["manual"], + ) + link_targets.append(":{}/@scoped/a".format(name)) + if "@scoped" not in scope_targets: + scope_targets["@scoped"] = [link_targets[-1]] + else: + scope_targets["@scoped"].append(link_targets[-1]) + + if is_root: + _npm_package_store( + name = ".aspect_rules_js/{}/@scoped+b@0.0.0".format(name), + src = "//projects/b:pkg", + package = "@scoped/b", + version = "0.0.0", + deps = { + "//:.aspect_rules_js/{}/@scoped+a@0.0.0".format(name): "@scoped/a", + }, + visibility = ["//visibility:public"], + tags = ["manual"], + ) + + if bazel_package in [""]: + # terminal target for direct dependencies + _npm_link_package_store( + name = "{}/@scoped/b".format(name), + src = "//:.aspect_rules_js/{}/@scoped+b@0.0.0".format(name), + visibility = ["//visibility:public"], + tags = ["manual"], + ) + + # filegroup target that provides a single file which is + # package directory for use in $(execpath) and $(rootpath) + native.filegroup( + name = "{}/@scoped/b/dir".format(name), + srcs = [":{}/@scoped/b".format(name)], + output_group = "package_directory", + visibility = ["//visibility:public"], + tags = ["manual"], + ) + link_targets.append(":{}/@scoped/b".format(name)) + if "@scoped" not in scope_targets: + scope_targets["@scoped"] = [link_targets[-1]] + else: + scope_targets["@scoped"].append(link_targets[-1]) + + if is_root: + _npm_package_store( + name = ".aspect_rules_js/{}/@scoped+d@0.0.0".format(name), + src = "//projects/d:pkg", + package = "@scoped/d", + version = "0.0.0", + deps = { + "//:.aspect_rules_js/{}/@scoped+a@0.0.0".format(name): "@scoped/a", + }, + visibility = ["//visibility:public"], + tags = ["manual"], + ) + + if bazel_package in [""]: + # terminal target for direct dependencies + _npm_link_package_store( + name = "{}/@scoped/d".format(name), + src = "//:.aspect_rules_js/{}/@scoped+d@0.0.0".format(name), + visibility = ["//visibility:public"], + tags = ["manual"], + ) + + # filegroup target that provides a single file which is + # package directory for use in $(execpath) and $(rootpath) + native.filegroup( + name = "{}/@scoped/d/dir".format(name), + srcs = [":{}/@scoped/d".format(name)], + output_group = "package_directory", + visibility = ["//visibility:public"], + tags = ["manual"], + ) + link_targets.append(":{}/@scoped/d".format(name)) + if "@scoped" not in scope_targets: + scope_targets["@scoped"] = [link_targets[-1]] + else: + scope_targets["@scoped"].append(link_targets[-1]) + + if is_root: + _npm_package_store( + name = ".aspect_rules_js/{}/scoped+bad@0.0.0".format(name), + src = "//projects/b:pkg", + package = "scoped/bad", + version = "0.0.0", + deps = { + "//:.aspect_rules_js/{}/@scoped+a@0.0.0".format(name): "@scoped/a", + }, + visibility = ["//visibility:public"], + tags = ["manual"], + ) + + if bazel_package in [""]: + # terminal target for direct dependencies + _npm_link_package_store( + name = "{}/scoped/bad".format(name), + src = "//:.aspect_rules_js/{}/scoped+bad@0.0.0".format(name), + visibility = ["//visibility:public"], + tags = ["manual"], + ) + + # filegroup target that provides a single file which is + # package directory for use in $(execpath) and $(rootpath) + native.filegroup( + name = "{}/scoped/bad/dir".format(name), + srcs = [":{}/scoped/bad".format(name)], + output_group = "package_directory", + visibility = ["//visibility:public"], + tags = ["manual"], + ) + link_targets.append(":{}/scoped/bad".format(name)) + + for scope, scoped_targets in scope_targets.items(): + _js_library( + name = "{}/{}".format(name, scope), + srcs = scoped_targets, + tags = ["manual"], + visibility = ["//visibility:public"], + ) + + _js_library( + name = name, + srcs = link_targets, + tags = ["manual"], + visibility = ["//visibility:public"], + ) + +# buildifier: disable=function-docstring +def npm_link_targets(name = "node_modules", package = None): + bazel_package = package if package != None else native.package_name() + link = bazel_package in _LINK_PACKAGES + + link_targets = [] + + if link: + if bazel_package == "": + link_targets.append("//{}:{}/@aspect-test-a-bad-scope".format(bazel_package, name)) + link_targets.append("//{}:{}/@aspect-test-custom-scope/a".format(bazel_package, name)) + link_targets.append("//{}:{}/@aspect-test/a".format(bazel_package, name)) + link_targets.append("//{}:{}/@aspect-test/a2".format(bazel_package, name)) + link_targets.append("//{}:{}/aspect-test-a-no-scope".format(bazel_package, name)) + link_targets.append("//{}:{}/aspect-test-a/no-at".format(bazel_package, name)) + link_targets.append("//{}:{}/@aspect-test/b".format(bazel_package, name)) + link_targets.append("//{}:{}/@aspect-test/c".format(bazel_package, name)) + link_targets.append("//{}:{}/@aspect-test/e".format(bazel_package, name)) + link_targets.append("//{}:{}/jsonify".format(bazel_package, name)) + link_targets.append("//{}:{}/@isaacs/cliui".format(bazel_package, name)) + link_targets.append("//{}:{}/rollup-plugin-with-peers".format(bazel_package, name)) + link_targets.append("//{}:{}/@types/archiver".format(bazel_package, name)) + link_targets.append("//{}:{}/@types/node".format(bazel_package, name)) + link_targets.append("//{}:{}/alias-types-node".format(bazel_package, name)) + link_targets.append("//{}:{}/alias-only-sizzle".format(bazel_package, name)) + link_targets.append("//{}:{}/debug".format(bazel_package, name)) + link_targets.append("//{}:{}/hello".format(bazel_package, name)) + link_targets.append("//{}:{}/is-odd-v0".format(bazel_package, name)) + link_targets.append("//{}:{}/is-odd-v1".format(bazel_package, name)) + link_targets.append("//{}:{}/is-odd-v2".format(bazel_package, name)) + link_targets.append("//{}:{}/is-odd-v3".format(bazel_package, name)) + link_targets.append("//{}:{}/is-odd".format(bazel_package, name)) + link_targets.append("//{}:{}/is-odd-alias".format(bazel_package, name)) + link_targets.append("//{}:{}/jquery-git-ssh-e61fccb".format(bazel_package, name)) + link_targets.append("//{}:{}/meaning-of-life".format(bazel_package, name)) + link_targets.append("//{}:{}/rollup".format(bazel_package, name)) + link_targets.append("//{}:{}/rollup3".format(bazel_package, name)) + link_targets.append("//{}:{}/tslib".format(bazel_package, name)) + link_targets.append("//{}:{}/typescript".format(bazel_package, name)) + link_targets.append("//{}:{}/uvu".format(bazel_package, name)) + + if bazel_package in [""]: + link_targets.append("//{}:{}/@scoped/c".format(bazel_package, name)) + + if bazel_package in ["", "projects/b", "projects/c", "projects/d"]: + link_targets.append("//{}:{}/@scoped/a".format(bazel_package, name)) + + if bazel_package in [""]: + link_targets.append("//{}:{}/@scoped/b".format(bazel_package, name)) + + if bazel_package in [""]: + link_targets.append("//{}:{}/@scoped/d".format(bazel_package, name)) + + if bazel_package in [""]: + link_targets.append("//{}:{}/scoped/bad".format(bazel_package, name)) + return link_targets diff --git a/e2e/pnpm_lockfiles/v10/snapshots/is-odd-v0_resolved.json b/e2e/pnpm_lockfiles/v10/snapshots/is-odd-v0_resolved.json new file mode 100644 index 000000000..ee9cac965 --- /dev/null +++ b/e2e/pnpm_lockfiles/v10/snapshots/is-odd-v0_resolved.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://docs.aspect.build/rules/aspect_rules_js/docs/npm_translate_lock", + "integrity": "sha512-3RKAybrJxq3zCUC+TJ5Ao0sBsbacAT3OBeNVcCbsQsHUC70qWK2R4JsIvax4OTjeGWnB8FumAWATUtS1jd+KYw==", + "version": "0.1.0" +} diff --git a/e2e/pnpm_lockfiles/v10/snapshots/is-odd_resolved.json b/e2e/pnpm_lockfiles/v10/snapshots/is-odd_resolved.json new file mode 100644 index 000000000..915d0a445 --- /dev/null +++ b/e2e/pnpm_lockfiles/v10/snapshots/is-odd_resolved.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://docs.aspect.build/rules/aspect_rules_js/docs/npm_translate_lock", + "integrity": "sha512-CQpnWPrDwmP1+SMHXZhtLtJyiyVfluGsX5iNCVkrhQtU3TQHsUWPG9wkdk9Lgd5yNpAg9jQEo90CBaXgWMA==", + "version": "3.0.1" +} diff --git a/e2e/pnpm_lockfiles/v10/snapshots/rollup3_package_json.bzl b/e2e/pnpm_lockfiles/v10/snapshots/rollup3_package_json.bzl new file mode 100644 index 000000000..5aec8f3de --- /dev/null +++ b/e2e/pnpm_lockfiles/v10/snapshots/rollup3_package_json.bzl @@ -0,0 +1,76 @@ +"@generated by @aspect_rules_js//npm/private:npm_import.bzl for npm package rollup@3.29.4" + +load("@aspect_bazel_lib//lib:directory_path.bzl", _directory_path = "directory_path") +load("@aspect_rules_js//js:defs.bzl", _js_binary = "js_binary", _js_run_binary = "js_run_binary", _js_test = "js_test") + +def _rollup_internal(name, link_root_name, **kwargs): + store_target_name = ".aspect_rules_js/{}/rollup@3.29.4".format(link_root_name) + _directory_path( + name = "%s__entry_point" % name, + directory = "@@//:{}/dir".format(store_target_name), + path = "dist/bin/rollup", + tags = ["manual"], + ) + _js_binary( + name = "%s__js_binary" % name, + entry_point = ":%s__entry_point" % name, + data = ["@@//:{}".format(store_target_name)], + include_npm = kwargs.pop("include_npm", False), + tags = ["manual"], + ) + _js_run_binary( + name = name, + tool = ":%s__js_binary" % name, + mnemonic = kwargs.pop("mnemonic", "Rollup"), + **kwargs + ) + +def _rollup_test_internal(name, link_root_name, **kwargs): + store_target_name = ".aspect_rules_js/{}/rollup@3.29.4".format(link_root_name) + _directory_path( + name = "%s__entry_point" % name, + directory = "@@//:{}/dir".format(store_target_name), + path = "dist/bin/rollup", + tags = ["manual"], + ) + _js_test( + name = name, + entry_point = ":%s__entry_point" % name, + data = kwargs.pop("data", []) + ["@@//:{}".format(store_target_name)], + **kwargs + ) + +def _rollup_binary_internal(name, link_root_name, **kwargs): + store_target_name = ".aspect_rules_js/{}/rollup@3.29.4".format(link_root_name) + _directory_path( + name = "%s__entry_point" % name, + directory = "@@//:{}/dir".format(store_target_name), + path = "dist/bin/rollup", + tags = ["manual"], + ) + _js_binary( + name = name, + entry_point = ":%s__entry_point" % name, + data = kwargs.pop("data", []) + ["@@//:{}".format(store_target_name)], + **kwargs + ) + +def rollup(name, **kwargs): + _rollup_internal(name, "node_modules", **kwargs) + +def rollup_test(name, **kwargs): + _rollup_test_internal(name, "node_modules", **kwargs) + +def rollup_binary(name, **kwargs): + _rollup_binary_internal(name, "node_modules", **kwargs) + +def bin_factory(link_root_name): + # bind link_root_name using lambdas + return struct( + rollup = lambda name, **kwargs: _rollup_internal(name, link_root_name = link_root_name, **kwargs), + rollup_test = lambda name, **kwargs: _rollup_test_internal(name, link_root_name = link_root_name, **kwargs), + rollup_binary = lambda name, **kwargs: _rollup_binary_internal(name, link_root_name = link_root_name, **kwargs), + rollup_path = "dist/bin/rollup", + ) + +bin = bin_factory("node_modules") diff --git a/e2e/pnpm_lockfiles/v10/snapshots/rollup_links_defs.bzl b/e2e/pnpm_lockfiles/v10/snapshots/rollup_links_defs.bzl new file mode 100644 index 000000000..1d4ed01fc --- /dev/null +++ b/e2e/pnpm_lockfiles/v10/snapshots/rollup_links_defs.bzl @@ -0,0 +1,166 @@ +"@generated by @aspect_rules_js//npm/private:npm_import.bzl for npm package rollup@2.14.0" + +# buildifier: disable=bzl-visibility +load("@aspect_rules_js//npm/private:npm_link_package_store.bzl", _npm_link_package_store = "npm_link_package_store") + +# buildifier: disable=bzl-visibility +load("@aspect_rules_js//npm/private:npm_package_store_internal.bzl", _npm_package_store = "npm_package_store_internal") + +# Generated npm_package_store targets for npm package rollup@2.14.0 +# buildifier: disable=function-docstring +def npm_imported_package_store(name): + bazel_package = native.package_name() + root_package = "" + is_root = bazel_package == root_package + if not is_root: + msg = "No store links in bazel package '%s' for npm package npm package rollup@2.14.0. This is neither the root package nor a link package of this package." % bazel_package + fail(msg) + if not name.endswith("/rollup"): + msg = "name must end with one of '/rollup' when linking the store in package 'rollup'; recommended value is 'node_modules/rollup'" + fail(msg) + link_root_name = name[:-len("/rollup")] + + deps = { + ":.aspect_rules_js/{}/fsevents@2.3.3/pkg".format(link_root_name): "fsevents", + ":.aspect_rules_js/{}/rollup@2.14.0/pkg".format(link_root_name): "rollup", + } + ref_deps = { + ":.aspect_rules_js/{}/fsevents@2.3.3/ref".format(link_root_name): "fsevents", + } + + store_target_name = ".aspect_rules_js/{}/rollup@2.14.0".format(link_root_name) + + # reference target used to avoid circular deps + _npm_package_store( + name = "{}/ref".format(store_target_name), + package = "rollup", + version = "2.14.0", + dev = False, + tags = ["manual"], + ) + + # post-lifecycle target with reference deps for use in terminal target with transitive closure + _npm_package_store( + name = "{}/pkg".format(store_target_name), + src = "{}/pkg_lc".format(store_target_name) if False else "@@aspect_rules_js~~npm~lock-__rollup__2.14.0//:pkg", + package = "rollup", + version = "2.14.0", + dev = False, + deps = ref_deps, + tags = ["manual"], + ) + + # package store target with transitive closure of all npm package dependencies + _npm_package_store( + name = store_target_name, + src = None if True else "@@aspect_rules_js~~npm~lock-__rollup__2.14.0//:pkg", + package = "rollup", + version = "2.14.0", + dev = False, + deps = deps, + visibility = ["//visibility:public"], + tags = ["manual"], + ) + + # filegroup target that provides a single file which is + # package directory for use in $(execpath) and $(rootpath) + native.filegroup( + name = "{}/dir".format(store_target_name), + srcs = [":{}".format(store_target_name)], + output_group = "package_directory", + visibility = ["//visibility:public"], + tags = ["manual"], + ) + +# Generated npm_package_store and npm_link_package_store targets for npm package rollup@2.14.0 +# buildifier: disable=function-docstring +def npm_link_imported_package_store(name): + bazel_package = native.package_name() + link_packages = { + "": ["rollup"], + } + if bazel_package in link_packages: + link_aliases = link_packages[bazel_package] + else: + link_aliases = ["rollup"] + + link_alias = None + for _link_alias in link_aliases: + if name.endswith("/{}".format(_link_alias)): + # longest match wins + if not link_alias or len(_link_alias) > len(link_alias): + link_alias = _link_alias + if not link_alias: + msg = "name must end with one of '/{{ {link_aliases_comma_separated} }}' when called from package 'rollup'; recommended value(s) are 'node_modules/{{ {link_aliases_comma_separated} }}'".format(link_aliases_comma_separated = ", ".join(link_aliases)) + fail(msg) + + link_root_name = name[:-len("/{}".format(link_alias))] + store_target_name = ".aspect_rules_js/{}/rollup@2.14.0".format(link_root_name) + + # terminal package store target to link + _npm_link_package_store( + name = name, + package = link_alias, + src = "//:{}".format(store_target_name), + visibility = ["//visibility:public"], + tags = ["manual"], + ) + + # filegroup target that provides a single file which is + # package directory for use in $(execpath) and $(rootpath) + native.filegroup( + name = "{}/dir".format(name), + srcs = [":{}".format(name)], + output_group = "package_directory", + visibility = ["//visibility:public"], + tags = ["manual"], + ) + + return [":{}".format(name)] if True else [] + +# Generated npm_package_store and npm_link_package_store targets for npm package rollup@2.14.0 +# buildifier: disable=function-docstring +def npm_link_imported_package( + name = "node_modules", + link = None, + fail_if_no_link = True): + bazel_package = native.package_name() + root_package = "" + link_packages = { + "": ["rollup"], + } + + if link_packages and link != None: + fail("link attribute cannot be specified when link_packages are set") + + is_link = (link == True) or (link == None and bazel_package in link_packages) + is_root = bazel_package == root_package + + if fail_if_no_link and not is_root and not link: + msg = "Nothing to link in bazel package '%s' for npm package npm package rollup@2.14.0. This is neither the root package nor a link package of this package." % bazel_package + fail(msg) + + link_targets = [] + scoped_targets = {} + + if is_link: + link_aliases = [] + if bazel_package in link_packages: + link_aliases = link_packages[bazel_package] + if not link_aliases: + link_aliases = ["rollup"] + for link_alias in link_aliases: + link_target_name = "{}/{}".format(name, link_alias) + npm_link_imported_package_store(name = link_target_name) + if True: + link_targets.append(":{}".format(link_target_name)) + link_scope = link_alias[:link_alias.find("/", 1)] if link_alias[0] == "@" else None + if link_scope: + if link_scope not in scoped_targets: + scoped_targets[link_scope] = [] + scoped_targets[link_scope].append(link_target_name) + + if is_root: + npm_imported_package_store("{}/rollup".format(name)) + + return (link_targets, scoped_targets) diff --git a/e2e/pnpm_lockfiles/v10/snapshots/rollup_package_json.bzl b/e2e/pnpm_lockfiles/v10/snapshots/rollup_package_json.bzl new file mode 100644 index 000000000..fd61e273f --- /dev/null +++ b/e2e/pnpm_lockfiles/v10/snapshots/rollup_package_json.bzl @@ -0,0 +1,76 @@ +"@generated by @aspect_rules_js//npm/private:npm_import.bzl for npm package rollup@2.14.0" + +load("@aspect_bazel_lib//lib:directory_path.bzl", _directory_path = "directory_path") +load("@aspect_rules_js//js:defs.bzl", _js_binary = "js_binary", _js_run_binary = "js_run_binary", _js_test = "js_test") + +def _rollup_internal(name, link_root_name, **kwargs): + store_target_name = ".aspect_rules_js/{}/rollup@2.14.0".format(link_root_name) + _directory_path( + name = "%s__entry_point" % name, + directory = "@@//:{}/dir".format(store_target_name), + path = "./dist/bin/rollup", + tags = ["manual"], + ) + _js_binary( + name = "%s__js_binary" % name, + entry_point = ":%s__entry_point" % name, + data = ["@@//:{}".format(store_target_name)], + include_npm = kwargs.pop("include_npm", False), + tags = ["manual"], + ) + _js_run_binary( + name = name, + tool = ":%s__js_binary" % name, + mnemonic = kwargs.pop("mnemonic", "Rollup"), + **kwargs + ) + +def _rollup_test_internal(name, link_root_name, **kwargs): + store_target_name = ".aspect_rules_js/{}/rollup@2.14.0".format(link_root_name) + _directory_path( + name = "%s__entry_point" % name, + directory = "@@//:{}/dir".format(store_target_name), + path = "./dist/bin/rollup", + tags = ["manual"], + ) + _js_test( + name = name, + entry_point = ":%s__entry_point" % name, + data = kwargs.pop("data", []) + ["@@//:{}".format(store_target_name)], + **kwargs + ) + +def _rollup_binary_internal(name, link_root_name, **kwargs): + store_target_name = ".aspect_rules_js/{}/rollup@2.14.0".format(link_root_name) + _directory_path( + name = "%s__entry_point" % name, + directory = "@@//:{}/dir".format(store_target_name), + path = "./dist/bin/rollup", + tags = ["manual"], + ) + _js_binary( + name = name, + entry_point = ":%s__entry_point" % name, + data = kwargs.pop("data", []) + ["@@//:{}".format(store_target_name)], + **kwargs + ) + +def rollup(name, **kwargs): + _rollup_internal(name, "node_modules", **kwargs) + +def rollup_test(name, **kwargs): + _rollup_test_internal(name, "node_modules", **kwargs) + +def rollup_binary(name, **kwargs): + _rollup_binary_internal(name, "node_modules", **kwargs) + +def bin_factory(link_root_name): + # bind link_root_name using lambdas + return struct( + rollup = lambda name, **kwargs: _rollup_internal(name, link_root_name = link_root_name, **kwargs), + rollup_test = lambda name, **kwargs: _rollup_test_internal(name, link_root_name = link_root_name, **kwargs), + rollup_binary = lambda name, **kwargs: _rollup_binary_internal(name, link_root_name = link_root_name, **kwargs), + rollup_path = "./dist/bin/rollup", + ) + +bin = bin_factory("node_modules")