scrub function
Object?
scrub(
- Object? payload, {
- List<
String> ? extraDenylist, - ScrubOptions options = const ScrubOptions(),
Returns a sanitized deep copy of payload. extraDenylist may add key
terms; it must not narrow the canonical list. options gates the value
scrubbers (ScrubOptions.sendDefaultPii). Fail-open at the value level.
Implementation
Object? scrub(
Object? payload, {
List<String>? extraDenylist,
ScrubOptions options = const ScrubOptions(),
}) {
final denylist = <String>[...kDefaultDenylist];
if (extraDenylist != null) {
for (final t in extraDenylist) {
final lower = t.toLowerCase();
if (!denylist.contains(lower)) denylist.add(lower);
}
}
final seen = <int>{};
// scrubValues starts true at the root; entering an exempt subtree flips it.
return _walk(payload, denylist, seen, options, true);
}