fix(builtin): npm_package_bin include runfiles in DefaultInfo

Otherwise you can't use a data dep on one of these to gather runtime deps

fixes #3257
diff --git a/internal/node/npm_package_bin.bzl b/internal/node/npm_package_bin.bzl
index 91b8c33..c052758 100644
--- a/internal/node/npm_package_bin.bzl
+++ b/internal/node/npm_package_bin.bzl
@@ -87,8 +87,11 @@
         exit_code_out = ctx.outputs.exit_code_out,
         link_workspace_root = ctx.attr.link_workspace_root,
     )
-
-    return [DefaultInfo(files = depset(outputs + tool_outputs))]
+    files = outputs + tool_outputs
+    return [DefaultInfo(
+        files = depset(files),
+        runfiles = ctx.runfiles(files = files),
+    )]
 
 _npm_package_bin = rule(
     _impl,
diff --git a/internal/node/test/BUILD.bazel b/internal/node/test/BUILD.bazel
index 0b0cb8e..59b80fd 100644
--- a/internal/node/test/BUILD.bazel
+++ b/internal/node/test/BUILD.bazel
@@ -6,6 +6,7 @@
 load("//third_party/github.com/bazelbuild/bazel-skylib:rules/copy_file.bzl", "copy_file")
 load("//third_party/github.com/bazelbuild/bazel-skylib:rules/write_file.bzl", "write_file")
 load(":nodejs_toolchain_test.bzl", "nodejs_toolchain_test")
+load(":npm_package_bin_test.bzl", "npm_package_bin_test_suite")
 
 # You can have a nodejs_binary with no node_modules attribute
 # and no fine grained deps
@@ -260,6 +261,8 @@
     stdout = "minified.stdout.js",
 )
 
+npm_package_bin_test_suite()
+
 generated_file_test(
     name = "stdout_output_test",
     src = "stdout_output_test.golden",
diff --git a/internal/node/test/npm_package_bin_test.bzl b/internal/node/test/npm_package_bin_test.bzl
new file mode 100644
index 0000000..73eeb0b
--- /dev/null
+++ b/internal/node/test/npm_package_bin_test.bzl
@@ -0,0 +1,21 @@
+"Unit tests for js_library rule"
+
+load("@bazel_skylib//lib:unittest.bzl", "asserts", "unittest")
+
+def _impl(ctx):
+    env = unittest.begin(ctx)
+
+    runfiles = []
+    for r in ctx.attr.lib[DefaultInfo].default_runfiles.files.to_list():
+        runfiles.append(r.basename)
+    asserts.equals(env, ctx.attr.expected_runfiles, sorted(runfiles))
+
+    return unittest.end(env)
+
+runfiles_test = unittest.make(_impl, attrs = {
+    "lib": attr.label(default = ":run_terser"),
+    "expected_runfiles": attr.string_list(default = ["minified.js"]),
+})
+
+def npm_package_bin_test_suite():
+    unittest.suite("runfiles", runfiles_test)