(base: McpRedactionRules, remove: McpRedactionRules)
| 172 | } |
| 173 | |
| 174 | function subtractRules(base: McpRedactionRules, remove: McpRedactionRules): McpRedactionRules { |
| 175 | const removeLower = (arr: string[]) => new Set(arr.map((s) => s.toLowerCase())) |
| 176 | |
| 177 | const removeKeys = removeLower(remove.sensitiveKeys ?? []) |
| 178 | const removePaths = new Set(remove.statePathPatterns ?? []) |
| 179 | const removePatterns = new Set(remove.valuePatterns ?? []) |
| 180 | |
| 181 | return { |
| 182 | sensitiveKeys: (base.sensitiveKeys ?? []).filter((k) => !removeKeys.has(k.toLowerCase())), |
| 183 | statePathPatterns: (base.statePathPatterns ?? []).filter((p) => !removePaths.has(p)), |
| 184 | valuePatterns: (base.valuePatterns ?? []).filter((p) => !removePatterns.has(p)), |
| 185 | } |
| 186 | } |
| 187 | |
| 188 | function dedupe(arr: string[]): string[] { |
| 189 | return [...new Set(arr)] |
no test coverage detected