MCPcopy Index your code
hub / github.com/codeaashu/claude-code / filterInvalidPermissionRules

Function filterInvalidPermissionRules

src/utils/settings/validation.ts:224–265  ·  view source on GitHub ↗
(
  data: unknown,
  filePath: string,
)

Source from the content-addressed store, hash-verified

222 * Returns warnings for each filtered rule.
223 */
224export function filterInvalidPermissionRules(
225 data: unknown,
226 filePath: string,
227): ValidationError[] {
228 if (!data || typeof data !== 'object') return []
229 const obj = data as Record<string, unknown>
230 if (!obj.permissions || typeof obj.permissions !== 'object') return []
231 const perms = obj.permissions as Record<string, unknown>
232
233 const warnings: ValidationError[] = []
234 for (const key of ['allow', 'deny', 'ask']) {
235 const rules = perms[key]
236 if (!Array.isArray(rules)) continue
237
238 perms[key] = rules.filter(rule => {
239 if (typeof rule !== 'string') {
240 warnings.push({
241 file: filePath,
242 path: `permissions.${key}`,
243 message: `Non-string value in ${key} array was removed`,
244 invalidValue: rule,
245 })
246 return false
247 }
248 const result = validatePermissionRule(rule)
249 if (!result.valid) {
250 let message = `Invalid permission rule "${rule}" was skipped`
251 if (result.error) message += `: ${result.error}`
252 if (result.suggestion) message += `. ${result.suggestion}`
253 warnings.push({
254 file: filePath,
255 path: `permissions.${key}`,
256 message,
257 invalidValue: rule,
258 })
259 return false
260 }
261 return true
262 })
263 }
264 return warnings
265}
266

Callers 2

Calls 2

validatePermissionRuleFunction · 0.85
pushMethod · 0.45

Tested by

no test coverage detected