import { RulesLogic } from 'json-logic-js' import { replaceDynamicDate } from './parseDynamicValue' export const parseRulesLogic = (rule: RulesLogic): RulesLogic => { // Handle string values - apply both transformations if (typeof rule === 'string') { const withDynamicDate = replaceDynamicDate(rule) return typeof withDynamicDate === 'string' ? withDynamicDate.replaceAll('/', '.') : withDynamicDate } if (Array.isArray(rule)) { return rule.map((r) => { if (!r) { return r } if (typeof r === 'object' && r.some) { return r } return parseRulesLogic(r) }) as unknown as RulesLogic } if (typeof rule === 'object' && rule !== null) { const processed = {} as Record for (const [key, value] of Object.entries(rule)) { processed[key] = parseRulesLogic(value as RulesLogic) } return processed as RulesLogic } return rule }