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