(candidate: string, covered: string)
| 246 | }; |
| 247 | |
| 248 | const patternSubsumes = (candidate: string, covered: string): boolean => { |
| 249 | if (candidate === covered) return true; |
| 250 | if (!candidate.endsWith(".*")) return false; |
| 251 | const prefix = candidate.slice(0, -1); |
| 252 | return covered.startsWith(prefix); |
| 253 | }; |
| 254 | |
| 255 | const reducePolicyPatterns = (patterns: readonly string[]): readonly string[] => { |
| 256 | const unique = [...new Set(patterns)].sort((a, b) => a.localeCompare(b)); |
no outgoing calls
no test coverage detected