for (const key in source) {
        out[key] = isValue(obj) && isValue(obj[key])
          ? updateJsonOfDeep(obj[key], source[key])
          : copyArrayOfDeep(source[key])
      }