{ "version": "1.5", "category": "decode", "description": "Path expansion with safe mode, deep merge, conflict resolution tied to strict mode", "tests": [ { "name": "expands dotted key to nested object in safe mode", "input": "a.b.c: 1", "expected": { "a": { "b": { "c": 1 } } }, "options": { "expandPaths": "safe" }, "specSection": "13.4" }, { "name": "expands dotted key with inline array", "input": "data.meta.items[2]: a,b", "expected": { "data": { "meta": { "items": ["a", "b"] } } }, "options": { "expandPaths": "safe" }, "specSection": "13.4" }, { "name": "expands dotted key with tabular array", "input": "a.b.items[2]{id,name}:\n 1,A\n 2,B", "expected": { "a": { "b": { "items": [ { "id": 1, "name": "A" }, { "id": 2, "name": "B" } ] } } }, "options": { "expandPaths": "safe" }, "specSection": "13.4" }, { "name": "preserves literal dotted keys when expansion is off", "input": "user.name: Ada", "expected": { "user.name": "Ada" }, "options": { "expandPaths": "off" }, "specSection": "13.4" }, { "name": "expands and deep-merges preserving document-order insertion", "input": "a.b.c: 1\na.b.d: 2\na.e: 3", "expected": { "a": { "b": { "c": 1, "d": 2 }, "e": 3 } }, "options": { "expandPaths": "safe" }, "specSection": "13.4" }, { "name": "throws on expansion conflict (object vs primitive) when strict=true", "input": "a.b: 1\na: 2", "expected": null, "shouldError": true, "options": { "expandPaths": "safe", "strict": true }, "specSection": "14.5" }, { "name": "throws on expansion conflict (object vs array) when strict=true", "input": "a.b: 1\na[2]: 2,3", "expected": null, "shouldError": true, "options": { "expandPaths": "safe", "strict": true }, "specSection": "14.5" }, { "name": "applies LWW when strict=false (primitive overwrites expanded object)", "input": "a.b: 1\na: 2", "expected": { "a": 2 }, "options": { "expandPaths": "safe", "strict": false }, "specSection": "13.4", "note": "Document order determines winner: later key overwrites earlier" }, { "name": "applies LWW when strict=false (expanded object overwrites primitive)", "input": "a: 1\na.b: 2", "expected": { "a": { "b": 2 } }, "options": { "expandPaths": "safe", "strict": false }, "specSection": "13.4", "note": "Document order determines winner: later key overwrites earlier" }, { "name": "preserves quoted dotted key as literal when expandPaths=safe", "input": "a.b: 1\n\"c.d\": 2", "expected": { "a": { "b": 1 }, "c.d": 2 }, "options": { "expandPaths": "safe" }, "specSection": "13.4" }, { "name": "preserves non-IdentifierSegment keys as literals", "input": "full-name.x: 1", "expected": { "full-name.x": 1 }, "options": { "expandPaths": "safe" }, "specSection": "13.4" }, { "name": "expands keys creating empty nested objects", "input": "a.b.c:", "expected": { "a": { "b": { "c": {} } } }, "options": { "expandPaths": "safe" }, "specSection": "13.4" } ] }