fix(telemetry): stop bearer redaction from eating plain prose

The bearer rule matched any 8+ run of letters after the word, so
package.json prose like "uses bearer authentication" lost its
following word to the placeholder. Real bearer credentials always
carry a digit; require one in the candidate token.
This commit is contained in:
imccyu
2026-07-18 21:56:52 +08:00
parent e674f4c20e
commit 7a5d3ae5ce
2 changed files with 13 additions and 1 deletions

View File

@@ -154,6 +154,13 @@ describe('SecretRedactor.redactText', () => {
.toBe(`sending Bearer ${REDACTED} now`)
})
it('keeps letters-only prose after the word bearer intact', () => {
expect(redactor.redactText('uses bearer authentication for requests'))
.toBe('uses bearer authentication for requests')
expect(redactor.redactText('"description": "bearer token-helper middleware"'))
.toBe('"description": "bearer token-helper middleware"')
})
it('redacts standalone secret-shaped tokens while keeping package names and paths', () => {
expect(redactor.redactText('key sk-abcdefghij1234567890 end'))
.toBe(`key ${REDACTED} end`)