{"_id":"@balvajs/pr-beacon","_rev":"10-5023f824f7ec466f8d7059276329abcb","name":"@balvajs/pr-beacon","dist-tags":{"latest":"1.2.3"},"versions":{"0.0.1":{"name":"@balvajs/pr-beacon","version":"0.0.1","_id":"@balvajs/pr-beacon@0.0.1","maintainers":[{"name":"tomasbalvin","email":"t.balvin@make.com"}],"homepage":"https://github.com/Balvajs/pr-beacon#readme","bugs":{"url":"https://github.com/Balvajs/pr-beacon/issues"},"dist":{"shasum":"f19bcedd9288188c31e8d34aa8572cdd842eb22e","tarball":"https://registry.npmjs.org/@balvajs/pr-beacon/-/pr-beacon-0.0.1.tgz","fileCount":62,"integrity":"sha512-HXbmghKGKmgl2HClawAVW6mLfWBQX6uNiTGbVYwoFEUImPG6vpc+EpDbC24iEPjVFl4x1qjRTs+aQFJhE06Szw==","signatures":[{"sig":"MEYCIQDGoHYb8m1RyYoxHnKg8AXZJaGiYk0wiXlcatG4GRNyTQIhAJxd1g1jOrJ+YBmaLHjvEL+iEFa8QypzvGcM3MpVjn5i","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4969965},"type":"module","access":"public","engines":{"node":">=24"},"exports":{".":"./dist-sdk/index.mjs","./package.json":"./package.json"},"gitHead":"79d472297f9046948b1108a2956efd6a20c0a9cd","scripts":{"lint":"oxlint --type-aware","build":"tsdown","format":"oxfmt","lint:fix":"oxlint --type-aware --fix","type-check":"tsc","format:check":"oxfmt --check"},"_npmUser":{"name":"tomasbalvin","email":"t.balvin@make.com"},"repository":{"url":"git+https://github.com/Balvajs/pr-beacon.git","type":"git"},"_npmVersion":"11.6.2","description":"DangerJS-inspired GitHub Action tool that posts and updates a single sticky PR comment with CI info and warnings.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zod":"4.3.6","marked":"17.0.3","radashi":"12.7.2","picocolors":"1.1.1","@actions/core":"3.0.0","@actions/github":"9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"oxfmt":"0.35.0","oxlint":"1.50.0","tsdown":"0.21.0-beta.2","typescript":"5.9.3","@types/node":"25.3.2","oxlint-tsgolint":"0.15.0"},"_npmOperationalInternal":{"tmp":"tmp/pr-beacon_0.0.1_1772232058182_0.6566349393338364","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@balvajs/pr-beacon","version":"1.0.1","_id":"@balvajs/pr-beacon@1.0.1","maintainers":[{"name":"tomasbalvin","email":"t.balvin@make.com"}],"homepage":"https://github.com/Balvajs/pr-beacon#readme","bugs":{"url":"https://github.com/Balvajs/pr-beacon/issues"},"dist":{"shasum":"5a7010b776e3848c1e28a414a06e263704a13d55","tarball":"https://registry.npmjs.org/@balvajs/pr-beacon/-/pr-beacon-1.0.1.tgz","fileCount":14,"integrity":"sha512-g+hCmG0xRbLpbRSnekCi1F1Tc+H4EB+Nv59DWINjwjkOB8j7nacW7xWp9DX3lWFQYQB2QAorrVzqF/DyV+f1Lg==","signatures":[{"sig":"MEYCIQDX6MhLUkm+CJK4Yqv5xu5J+lnGJ/0dfc7jTHFN02ABFgIhALRp7wubbj6bkKlFZcovcfk+3TMjnD/T2chhWLhxMeRI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62110},"type":"module","engines":{"node":">=24"},"exports":{".":"./dist-sdk/index.mjs","./package.json":"./package.json"},"gitHead":"e2423e76cb54fe7e35d25f6eadc892740719d2ce","scripts":{"lint":"oxlint --type-aware","test":"vitest","build":"bun run build:action && bun run build:sdk","format":"oxfmt","prepare":"husky","lint:fix":"oxlint --type-aware --fix","build:sdk":"tsgo --project tsconfig.sdk.json","type-check":"tsgo --build","build:action":"tsdown","format:check":"oxfmt --check","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"tomasbalvin","email":"t.balvin@make.com"},"repository":{"url":"git+https://github.com/Balvajs/pr-beacon.git","type":"git"},"_npmVersion":"11.6.2","description":"DangerJS-inspired GitHub Action tool that posts and updates a single sticky PR comment with CI info and warnings.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zod":"4.3.6","marked":"17.0.3","radashi":"12.7.2","picocolors":"1.1.1","@actions/core":"3.0.0","@actions/github":"9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"9.1.7","oxfmt":"0.35.0","oxlint":"1.50.0","tsdown":"0.21.0-beta.2","vitest":"4.0.18","@types/node":"25.3.2","lint-staged":"16.3.0","oxlint-tsgolint":"0.15.0","@vitest/coverage-v8":"4.0.18","@octokit/openapi-types":"27.0.0","@typescript/native-preview":"7.0.0-dev.20260227.1"},"_npmOperationalInternal":{"tmp":"tmp/pr-beacon_1.0.1_1772400980467_0.45806030699684097","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@balvajs/pr-beacon","version":"1.0.2","_id":"@balvajs/pr-beacon@1.0.2","maintainers":[{"name":"tomasbalvin","email":"t.balvin@make.com"}],"homepage":"https://github.com/Balvajs/pr-beacon#readme","bugs":{"url":"https://github.com/Balvajs/pr-beacon/issues"},"dist":{"shasum":"18bfd7666194cb21637c4312fbf96a5f523d6e76","tarball":"https://registry.npmjs.org/@balvajs/pr-beacon/-/pr-beacon-1.0.2.tgz","fileCount":14,"integrity":"sha512-0bL/yqH5hGryuE5ObmItk+H2fbK7/h/GrR8jppl26WeSXDmlZW2smsGf6PHPRhMwTZztsQRzt2zuNHfyobpW3Q==","signatures":[{"sig":"MEYCIQDgYhJKc845QKkKCpJYLt2uZIpQiJLB6jHf1n8L1OjYrQIhAKVk34nEydC81y7b+JbnV61SGKrHKhJAaNNd5bc4m4LL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62110},"type":"module","engines":{"node":">=24"},"exports":{".":"./dist-sdk/index.mjs","./package.json":"./package.json"},"gitHead":"c320e9940f7d9721ed982b0591562100899eaf8c","scripts":{"lint":"oxlint --type-aware","test":"vitest","build":"bun run build:action && bun run build:sdk","format":"oxfmt","prepare":"husky","lint:fix":"oxlint --type-aware --fix","build:sdk":"tsgo --project tsconfig.sdk.json","type-check":"tsgo --build","build:action":"tsdown","format:check":"oxfmt --check","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"tomasbalvin","email":"t.balvin@make.com"},"repository":{"url":"git+https://github.com/Balvajs/pr-beacon.git","type":"git"},"_npmVersion":"11.6.2","description":"DangerJS-inspired GitHub Action tool that posts and updates a single sticky PR comment with CI info and warnings.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"zod":"4.3.6","marked":"17.0.3","radashi":"12.7.2","picocolors":"1.1.1","@actions/core":"3.0.0","@actions/github":"9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"9.1.7","oxfmt":"0.35.0","oxlint":"1.50.0","tsdown":"0.21.0-beta.2","vitest":"4.0.18","@types/node":"25.3.2","lint-staged":"16.3.0","oxlint-tsgolint":"0.15.0","@vitest/coverage-v8":"4.0.18","@octokit/openapi-types":"27.0.0","@typescript/native-preview":"7.0.0-dev.20260227.1"},"_npmOperationalInternal":{"tmp":"tmp/pr-beacon_1.0.2_1772403947456_0.050830926093035966","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@balvajs/pr-beacon","version":"1.0.3","_id":"@balvajs/pr-beacon@1.0.3","maintainers":[{"name":"tomasbalvin","email":"t.balvin@make.com"}],"homepage":"https://github.com/Balvajs/pr-beacon#readme","bugs":{"url":"https://github.com/Balvajs/pr-beacon/issues"},"dist":{"shasum":"5e0e0c4d1453adf105a2f1368b222520c8a85377","tarball":"https://registry.npmjs.org/@balvajs/pr-beacon/-/pr-beacon-1.0.3.tgz","fileCount":26,"integrity":"sha512-J2eDHGpryBgV51P02JlnHV1fj1hieIevhhDRj38byNWlg8LaqcHVn5nPTWRICkdbmdx+P4vuR1Eo+s2uOrggsQ==","signatures":[{"sig":"MEUCIA5fynX8Fdz4hB9tOwFmtGKinXUnEt69mpdAgpoQNGM3AiEAwZZXkpfpoITDg/6M2OAen4lQv98HGyGFSHvRXJ03iPo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@balvajs%2fpr-beacon@1.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":108503},"type":"module","engines":{"node":">=24"},"exports":{".":"./dist-sdk/index.js","./package.json":"./package.json"},"gitHead":"7f1231f149f86470ae10df290907f0ae5fb6f24f","scripts":{"lint":"oxlint --type-aware","test":"vitest","build":"bun run build:action && bun run build:sdk","format":"oxfmt","prepare":"husky","lint:fix":"oxlint --type-aware --fix","build:sdk":"rm -rf dist-sdk && tsgo --project tsconfig.sdk.json","type-check":"tsgo","build:action":"tsdown","format:check":"oxfmt --check","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:137265e7-dfa3-4e39-8c36-0b58f61e957b"}},"repository":{"url":"git+https://github.com/Balvajs/pr-beacon.git","type":"git"},"_npmVersion":"11.8.0","description":"DangerJS-inspired GitHub Action tool that posts and updates a single sticky PR comment with CI info and warnings.","directories":{},"_nodeVersion":"24.13.1","dependencies":{"zod":"4.3.6","marked":"17.0.3","radashi":"12.7.2","picocolors":"1.1.1","@actions/core":"3.0.0","@actions/github":"9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"9.1.7","oxfmt":"0.35.0","oxlint":"1.50.0","tsdown":"0.21.0-beta.2","vitest":"4.0.18","@types/node":"25.3.2","lint-staged":"16.3.0","oxlint-tsgolint":"0.15.0","@vitest/coverage-v8":"4.0.18","@octokit/openapi-types":"27.0.0","@typescript/native-preview":"7.0.0-dev.20260227.1"},"_npmOperationalInternal":{"tmp":"tmp/pr-beacon_1.0.3_1772454818336_0.26413984977627813","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@balvajs/pr-beacon","version":"1.1.0","_id":"@balvajs/pr-beacon@1.1.0","maintainers":[{"name":"tomasbalvin","email":"t.balvin@make.com"}],"homepage":"https://github.com/Balvajs/pr-beacon#readme","bugs":{"url":"https://github.com/Balvajs/pr-beacon/issues"},"dist":{"shasum":"257fd74fc9f754f6946475c41ca3f6236dfee428","tarball":"https://registry.npmjs.org/@balvajs/pr-beacon/-/pr-beacon-1.1.0.tgz","fileCount":26,"integrity":"sha512-2YCDp+aoSXKXgM58Ilccn3KFWxYaEBNEu/vzxdA0O97ZGimwTriXeJxrEfAAW5obENB4HVOzeUlsTYKP7AxE+w==","signatures":[{"sig":"MEUCIQDnA2NXiZuVkXmaTMBHl0oAnTL2Ldq/VF6kJyBx1AUHjwIgRhbaqKt/x/8cXCtAX0F6QFm4HR5hcY3i9sROscgLBn4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@balvajs%2fpr-beacon@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":108073},"type":"module","engines":{"node":">=24"},"exports":{".":"./dist-sdk/index.js","./package.json":"./package.json"},"gitHead":"00d4b03b0d4f39d9b85e7cf857455b4e3e79154b","scripts":{"lint":"oxlint --type-aware","test":"vitest","build":"bun run build:action && bun run build:sdk","format":"oxfmt","prepare":"husky","lint:fix":"oxlint --type-aware --fix","build:sdk":"rm -rf dist-sdk && tsgo --project tsconfig.sdk.json","type-check":"tsgo","build:action":"tsdown","format:check":"oxfmt --check","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:137265e7-dfa3-4e39-8c36-0b58f61e957b"}},"repository":{"url":"git+https://github.com/Balvajs/pr-beacon.git","type":"git"},"_npmVersion":"11.8.0","description":"DangerJS-inspired GitHub Action tool that posts and updates a single sticky PR comment with CI info and warnings.","directories":{},"_nodeVersion":"24.13.1","dependencies":{"zod":"4.3.6","marked":"17.0.3","radashi":"12.7.2","picocolors":"1.1.1","@actions/core":"3.0.0","@actions/github":"9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"9.1.7","oxfmt":"0.35.0","oxlint":"1.50.0","tsdown":"0.21.0-beta.2","vitest":"4.0.18","@types/node":"25.3.2","lint-staged":"16.3.0","oxlint-tsgolint":"0.15.0","@vitest/coverage-v8":"4.0.18","@octokit/openapi-types":"27.0.0","@typescript/native-preview":"7.0.0-dev.20260227.1"},"_npmOperationalInternal":{"tmp":"tmp/pr-beacon_1.1.0_1772472191946_0.9055133165891411","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@balvajs/pr-beacon","version":"1.1.1","_id":"@balvajs/pr-beacon@1.1.1","maintainers":[{"name":"tomasbalvin","email":"t.balvin@make.com"}],"homepage":"https://github.com/Balvajs/pr-beacon#readme","bugs":{"url":"https://github.com/Balvajs/pr-beacon/issues"},"dist":{"shasum":"61544455e7f111a498499e2a3f031b8a1e6bcdc4","tarball":"https://registry.npmjs.org/@balvajs/pr-beacon/-/pr-beacon-1.1.1.tgz","fileCount":26,"integrity":"sha512-LlqFzxbI9kQjYFJnAUJrXgf5/l29KSI/hUiIiioXdnwJaxasL9YDtSGnJdACpVmqugNXvB+9g853REtcKMPTzw==","signatures":[{"sig":"MEQCIG+Z514HKg5LOV+i22Kb6Lt9IvtbH7ZzIDSQtQjLDyeMAiAiorfxTly+zRbKfSfBe1W3yepBE4PBXKiqUWl6oP3oVQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@balvajs%2fpr-beacon@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":108176},"type":"module","engines":{"node":">=24"},"exports":{".":"./dist-sdk/index.js","./package.json":"./package.json"},"gitHead":"751b8cc5a6eeee52a979fbd0bfe121e0a0fc1f74","scripts":{"lint":"oxlint --type-aware","test":"vitest","build":"bun run build:action && bun run build:sdk","format":"oxfmt","prepare":"husky","lint:fix":"oxlint --type-aware --fix","build:sdk":"rm -rf dist-sdk && tsgo --project tsconfig.sdk.json","type-check":"tsgo","build:action":"tsdown","format:check":"oxfmt --check","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:137265e7-dfa3-4e39-8c36-0b58f61e957b"}},"repository":{"url":"git+https://github.com/Balvajs/pr-beacon.git","type":"git"},"_npmVersion":"11.8.0","description":"DangerJS-inspired GitHub Action tool that posts and updates a single sticky PR comment with CI info and warnings.","directories":{},"_nodeVersion":"24.13.1","dependencies":{"zod":"4.3.6","marked":"17.0.3","radashi":"12.7.2","picocolors":"1.1.1","@actions/core":"3.0.0","@actions/github":"9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"9.1.7","oxfmt":"0.35.0","oxlint":"1.50.0","tsdown":"0.21.0-beta.2","vitest":"4.0.18","@types/node":"25.3.2","lint-staged":"16.3.0","oxlint-tsgolint":"0.15.0","@vitest/coverage-v8":"4.0.18","@octokit/openapi-types":"27.0.0","@typescript/native-preview":"7.0.0-dev.20260227.1"},"_npmOperationalInternal":{"tmp":"tmp/pr-beacon_1.1.1_1772486241121_0.3748374973426487","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@balvajs/pr-beacon","version":"1.2.0","_id":"@balvajs/pr-beacon@1.2.0","maintainers":[{"name":"tomasbalvin","email":"t.balvin@make.com"}],"homepage":"https://github.com/Balvajs/pr-beacon#readme","bugs":{"url":"https://github.com/Balvajs/pr-beacon/issues"},"dist":{"shasum":"6a136b82d1aaeea6571186358fab7a81c96edb4d","tarball":"https://registry.npmjs.org/@balvajs/pr-beacon/-/pr-beacon-1.2.0.tgz","fileCount":26,"integrity":"sha512-FhqIz0MB0Ao6BnClSyOeKffupPGhsogrjOZhWvuAct9CTSx9gYploFJYMxkkGurbvU+57LuQT465RL0DlPlS6Q==","signatures":[{"sig":"MEYCIQCBMETAQHNIfZPrT59nN0nxVjBlWsUD+jEL9mp3kwVcwQIhAL6sMuEbxHg//uhEvmH4BmqH+gWaf5quftC+j1POlZe4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@balvajs%2fpr-beacon@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":126780},"type":"module","engines":{"node":">=24"},"exports":{".":"./dist-sdk/index.js","./package.json":"./package.json"},"gitHead":"1aabe76233a9f8d4ed30ac68ccd64fbfb1a54078","scripts":{"lint":"oxlint --type-aware","test":"vitest","build":"bun run build:action && bun run build:sdk","format":"oxfmt","prepare":"husky","lint:fix":"oxlint --type-aware --fix","build:sdk":"rm -rf dist-sdk && tsgo --project tsconfig.sdk.json","type-check":"tsgo","build:action":"tsdown","format:check":"oxfmt --check","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:137265e7-dfa3-4e39-8c36-0b58f61e957b"}},"repository":{"url":"git+https://github.com/Balvajs/pr-beacon.git","type":"git"},"_npmVersion":"11.9.0","description":"DangerJS-inspired GitHub Action tool that posts and updates a single sticky PR comment with CI info and warnings.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"4.3.6","marked":"17.0.3","radashi":"12.7.2","picocolors":"1.1.1","@actions/core":"3.0.0","@actions/github":"9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"9.1.7","oxfmt":"0.35.0","oxlint":"1.50.0","tsdown":"0.21.0-beta.2","vitest":"4.0.18","@types/node":"25.3.2","lint-staged":"16.3.0","oxlint-tsgolint":"0.15.0","@vitest/coverage-v8":"4.0.18","@octokit/openapi-types":"27.0.0","@typescript/native-preview":"7.0.0-dev.20260227.1"},"_npmOperationalInternal":{"tmp":"tmp/pr-beacon_1.2.0_1773731624421_0.8574285763655145","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@balvajs/pr-beacon","version":"1.2.1","_id":"@balvajs/pr-beacon@1.2.1","maintainers":[{"name":"tomasbalvin","email":"t.balvin@make.com"}],"homepage":"https://github.com/Balvajs/pr-beacon#readme","bugs":{"url":"https://github.com/Balvajs/pr-beacon/issues"},"dist":{"shasum":"6ed4687f83e6902902f5d0bc25e0019102b08385","tarball":"https://registry.npmjs.org/@balvajs/pr-beacon/-/pr-beacon-1.2.1.tgz","fileCount":26,"integrity":"sha512-jT6bCQbA44HbjKISin6qOyfYcVy7wmOESDNrRuJLyyIntjGL5ypVuG70T1X6PwS8ylNOAw+XwwTon53N1rYgOw==","signatures":[{"sig":"MEUCIQCtIGP3aWvy9BaLrXt/mIWOyOlJRHNu5Kwx8zaX0WzagAIgP/MwnhCqQEaxj9FM1HMm1wF+L61KVn2S49XYVUFc4+0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@balvajs%2fpr-beacon@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":127987},"type":"module","engines":{"node":">=24"},"exports":{".":"./dist-sdk/index.js","./package.json":"./package.json"},"gitHead":"6fb97f4e7ec7f32e049cd70a8676f2fa563eeb63","scripts":{"lint":"oxlint --type-aware","test":"vitest","build":"bun run build:action && bun run build:sdk","format":"oxfmt","prepare":"husky","lint:fix":"oxlint --type-aware --fix","build:sdk":"rm -rf dist-sdk && tsgo --project tsconfig.sdk.json","type-check":"tsgo","build:action":"tsdown","format:check":"oxfmt --check","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:137265e7-dfa3-4e39-8c36-0b58f61e957b"}},"repository":{"url":"git+https://github.com/Balvajs/pr-beacon.git","type":"git"},"_npmVersion":"11.9.0","description":"DangerJS-inspired GitHub Action tool that posts and updates a single sticky PR comment with CI info and warnings.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"4.3.6","marked":"17.0.3","radashi":"12.7.2","picocolors":"1.1.1","@actions/core":"3.0.0","@actions/github":"9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"9.1.7","oxfmt":"0.35.0","oxlint":"1.50.0","tsdown":"0.21.0-beta.2","vitest":"4.0.18","@types/node":"25.3.2","lint-staged":"16.3.0","oxlint-tsgolint":"0.15.0","@vitest/coverage-v8":"4.0.18","@octokit/openapi-types":"27.0.0","@typescript/native-preview":"7.0.0-dev.20260227.1"},"_npmOperationalInternal":{"tmp":"tmp/pr-beacon_1.2.1_1773755223368_0.006915746270856671","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@balvajs/pr-beacon","version":"1.2.2","_id":"@balvajs/pr-beacon@1.2.2","maintainers":[{"name":"tomasbalvin","email":"t.balvin@make.com"}],"homepage":"https://github.com/Balvajs/pr-beacon#readme","bugs":{"url":"https://github.com/Balvajs/pr-beacon/issues"},"dist":{"shasum":"6c4b1dcb26d287edddb77b7dda9f298e6b372cae","tarball":"https://registry.npmjs.org/@balvajs/pr-beacon/-/pr-beacon-1.2.2.tgz","fileCount":26,"integrity":"sha512-kK6PQfE57UV6VZ1zNAOKP2GNkdV+FRqdfRG5OQK8WEM0jyywr6WLDcJEKdB656rNFujcazRZ/VNTqOyXiIujJg==","signatures":[{"sig":"MEUCIESBcfMb6/mKdvxaiNhEexoYNIDLLsbMwpspxJvpPxWsAiEAjqQgTQG3QT6UteT6/D44kWJ8YuMOdoYo+BDrTtVjuPw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@balvajs%2fpr-beacon@1.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":128991},"type":"module","engines":{"node":">=24"},"exports":{".":"./dist-sdk/index.js","./package.json":"./package.json"},"gitHead":"6e4d4cb85d00f8328a4de037d3484d482bed2256","scripts":{"lint":"oxlint --type-aware","test":"vitest","build":"bun run build:action && bun run build:sdk","format":"oxfmt","prepare":"husky","lint:fix":"oxlint --type-aware --fix","build:sdk":"rm -rf dist-sdk && tsgo --project tsconfig.sdk.json","type-check":"tsgo","build:action":"tsdown","format:check":"oxfmt --check","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:137265e7-dfa3-4e39-8c36-0b58f61e957b"}},"repository":{"url":"git+https://github.com/Balvajs/pr-beacon.git","type":"git"},"_npmVersion":"11.9.0","description":"DangerJS-inspired GitHub Action tool that posts and updates a single sticky PR comment with CI info and warnings.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"4.3.6","marked":"17.0.3","radashi":"12.7.2","picocolors":"1.1.1","@actions/core":"3.0.0","@actions/github":"9.0.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"9.1.7","oxfmt":"0.35.0","oxlint":"1.50.0","tsdown":"0.21.0-beta.2","vitest":"4.0.18","@types/node":"25.3.2","lint-staged":"16.3.0","oxlint-tsgolint":"0.15.0","@vitest/coverage-v8":"4.0.18","@octokit/openapi-types":"27.0.0","@typescript/native-preview":"7.0.0-dev.20260227.1"},"_npmOperationalInternal":{"tmp":"tmp/pr-beacon_1.2.2_1774282065408_0.8902641725225988","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"@balvajs/pr-beacon","version":"1.2.3","description":"DangerJS-inspired GitHub Action tool that posts and updates a single sticky PR comment with CI info and warnings.","repository":{"type":"git","url":"git+https://github.com/Balvajs/pr-beacon.git"},"type":"module","exports":{".":"./dist-sdk/index.js","./package.json":"./package.json"},"scripts":{"build":"bun run build:action && bun run build:sdk","build:action":"tsdown","build:sdk":"rm -rf dist-sdk && tsgo --project tsconfig.sdk.json","format":"oxfmt","format:check":"oxfmt --check","lint":"oxlint --type-aware","lint:fix":"oxlint --type-aware --fix","prepare":"husky","test":"vitest","test:coverage":"vitest run --coverage","type-check":"tsgo"},"dependencies":{"@actions/core":"3.0.0","@actions/github":"9.0.0","marked":"17.0.3","picocolors":"1.1.1","radashi":"12.7.2","zod":"4.3.6"},"devDependencies":{"@octokit/openapi-types":"27.0.0","@types/node":"25.3.2","@typescript/native-preview":"7.0.0-dev.20260227.1","@vitest/coverage-v8":"4.0.18","husky":"9.1.7","lint-staged":"16.3.0","oxfmt":"0.35.0","oxlint":"1.50.0","oxlint-tsgolint":"0.15.0","tsdown":"0.21.0-beta.2","vitest":"4.0.18"},"engines":{"node":">=24"},"gitHead":"86f5f52284095e5dee64f5c4e43f6688ba9fbfa3","_id":"@balvajs/pr-beacon@1.2.3","bugs":{"url":"https://github.com/Balvajs/pr-beacon/issues"},"homepage":"https://github.com/Balvajs/pr-beacon#readme","_nodeVersion":"24.14.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-g+ttmaXvXP5RO7kwWz2rK/posGtUlmZKhgCuxzEuedrEcFgZ9rhVi+7Qpxh9Owt587h59SjpOt3mrmncTtnORA==","shasum":"005b2ea980f2019f367fbffbde37334f55f18e32","tarball":"https://registry.npmjs.org/@balvajs/pr-beacon/-/pr-beacon-1.2.3.tgz","fileCount":26,"unpackedSize":128991,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@balvajs%2fpr-beacon@1.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICDmmsmohKikQjxc1cNfkTedh/XW9DF8edJEjS4kzvsQAiB90z044nG9/wRs0+w8BkzbN7Lt5oC/jeBXpu7grwl2kA=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:137265e7-dfa3-4e39-8c36-0b58f61e957b"}},"directories":{},"maintainers":[{"name":"tomasbalvin","email":"t.balvin@make.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pr-beacon_1.2.3_1775684910301_0.3461038650870196"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-27T22:40:57.990Z","modified":"2026-04-08T21:48:30.751Z","0.0.1":"2026-02-27T22:40:58.418Z","1.0.1":"2026-03-01T21:36:20.629Z","1.0.2":"2026-03-01T22:25:47.626Z","1.0.3":"2026-03-02T12:33:38.486Z","1.1.0":"2026-03-02T17:23:12.115Z","1.1.1":"2026-03-02T21:17:21.246Z","1.2.0":"2026-03-17T07:13:44.558Z","1.2.1":"2026-03-17T13:47:03.514Z","1.2.2":"2026-03-23T16:07:45.583Z","1.2.3":"2026-04-08T21:48:30.468Z"},"bugs":{"url":"https://github.com/Balvajs/pr-beacon/issues"},"homepage":"https://github.com/Balvajs/pr-beacon#readme","repository":{"type":"git","url":"git+https://github.com/Balvajs/pr-beacon.git"},"description":"DangerJS-inspired GitHub Action tool that posts and updates a single sticky PR comment with CI info and warnings.","maintainers":[{"name":"tomasbalvin","email":"t.balvin@make.com"}],"readme":"# PR Beacon 🗼\n\n[![npm](https://img.shields.io/npm/v/@balvajs/pr-beacon)](https://www.npmjs.com/package/@balvajs/pr-beacon)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n\n> A [Danger.js](https://danger.systems/js/)-inspired GitHub Action that maintains a single sticky PR comment consolidating CI failures, warnings, and messages from across all your workflow jobs.\n\n![Preview of PR Beacon comment on a pull request](docs/beacon-preview.png)\n\n---\n\n## Overview\n\nPR Beacon solves the noise problem in pull request CI feedback. Instead of each job posting its own comment — leaving a cluttered thread — every job contributes to **one persistent beacon comment** that is created on first run and updated in place on every subsequent run.\n\nThe beacon is structured into two main areas:\n\n- **Tables** — Three severity levels displayed as structured HTML tables at the top of the comment:\n  | Section | Default Icon | Meaning |\n  |---|---|---|\n  | Fails | 🚫 | Blocking issues that must be resolved |\n  | Warnings | ⚠️ | Non-blocking issues worth attention |\n  | Messages | 📖 | Informational notes |\n\n- **Markdowns** — Free-form markdown sections appended below the tables.\n\nEach job owns its content slice via a **content ID** (defaulting to `workflow/job`). On every run a job replaces only its own slice, leaving other jobs' content untouched. Concurrent writes from parallel jobs are handled with optimistic locking and automatic retries.\n\n---\n\n## Features\n\n- **Sticky comment** — one comment per PR, updated in place, never duplicated\n- **Multi-job safe** — parallel CI jobs can all write without clobbering each other\n- **Upsert semantics** — each job replaces only its own previously written content\n- **Markdown support** — render markdown inside table cells or in free-form sections\n- **Custom icons** — override the default icon per row\n- **JSON file input** — pass a structured payload file for complex multi-row updates\n- **SDK** — use the `@balvajs/pr-beacon` NPM package directly in your own scripts\n\n---\n\n## GitHub Action Usage\n\n### Minimal — single message\n\n```yaml\n- uses: Balvajs/pr-beacon@1248b5b89c25f915cc9e65b8dcc99c2e7be8f973 # v1.0.0\n  with:\n    token: ${{ secrets.GITHUB_TOKEN }}\n    message: Build completed successfully.\n```\n\n### Report a failure\n\n```yaml\n- uses: Balvajs/pr-beacon@1248b5b89c25f915cc9e65b8dcc99c2e7be8f973 # v1.0.0\n  with:\n    token: ${{ secrets.GITHUB_TOKEN }}\n    fail: Tests failed on Node 22. See the [logs](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}).\n```\n\n### Report a warning\n\n```yaml\n- uses: Balvajs/pr-beacon@1248b5b89c25f915cc9e65b8dcc99c2e7be8f973 # v1.0.0\n  with:\n    token: ${{ secrets.GITHUB_TOKEN }}\n    warn: Bundle size increased by 12 kB.\n    warn-icon: 📦\n```\n\n### Multi-row payload via JSON file\n\nFor complex scenarios — multiple rows, mixed severity levels, or markdown sections — write the payload to a JSON file and point the action at it.\n\n**`beacon-payload.json`**\n\n```json\n{\n  \"fails\": [{ \"message\": \"Coverage dropped below 80%.\", \"id\": \"coverage-check\" }],\n  \"warnings\": [\n    \"Dependency `lodash` has a known vulnerability.\",\n    { \"message\": \"Build took **4 m 12 s** — consider caching.\", \"icon\": \"🐢\" }\n  ],\n  \"messages\": [\"Deployed preview to https://preview.example.com\"],\n  \"markdowns\": [\n    {\n      \"id\": \"coverage-report\",\n      \"message\": \"## Coverage\\n\\n| File | % |\\n|---|---|\\n| index.ts | 94% |\\n| utils.ts | 78% |\"\n    }\n  ]\n}\n```\n\n```yaml\n- name: Generate payload\n  run: node scripts/generate-beacon-payload.js > beacon-payload.json\n\n- uses: Balvajs/pr-beacon@1248b5b89c25f915cc9e65b8dcc99c2e7be8f973 # v1.0.0\n  with:\n    token: ${{ secrets.GITHUB_TOKEN }}\n    json-file: beacon-payload.json\n```\n\n### Multi-job workflow\n\nEach job writes to its own content slice. The beacon accumulates content from all jobs.\n\n```yaml\njobs:\n  test:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n      - run: npm test\n        continue-on-error: true\n      - uses: Balvajs/pr-beacon@1248b5b89c25f915cc9e65b8dcc99c2e7be8f973 # v1.0.0\n        if: always()\n        with:\n          token: ${{ secrets.GITHUB_TOKEN }}\n          fail: Unit tests failed. # written under ID \"{workflow} / {job}\"\n\n  lint:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n      - run: npm run lint\n        continue-on-error: true\n      - uses: Balvajs/pr-beacon@1248b5b89c25f915cc9e65b8dcc99c2e7be8f973 # v1.0.0\n        if: always()\n        with:\n          token: ${{ secrets.GITHUB_TOKEN }}\n          warn: Lint warnings detected. # written under ID \"{workflow} / {job}\"\n```\n\n### Post a markdown section\n\n```yaml\n- uses: Balvajs/pr-beacon@1248b5b89c25f915cc9e65b8dcc99c2e7be8f973 # v1.0.0\n  with:\n    token: ${{ secrets.GITHUB_TOKEN }}\n    markdown-id: coverage-report\n    markdown: |\n      ## Coverage\n\n      | File | % |\n      |---|---|\n      | index.ts | 94% |\n      | utils.ts | 78% |\n```\n\n### Targeted update — replace content from a previous job\n\nUse `content-ids-to-update` to remove content written by a specific earlier job before adding new content. This is useful in retry or follow-up jobs.\n\n```yaml\n- uses: Balvajs/pr-beacon@1248b5b89c25f915cc9e65b8dcc99c2e7be8f973 # v1.0.0\n  with:\n    token: ${{ secrets.GITHUB_TOKEN }}\n    content-ids-to-update: 'CI / build'\n    message: Build retried and passed.\n```\n\n---\n\n## Inputs\n\n| Input                   | Required | Default   | Description                                                                                                              |\n| ----------------------- | -------- | --------- | ------------------------------------------------------------------------------------------------------------------------ |\n| `token`                 | **Yes**  | —         | GitHub token (`GITHUB_TOKEN`) used to post PR comments. Requires `issues: write` and `pull-requests: write` permissions. |\n| `json-file`             | No       | `''`      | Path to a JSON file defining the full beacon payload (see [schema](#json-file-schema)).                                  |\n| `fail`                  | No       | `''`      | A single failure message added to the Fails table. Supports markdown.                                                    |\n| `fail-icon`             | No       | `''`      | Custom icon for the `fail` entry (e.g. `💥`).                                                                            |\n| `fail-id`               | No       | `''`      | Content ID for the `fail` entry, used for targeted upsert.                                                               |\n| `warn`                  | No       | `''`      | A single warning message added to the Warnings table. Supports markdown.                                                 |\n| `warn-icon`             | No       | `''`      | Custom icon for the `warn` entry.                                                                                        |\n| `warn-id`               | No       | `''`      | Content ID for the `warn` entry, used for targeted upsert.                                                               |\n| `message`               | No       | `''`      | A single informational message added to the Messages table. Supports markdown.                                           |\n| `message-icon`          | No       | `''`      | Custom icon for the `message` entry.                                                                                     |\n| `message-id`            | No       | `''`      | Content ID for the `message` entry, used for targeted upsert.                                                            |\n| `markdown`              | No       | `''`      | A single free-form markdown block appended below the tables.                                                             |\n| `markdown-id`           | No       | `''`      | Content ID for the `markdown` entry, used for targeted upsert.                                                           |\n| `content-ids-to-update` | No       | `''`      | Comma-separated list of content IDs to remove before adding new content.                                                 |\n| `fail-on-fail-message`  | No       | `'false'` | When `'true'`, the action step exits with a non-zero code if any fail message is present.                                |\n\n### JSON file schema\n\n```json\n{\n  \"fails\":    [ \"string\" | { \"message\": \"string\", \"icon?\": \"string\", \"id?\": \"string\" } ],\n  \"warnings\": [ \"string\" | { \"message\": \"string\", \"icon?\": \"string\", \"id?\": \"string\" } ],\n  \"messages\": [ \"string\" | { \"message\": \"string\", \"icon?\": \"string\", \"id?\": \"string\" } ],\n  \"markdowns\": [ \"string\" | { \"message\": \"string\", \"id?\": \"string\" } ],\n  \"options\": {\n    \"contentIdsToUpdate?\": [ \"string\" ]\n  }\n}\n```\n\n---\n\n## Permissions\n\nAdd the following permissions to your workflow or job:\n\n```yaml\npermissions:\n  issues: write\n  pull-requests: write\n```\n\n---\n\n## SDK\n\nThe `@balvajs/pr-beacon` package exposes the same engine used by the GitHub Action, letting you build the beacon programmatically in your own Node.js scripts.\n\n### Installation\n\n```sh\nnpm install @balvajs/pr-beacon\n```\n\n**Requirements:** Node.js ≥ 24, must be run inside a GitHub Actions environment with `GITHUB_TOKEN` set.\n\n### `submitPrBeacon(callback, options?)`\n\nThe primary entry point. Runs your callback, then submits the accumulated content to the PR comment in one atomic operation.\n\n```ts\nimport { submitPrBeacon } from '@balvajs/pr-beacon';\n\nawait submitPrBeacon(async (beacon) => {\n  beacon.fail('Tests failed on Node 22.');\n  beacon.warn('Bundle size increased by 12 kB.', { icon: '📦' });\n  beacon.message('Preview deployed to https://preview.example.com');\n  beacon.markdown('coverage', '## Coverage\\n\\n94% overall.');\n});\n```\n\n#### Callback argument — `PrBeacon`\n\n| Method            | Signature                     | Description                                                              |\n| ----------------- | ----------------------------- | ------------------------------------------------------------------------ |\n| `fail`            | `(message, options?) => void` | Add a row to the **Fails** table.                                        |\n| `warn`            | `(message, options?) => void` | Add a row to the **Warnings** table.                                     |\n| `message`         | `(message, options?) => void` | Add a row to the **Messages** table.                                     |\n| `markdown`        | `(message, options?) => void` | Append a free-form markdown section.                                     |\n| `hasFails`        | `() => boolean`               | Returns `true` if any fail was added.                                    |\n| `getPrInfo`       | `() => Promise<PrInfo>`       | Fetch pull request metadata (title, head SHA, base/head branches, etc.). |\n| `getChangedFiles` | `() => Promise<File[]>`       | Fetch the full list of files changed in the PR.                          |\n\nRow methods accept an optional second argument:\n\n```ts\ntype RowOptions = {\n  icon?: string; // override the default section icon\n  id?: string; // content ID for targeted upsert (default: \"workflow/job\")\n  markdownToHtml?: boolean; // convert markdown syntax in the message to HTML\n};\n```\n\n#### `submitPrBeacon` options\n\n```ts\ntype Options = {\n  githubToken?: string; // defaults to process.env.GITHUB_TOKEN\n  contentIdsToUpdate?: string[]; // content IDs to clear before writing (default: [\"workflow/job\"])\n  shouldFailOnFailMessage?: boolean; // call setFailed() when fails are present\n};\n```\n\n### Advanced — accessing PR info\n\n```ts\nimport { submitPrBeacon } from '@balvajs/pr-beacon';\n\nawait submitPrBeacon(async (beacon) => {\n  const pr = await beacon.getPrInfo();\n  const files = await beacon.getChangedFiles();\n\n  const hasDbMigration = files.some((f) => f.filename.startsWith('db/migrations/'));\n\n  if (hasDbMigration) {\n    beacon.warn(\n      `This PR modifies **${files.filter((f) => f.filename.startsWith('db/migrations/')).length}** database migration(s). Please review carefully.`,\n      { icon: '🗄️', markdownToHtml: true },\n    );\n  }\n\n  beacon.message(`PR #${pr.number}: _${pr.title}_`, { markdownToHtml: true });\n});\n```\n\n### Advanced — multi-job with custom content IDs\n\n```ts\nimport { submitPrBeacon } from '@balvajs/pr-beacon';\n\nawait submitPrBeacon(\n  (beacon) => {\n    beacon.fail('E2E tests failed on Chrome.');\n  },\n  {\n    contentIdsToUpdate: ['e2e-chrome'],\n    shouldFailOnFailMessage: true,\n  },\n);\n```\n\n---\n\n## License\n\n[MIT](LICENSE) © Balvajs\n","readmeFilename":"README.md"}