feat: harden generic preset, add LLM retry, and finish tooling/docs
- PatternDef.validate + Luhn-gated credit-card detection; de-overlap the generic phone/date/IP patterns; presets.swiss unchanged (production behavior) - strip g/y flags from nameHint so .test() is stateless (latent footgun) - openAICompatibleProvider: bounded retry on transient failures (network / timeout / 429 / 5xx), configurable via retries + retryDelayMs - eslint + prettier + vitest coverage (97%); CI runs lint/format/coverage - docs: README badges + new-option docs, SECURITY.md, issue/PR templates 26 tests passing; build emits ESM+CJS+types. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
35
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
35
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Report incorrect behavior (false positive/negative, crash, leak)
|
||||
title: ''
|
||||
labels: bug
|
||||
assignees: ''
|
||||
---
|
||||
|
||||
**⚠️ Security/PII-leak issues:** please do NOT file them here — email security@mobiletic.com (see SECURITY.md).
|
||||
|
||||
## Describe the bug
|
||||
|
||||
A clear description of what's wrong.
|
||||
|
||||
## To reproduce
|
||||
|
||||
A minimal code sample or failing test:
|
||||
|
||||
```ts
|
||||
// import { Anonymizer, presets } from '@mobiletic/anonymizer';
|
||||
```
|
||||
|
||||
## Expected behavior
|
||||
|
||||
What you expected to happen.
|
||||
|
||||
## Environment
|
||||
|
||||
- `@mobiletic/anonymizer` version:
|
||||
- Node.js version:
|
||||
- Using an LLM provider? (which endpoint/model, or regex-only):
|
||||
|
||||
## Additional context
|
||||
|
||||
Anything else (input text shape, custom patterns, …). Redact any real PII before posting.
|
||||
Reference in New Issue
Block a user