code: function makeDeep(obj) {
      var deepObj = {};
  
      Object.keys(obj).forEach(function (key) {
          putPath(deepObj, key, obj[key]);
      });
  
      return deepObj;
  }
docs: given a shallow object where keys are key paths like: { 'foo.bar': 'baz', 'foo.baz': 'foo' } it returns a deep object with the key paths expanded like: { 'foo': { 'bar': 'baz', 'baz': 'foo' } }