{
  "type": "Program",
  "start": 0,
  "end": 6066,
  "loc": {
    "start": {
      "line": 1,
      "column": 0
    },
    "end": {
      "line": 230,
      "column": 0
    }
  },
  "sourceType": "module",
  "body": [
    {
      "type": "ImportDeclaration",
      "start": 0,
      "end": 37,
      "loc": {
        "start": {
          "line": 1,
          "column": 0
        },
        "end": {
          "line": 1,
          "column": 37
        }
      },
      "specifiers": [],
      "source": {
        "type": "Literal",
        "start": 7,
        "end": 36,
        "loc": {
          "start": {
            "line": 1,
            "column": 7
          },
          "end": {
            "line": 1,
            "column": 36
          }
        },
        "value": "source-map-support/register",
        "rawValue": "source-map-support/register",
        "raw": "'source-map-support/register'"
      }
    },
    {
      "type": "ImportDeclaration",
      "start": 39,
      "end": 227,
      "loc": {
        "start": {
          "line": 3,
          "column": 0
        },
        "end": {
          "line": 9,
          "column": 16
        }
      },
      "specifiers": [
        {
          "type": "ImportSpecifier",
          "start": 50,
          "end": 74,
          "loc": {
            "start": {
              "line": 4,
              "column": 2
            },
            "end": {
              "line": 4,
              "column": 26
            }
          },
          "imported": {
            "type": "Identifier",
            "start": 50,
            "end": 57,
            "loc": {
              "start": {
                "line": 4,
                "column": 2
              },
              "end": {
                "line": 4,
                "column": 9
              }
            },
            "name": "isArray"
          },
          "local": {
            "type": "Identifier",
            "start": 61,
            "end": 74,
            "loc": {
              "start": {
                "line": 4,
                "column": 13
              },
              "end": {
                "line": 4,
                "column": 26
              }
            },
            "name": "lodashIsArray"
          }
        },
        {
          "type": "ImportSpecifier",
          "start": 78,
          "end": 104,
          "loc": {
            "start": {
              "line": 5,
              "column": 2
            },
            "end": {
              "line": 5,
              "column": 28
            }
          },
          "imported": {
            "type": "Identifier",
            "start": 78,
            "end": 86,
            "loc": {
              "start": {
                "line": 5,
                "column": 2
              },
              "end": {
                "line": 5,
                "column": 10
              }
            },
            "name": "isString"
          },
          "local": {
            "type": "Identifier",
            "start": 90,
            "end": 104,
            "loc": {
              "start": {
                "line": 5,
                "column": 14
              },
              "end": {
                "line": 5,
                "column": 28
              }
            },
            "name": "lodashIsString"
          }
        },
        {
          "type": "ImportSpecifier",
          "start": 108,
          "end": 136,
          "loc": {
            "start": {
              "line": 6,
              "column": 2
            },
            "end": {
              "line": 6,
              "column": 30
            }
          },
          "imported": {
            "type": "Identifier",
            "start": 108,
            "end": 117,
            "loc": {
              "start": {
                "line": 6,
                "column": 2
              },
              "end": {
                "line": 6,
                "column": 11
              }
            },
            "name": "isBoolean"
          },
          "local": {
            "type": "Identifier",
            "start": 121,
            "end": 136,
            "loc": {
              "start": {
                "line": 6,
                "column": 15
              },
              "end": {
                "line": 6,
                "column": 30
              }
            },
            "name": "lodashIsBoolean"
          }
        },
        {
          "type": "ImportSpecifier",
          "start": 140,
          "end": 176,
          "loc": {
            "start": {
              "line": 7,
              "column": 2
            },
            "end": {
              "line": 7,
              "column": 38
            }
          },
          "imported": {
            "type": "Identifier",
            "start": 140,
            "end": 153,
            "loc": {
              "start": {
                "line": 7,
                "column": 2
              },
              "end": {
                "line": 7,
                "column": 15
              }
            },
            "name": "isPlainObject"
          },
          "local": {
            "type": "Identifier",
            "start": 157,
            "end": 176,
            "loc": {
              "start": {
                "line": 7,
                "column": 19
              },
              "end": {
                "line": 7,
                "column": 38
              }
            },
            "name": "lodashIsPlainObject"
          }
        },
        {
          "type": "ImportSpecifier",
          "start": 180,
          "end": 210,
          "loc": {
            "start": {
              "line": 8,
              "column": 2
            },
            "end": {
              "line": 8,
              "column": 32
            }
          },
          "imported": {
            "type": "Identifier",
            "start": 180,
            "end": 190,
            "loc": {
              "start": {
                "line": 8,
                "column": 2
              },
              "end": {
                "line": 8,
                "column": 12
              }
            },
            "name": "isFunction"
          },
          "local": {
            "type": "Identifier",
            "start": 194,
            "end": 210,
            "loc": {
              "start": {
                "line": 8,
                "column": 16
              },
              "end": {
                "line": 8,
                "column": 32
              }
            },
            "name": "lodashIsFunction"
          }
        }
      ],
      "importKind": "value",
      "source": {
        "type": "Literal",
        "start": 218,
        "end": 226,
        "loc": {
          "start": {
            "line": 9,
            "column": 7
          },
          "end": {
            "line": 9,
            "column": 15
          }
        },
        "value": "lodash",
        "rawValue": "lodash",
        "raw": "'lodash'"
      }
    },
    {
      "type": "ImportDeclaration",
      "start": 229,
      "end": 266,
      "loc": {
        "start": {
          "line": 11,
          "column": 0
        },
        "end": {
          "line": 11,
          "column": 37
        }
      },
      "specifiers": [
        {
          "type": "ImportSpecifier",
          "start": 238,
          "end": 245,
          "loc": {
            "start": {
              "line": 11,
              "column": 9
            },
            "end": {
              "line": 11,
              "column": 16
            }
          },
          "imported": {
            "type": "Identifier",
            "start": 238,
            "end": 245,
            "loc": {
              "start": {
                "line": 11,
                "column": 9
              },
              "end": {
                "line": 11,
                "column": 16
              }
            },
            "name": "isValid"
          },
          "local": {
            "type": "Identifier",
            "start": 238,
            "end": 245,
            "loc": {
              "start": {
                "line": 11,
                "column": 9
              },
              "end": {
                "line": 11,
                "column": 16
              }
            },
            "name": "isValid"
          }
        }
      ],
      "importKind": "value",
      "source": {
        "type": "Literal",
        "start": 253,
        "end": 265,
        "loc": {
          "start": {
            "line": 11,
            "column": 24
          },
          "end": {
            "line": 11,
            "column": 36
          }
        },
        "value": "./index.js",
        "rawValue": "./index.js",
        "raw": "'./index.js'"
      },
      "trailingComments": [
        {
          "type": "Block",
          "value": "*\n * Validates an array using a validator.\n *\n * @param {function|RegExp} validator - The validator to use on the elements in the array.\n * @return {function} - A function that takes a value and that returns true or false if valid or not.\n ",
          "start": 268,
          "end": 512,
          "loc": {
            "start": {
              "line": 13,
              "column": 0
            },
            "end": {
              "line": 18,
              "column": 3
            }
          },
          "range": [
            268,
            512
          ]
        }
      ]
    },
    {
      "type": "ExportNamedDeclaration",
      "start": 513,
      "end": 826,
      "loc": {
        "start": {
          "line": 19,
          "column": 0
        },
        "end": {
          "line": 31,
          "column": 1
        }
      },
      "declaration": {
        "type": "FunctionDeclaration",
        "start": 520,
        "end": 826,
        "loc": {
          "start": {
            "line": 19,
            "column": 7
          },
          "end": {
            "line": 31,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 529,
          "end": 536,
          "loc": {
            "start": {
              "line": 19,
              "column": 16
            },
            "end": {
              "line": 19,
              "column": 23
            }
          },
          "name": "isArray",
          "leadingComments": null
        },
        "generator": false,
        "expression": false,
        "async": false,
        "params": [
          {
            "type": "Identifier",
            "start": 537,
            "end": 546,
            "loc": {
              "start": {
                "line": 19,
                "column": 24
              },
              "end": {
                "line": 19,
                "column": 33
              }
            },
            "name": "validator"
          }
        ],
        "body": {
          "type": "BlockStatement",
          "start": 548,
          "end": 826,
          "loc": {
            "start": {
              "line": 19,
              "column": 35
            },
            "end": {
              "line": 31,
              "column": 1
            }
          },
          "body": [
            {
              "type": "ReturnStatement",
              "start": 554,
              "end": 824,
              "loc": {
                "start": {
                  "line": 20,
                  "column": 4
                },
                "end": {
                  "line": 30,
                  "column": 6
                }
              },
              "argument": {
                "type": "ArrowFunctionExpression",
                "start": 561,
                "end": 823,
                "loc": {
                  "start": {
                    "line": 20,
                    "column": 11
                  },
                  "end": {
                    "line": 30,
                    "column": 5
                  }
                },
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 562,
                    "end": 567,
                    "loc": {
                      "start": {
                        "line": 20,
                        "column": 12
                      },
                      "end": {
                        "line": 20,
                        "column": 17
                      }
                    },
                    "name": "input"
                  },
                  {
                    "type": "Identifier",
                    "start": 569,
                    "end": 573,
                    "loc": {
                      "start": {
                        "line": 20,
                        "column": 19
                      },
                      "end": {
                        "line": 20,
                        "column": 23
                      }
                    },
                    "name": "info"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 578,
                  "end": 823,
                  "loc": {
                    "start": {
                      "line": 20,
                      "column": 28
                    },
                    "end": {
                      "line": 30,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "IfStatement",
                      "start": 588,
                      "end": 678,
                      "loc": {
                        "start": {
                          "line": 21,
                          "column": 8
                        },
                        "end": {
                          "line": 23,
                          "column": 9
                        }
                      },
                      "test": {
                        "type": "Identifier",
                        "start": 592,
                        "end": 596,
                        "loc": {
                          "start": {
                            "line": 21,
                            "column": 12
                          },
                          "end": {
                            "line": 21,
                            "column": 16
                          }
                        },
                        "name": "info"
                      },
                      "consequent": {
                        "type": "BlockStatement",
                        "start": 598,
                        "end": 678,
                        "loc": {
                          "start": {
                            "line": 21,
                            "column": 18
                          },
                          "end": {
                            "line": 23,
                            "column": 9
                          }
                        },
                        "body": [
                          {
                            "type": "ReturnStatement",
                            "start": 612,
                            "end": 668,
                            "loc": {
                              "start": {
                                "line": 22,
                                "column": 12
                              },
                              "end": {
                                "line": 22,
                                "column": 68
                              }
                            },
                            "argument": {
                              "type": "CallExpression",
                              "start": 619,
                              "end": 667,
                              "loc": {
                                "start": {
                                  "line": 22,
                                  "column": 19
                                },
                                "end": {
                                  "line": 22,
                                  "column": 67
                                }
                              },
                              "callee": {
                                "type": "Identifier",
                                "start": 619,
                                "end": 629,
                                "loc": {
                                  "start": {
                                    "line": 22,
                                    "column": 19
                                  },
                                  "end": {
                                    "line": 22,
                                    "column": 29
                                  }
                                },
                                "name": "infoObject"
                              },
                              "arguments": [
                                {
                                  "type": "Identifier",
                                  "start": 630,
                                  "end": 639,
                                  "loc": {
                                    "start": {
                                      "line": 22,
                                      "column": 30
                                    },
                                    "end": {
                                      "line": 22,
                                      "column": 39
                                    }
                                  },
                                  "name": "validator"
                                },
                                {
                                  "type": "ArrowFunctionExpression",
                                  "start": 641,
                                  "end": 666,
                                  "loc": {
                                    "start": {
                                      "line": 22,
                                      "column": 41
                                    },
                                    "end": {
                                      "line": 22,
                                      "column": 66
                                    }
                                  },
                                  "id": null,
                                  "generator": false,
                                  "expression": true,
                                  "async": false,
                                  "params": [
                                    {
                                      "type": "Identifier",
                                      "start": 642,
                                      "end": 646,
                                      "loc": {
                                        "start": {
                                          "line": 22,
                                          "column": 42
                                        },
                                        "end": {
                                          "line": 22,
                                          "column": 46
                                        }
                                      },
                                      "name": "wrap"
                                    }
                                  ],
                                  "body": {
                                    "type": "TemplateLiteral",
                                    "start": 652,
                                    "end": 665,
                                    "loc": {
                                      "start": {
                                        "line": 22,
                                        "column": 52
                                      },
                                      "end": {
                                        "line": 22,
                                        "column": 65
                                      }
                                    },
                                    "expressions": [
                                      {
                                        "type": "Identifier",
                                        "start": 657,
                                        "end": 661,
                                        "loc": {
                                          "start": {
                                            "line": 22,
                                            "column": 57
                                          },
                                          "end": {
                                            "line": 22,
                                            "column": 61
                                          }
                                        },
                                        "name": "wrap"
                                      }
                                    ],
                                    "quasis": [
                                      {
                                        "type": "TemplateElement",
                                        "start": 653,
                                        "end": 655,
                                        "loc": {
                                          "start": {
                                            "line": 22,
                                            "column": 53
                                          },
                                          "end": {
                                            "line": 22,
                                            "column": 55
                                          }
                                        },
                                        "value": {
                                          "raw": "[ ",
                                          "cooked": "[ "
                                        },
                                        "tail": false
                                      },
                                      {
                                        "type": "TemplateElement",
                                        "start": 662,
                                        "end": 664,
                                        "loc": {
                                          "start": {
                                            "line": 22,
                                            "column": 62
                                          },
                                          "end": {
                                            "line": 22,
                                            "column": 64
                                          }
                                        },
                                        "value": {
                                          "raw": " ]",
                                          "cooked": " ]"
                                        },
                                        "tail": true
                                      }
                                    ],
                                    "parenthesizedExpression": true
                                  }
                                }
                              ]
                            }
                          }
                        ]
                      },
                      "alternate": null
                    },
                    {
                      "type": "IfStatement",
                      "start": 688,
                      "end": 766,
                      "loc": {
                        "start": {
                          "line": 25,
                          "column": 8
                        },
                        "end": {
                          "line": 27,
                          "column": 9
                        }
                      },
                      "test": {
                        "type": "UnaryExpression",
                        "start": 692,
                        "end": 713,
                        "loc": {
                          "start": {
                            "line": 25,
                            "column": 12
                          },
                          "end": {
                            "line": 25,
                            "column": 33
                          }
                        },
                        "operator": "!",
                        "prefix": true,
                        "argument": {
                          "type": "CallExpression",
                          "start": 693,
                          "end": 713,
                          "loc": {
                            "start": {
                              "line": 25,
                              "column": 13
                            },
                            "end": {
                              "line": 25,
                              "column": 33
                            }
                          },
                          "callee": {
                            "type": "Identifier",
                            "start": 693,
                            "end": 706,
                            "loc": {
                              "start": {
                                "line": 25,
                                "column": 13
                              },
                              "end": {
                                "line": 25,
                                "column": 26
                              }
                            },
                            "name": "lodashIsArray"
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 707,
                              "end": 712,
                              "loc": {
                                "start": {
                                  "line": 25,
                                  "column": 27
                                },
                                "end": {
                                  "line": 25,
                                  "column": 32
                                }
                              },
                              "name": "input"
                            }
                          ]
                        }
                      },
                      "consequent": {
                        "type": "BlockStatement",
                        "start": 715,
                        "end": 766,
                        "loc": {
                          "start": {
                            "line": 25,
                            "column": 35
                          },
                          "end": {
                            "line": 27,
                            "column": 9
                          }
                        },
                        "body": [
                          {
                            "type": "ReturnStatement",
                            "start": 729,
                            "end": 756,
                            "loc": {
                              "start": {
                                "line": 26,
                                "column": 12
                              },
                              "end": {
                                "line": 26,
                                "column": 39
                              }
                            },
                            "argument": {
                              "type": "Literal",
                              "start": 736,
                              "end": 755,
                              "loc": {
                                "start": {
                                  "line": 26,
                                  "column": 19
                                },
                                "end": {
                                  "line": 26,
                                  "column": 38
                                }
                              },
                              "value": "Was not an array!",
                              "rawValue": "Was not an array!",
                              "raw": "'Was not an array!'"
                            }
                          }
                        ]
                      },
                      "alternate": null
                    },
                    {
                      "type": "ReturnStatement",
                      "start": 776,
                      "end": 817,
                      "loc": {
                        "start": {
                          "line": 29,
                          "column": 8
                        },
                        "end": {
                          "line": 29,
                          "column": 49
                        }
                      },
                      "argument": {
                        "type": "CallExpression",
                        "start": 783,
                        "end": 816,
                        "loc": {
                          "start": {
                            "line": 29,
                            "column": 15
                          },
                          "end": {
                            "line": 29,
                            "column": 48
                          }
                        },
                        "callee": {
                          "type": "CallExpression",
                          "start": 783,
                          "end": 809,
                          "loc": {
                            "start": {
                              "line": 29,
                              "column": 15
                            },
                            "end": {
                              "line": 29,
                              "column": 41
                            }
                          },
                          "callee": {
                            "type": "Identifier",
                            "start": 783,
                            "end": 798,
                            "loc": {
                              "start": {
                                "line": 29,
                                "column": 15
                              },
                              "end": {
                                "line": 29,
                                "column": 30
                              }
                            },
                            "name": "isArrayOrSingle"
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 799,
                              "end": 808,
                              "loc": {
                                "start": {
                                  "line": 29,
                                  "column": 31
                                },
                                "end": {
                                  "line": 29,
                                  "column": 40
                                }
                              },
                              "name": "validator"
                            }
                          ]
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 810,
                            "end": 815,
                            "loc": {
                              "start": {
                                "line": 29,
                                "column": 42
                              },
                              "end": {
                                "line": 29,
                                "column": 47
                              }
                            },
                            "name": "input"
                          }
                        ]
                      }
                    }
                  ]
                }
              }
            }
          ],
          "trailingComments": null
        },
        "leadingComments": [
          {
            "type": "Block",
            "value": "*\n * Validates an array using a validator.\n *\n * @param {function|RegExp} validator - The validator to use on the elements in the array.\n * @return {function} - A function that takes a value and that returns true or false if valid or not.\n ",
            "start": 268,
            "end": 512,
            "loc": {
              "start": {
                "line": 13,
                "column": 0
              },
              "end": {
                "line": 18,
                "column": 3
              }
            },
            "range": [
              268,
              512
            ]
          }
        ],
        "trailingComments": [
          {
            "type": "Block",
            "value": "*\n * Validates an object using a validator.\n *\n * @param {function|RegExp} validator - The validator to use on the elements in the object\n * @return {function} - A function that takes a value and that returns true or false if valid or not.\n ",
            "start": 828,
            "end": 1073,
            "loc": {
              "start": {
                "line": 33,
                "column": 0
              },
              "end": {
                "line": 38,
                "column": 3
              }
            },
            "range": [
              828,
              1073
            ]
          }
        ]
      },
      "specifiers": [],
      "source": null,
      "leadingComments": [
        {
          "type": "Block",
          "value": "*\n * Validates an array using a validator.\n *\n * @param {function|RegExp} validator - The validator to use on the elements in the array.\n * @return {function} - A function that takes a value and that returns true or false if valid or not.\n ",
          "start": 268,
          "end": 512,
          "loc": {
            "start": {
              "line": 13,
              "column": 0
            },
            "end": {
              "line": 18,
              "column": 3
            }
          },
          "range": [
            268,
            512
          ]
        }
      ],
      "trailingComments": [
        {
          "type": "Block",
          "value": "*\n * Validates an object using a validator.\n *\n * @param {function|RegExp} validator - The validator to use on the elements in the object\n * @return {function} - A function that takes a value and that returns true or false if valid or not.\n ",
          "start": 828,
          "end": 1073,
          "loc": {
            "start": {
              "line": 33,
              "column": 0
            },
            "end": {
              "line": 38,
              "column": 3
            }
          },
          "range": [
            828,
            1073
          ]
        }
      ]
    },
    {
      "type": "ExportNamedDeclaration",
      "start": 1074,
      "end": 1547,
      "loc": {
        "start": {
          "line": 39,
          "column": 0
        },
        "end": {
          "line": 56,
          "column": 1
        }
      },
      "declaration": {
        "type": "FunctionDeclaration",
        "start": 1081,
        "end": 1547,
        "loc": {
          "start": {
            "line": 39,
            "column": 7
          },
          "end": {
            "line": 56,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 1090,
          "end": 1098,
          "loc": {
            "start": {
              "line": 39,
              "column": 16
            },
            "end": {
              "line": 39,
              "column": 24
            }
          },
          "name": "isObject",
          "leadingComments": null
        },
        "generator": false,
        "expression": false,
        "async": false,
        "params": [
          {
            "type": "Identifier",
            "start": 1099,
            "end": 1108,
            "loc": {
              "start": {
                "line": 39,
                "column": 25
              },
              "end": {
                "line": 39,
                "column": 34
              }
            },
            "name": "validator"
          }
        ],
        "body": {
          "type": "BlockStatement",
          "start": 1110,
          "end": 1547,
          "loc": {
            "start": {
              "line": 39,
              "column": 36
            },
            "end": {
              "line": 56,
              "column": 1
            }
          },
          "body": [
            {
              "type": "ReturnStatement",
              "start": 1116,
              "end": 1545,
              "loc": {
                "start": {
                  "line": 40,
                  "column": 4
                },
                "end": {
                  "line": 55,
                  "column": 6
                }
              },
              "argument": {
                "type": "ArrowFunctionExpression",
                "start": 1123,
                "end": 1544,
                "loc": {
                  "start": {
                    "line": 40,
                    "column": 11
                  },
                  "end": {
                    "line": 55,
                    "column": 5
                  }
                },
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 1124,
                    "end": 1129,
                    "loc": {
                      "start": {
                        "line": 40,
                        "column": 12
                      },
                      "end": {
                        "line": 40,
                        "column": 17
                      }
                    },
                    "name": "input"
                  },
                  {
                    "type": "Identifier",
                    "start": 1131,
                    "end": 1135,
                    "loc": {
                      "start": {
                        "line": 40,
                        "column": 19
                      },
                      "end": {
                        "line": 40,
                        "column": 23
                      }
                    },
                    "name": "info"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 1140,
                  "end": 1544,
                  "loc": {
                    "start": {
                      "line": 40,
                      "column": 28
                    },
                    "end": {
                      "line": 55,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "IfStatement",
                      "start": 1150,
                      "end": 1238,
                      "loc": {
                        "start": {
                          "line": 41,
                          "column": 8
                        },
                        "end": {
                          "line": 43,
                          "column": 9
                        }
                      },
                      "test": {
                        "type": "Identifier",
                        "start": 1154,
                        "end": 1158,
                        "loc": {
                          "start": {
                            "line": 41,
                            "column": 12
                          },
                          "end": {
                            "line": 41,
                            "column": 16
                          }
                        },
                        "name": "info"
                      },
                      "consequent": {
                        "type": "BlockStatement",
                        "start": 1160,
                        "end": 1238,
                        "loc": {
                          "start": {
                            "line": 41,
                            "column": 18
                          },
                          "end": {
                            "line": 43,
                            "column": 9
                          }
                        },
                        "body": [
                          {
                            "type": "ReturnStatement",
                            "start": 1174,
                            "end": 1228,
                            "loc": {
                              "start": {
                                "line": 42,
                                "column": 12
                              },
                              "end": {
                                "line": 42,
                                "column": 66
                              }
                            },
                            "argument": {
                              "type": "CallExpression",
                              "start": 1181,
                              "end": 1227,
                              "loc": {
                                "start": {
                                  "line": 42,
                                  "column": 19
                                },
                                "end": {
                                  "line": 42,
                                  "column": 65
                                }
                              },
                              "callee": {
                                "type": "Identifier",
                                "start": 1181,
                                "end": 1191,
                                "loc": {
                                  "start": {
                                    "line": 42,
                                    "column": 19
                                  },
                                  "end": {
                                    "line": 42,
                                    "column": 29
                                  }
                                },
                                "name": "infoObject"
                              },
                              "arguments": [
                                {
                                  "type": "Identifier",
                                  "start": 1192,
                                  "end": 1201,
                                  "loc": {
                                    "start": {
                                      "line": 42,
                                      "column": 30
                                    },
                                    "end": {
                                      "line": 42,
                                      "column": 39
                                    }
                                  },
                                  "name": "validator"
                                },
                                {
                                  "type": "ArrowFunctionExpression",
                                  "start": 1203,
                                  "end": 1226,
                                  "loc": {
                                    "start": {
                                      "line": 42,
                                      "column": 41
                                    },
                                    "end": {
                                      "line": 42,
                                      "column": 64
                                    }
                                  },
                                  "id": null,
                                  "generator": false,
                                  "expression": true,
                                  "async": false,
                                  "params": [
                                    {
                                      "type": "Identifier",
                                      "start": 1204,
                                      "end": 1208,
                                      "loc": {
                                        "start": {
                                          "line": 42,
                                          "column": 42
                                        },
                                        "end": {
                                          "line": 42,
                                          "column": 46
                                        }
                                      },
                                      "name": "wrap"
                                    }
                                  ],
                                  "body": {
                                    "type": "TemplateLiteral",
                                    "start": 1213,
                                    "end": 1226,
                                    "loc": {
                                      "start": {
                                        "line": 42,
                                        "column": 51
                                      },
                                      "end": {
                                        "line": 42,
                                        "column": 64
                                      }
                                    },
                                    "expressions": [
                                      {
                                        "type": "Identifier",
                                        "start": 1218,
                                        "end": 1222,
                                        "loc": {
                                          "start": {
                                            "line": 42,
                                            "column": 56
                                          },
                                          "end": {
                                            "line": 42,
                                            "column": 60
                                          }
                                        },
                                        "name": "wrap"
                                      }
                                    ],
                                    "quasis": [
                                      {
                                        "type": "TemplateElement",
                                        "start": 1214,
                                        "end": 1216,
                                        "loc": {
                                          "start": {
                                            "line": 42,
                                            "column": 52
                                          },
                                          "end": {
                                            "line": 42,
                                            "column": 54
                                          }
                                        },
                                        "value": {
                                          "raw": "{ ",
                                          "cooked": "{ "
                                        },
                                        "tail": false
                                      },
                                      {
                                        "type": "TemplateElement",
                                        "start": 1223,
                                        "end": 1225,
                                        "loc": {
                                          "start": {
                                            "line": 42,
                                            "column": 61
                                          },
                                          "end": {
                                            "line": 42,
                                            "column": 63
                                          }
                                        },
                                        "value": {
                                          "raw": " }",
                                          "cooked": " }"
                                        },
                                        "tail": true
                                      }
                                    ]
                                  }
                                }
                              ]
                            }
                          }
                        ]
                      },
                      "alternate": null
                    },
                    {
                      "type": "IfStatement",
                      "start": 1248,
                      "end": 1333,
                      "loc": {
                        "start": {
                          "line": 45,
                          "column": 8
                        },
                        "end": {
                          "line": 47,
                          "column": 9
                        }
                      },
                      "test": {
                        "type": "UnaryExpression",
                        "start": 1252,
                        "end": 1279,
                        "loc": {
                          "start": {
                            "line": 45,
                            "column": 12
                          },
                          "end": {
                            "line": 45,
                            "column": 39
                          }
                        },
                        "operator": "!",
                        "prefix": true,
                        "argument": {
                          "type": "CallExpression",
                          "start": 1253,
                          "end": 1279,
                          "loc": {
                            "start": {
                              "line": 45,
                              "column": 13
                            },
                            "end": {
                              "line": 45,
                              "column": 39
                            }
                          },
                          "callee": {
                            "type": "Identifier",
                            "start": 1253,
                            "end": 1272,
                            "loc": {
                              "start": {
                                "line": 45,
                                "column": 13
                              },
                              "end": {
                                "line": 45,
                                "column": 32
                              }
                            },
                            "name": "lodashIsPlainObject"
                          },
                          "arguments": [
                            {
                              "type": "Identifier",
                              "start": 1273,
                              "end": 1278,
                              "loc": {
                                "start": {
                                  "line": 45,
                                  "column": 33
                                },
                                "end": {
                                  "line": 45,
                                  "column": 38
                                }
                              },
                              "name": "input"
                            }
                          ]
                        }
                      },
                      "consequent": {
                        "type": "BlockStatement",
                        "start": 1281,
                        "end": 1333,
                        "loc": {
                          "start": {
                            "line": 45,
                            "column": 41
                          },
                          "end": {
                            "line": 47,
                            "column": 9
                          }
                        },
                        "body": [
                          {
                            "type": "ReturnStatement",
                            "start": 1295,
                            "end": 1323,
                            "loc": {
                              "start": {
                                "line": 46,
                                "column": 12
                              },
                              "end": {
                                "line": 46,
                                "column": 40
                              }
                            },
                            "argument": {
                              "type": "Literal",
                              "start": 1302,
                              "end": 1322,
                              "loc": {
                                "start": {
                                  "line": 46,
                                  "column": 19
                                },
                                "end": {
                                  "line": 46,
                                  "column": 39
                                }
                              },
                              "value": "Was not an object!",
                              "rawValue": "Was not an object!",
                              "raw": "'Was not an object!'"
                            }
                          }
                        ]
                      },
                      "alternate": null
                    },
                    {
                      "type": "IfStatement",
                      "start": 1343,
                      "end": 1395,
                      "loc": {
                        "start": {
                          "line": 49,
                          "column": 8
                        },
                        "end": {
                          "line": 51,
                          "column": 9
                        }
                      },
                      "test": {
                        "type": "UnaryExpression",
                        "start": 1347,
                        "end": 1357,
                        "loc": {
                          "start": {
                            "line": 49,
                            "column": 12
                          },
                          "end": {
                            "line": 49,
                            "column": 22
                          }
                        },
                        "operator": "!",
                        "prefix": true,
                        "argument": {
                          "type": "Identifier",
                          "start": 1348,
                          "end": 1357,
                          "loc": {
                            "start": {
                              "line": 49,
                              "column": 13
                            },
                            "end": {
                              "line": 49,
                              "column": 22
                            }
                          },
                          "name": "validator"
                        }
                      },
                      "consequent": {
                        "type": "BlockStatement",
                        "start": 1359,
                        "end": 1395,
                        "loc": {
                          "start": {
                            "line": 49,
                            "column": 24
                          },
                          "end": {
                            "line": 51,
                            "column": 9
                          }
                        },
                        "body": [
                          {
                            "type": "ReturnStatement",
                            "start": 1373,
                            "end": 1385,
                            "loc": {
                              "start": {
                                "line": 50,
                                "column": 12
                              },
                              "end": {
                                "line": 50,
                                "column": 24
                              }
                            },
                            "argument": {
                              "type": "Literal",
                              "start": 1380,
                              "end": 1384,
                              "loc": {
                                "start": {
                                  "line": 50,
                                  "column": 19
                                },
                                "end": {
                                  "line": 50,
                                  "column": 23
                                }
                              },
                              "value": true,
                              "rawValue": true,
                              "raw": "true"
                            }
                          }
                        ]
                      },
                      "alternate": null
                    },
                    {
                      "type": "ReturnStatement",
                      "start": 1405,
                      "end": 1538,
                      "loc": {
                        "start": {
                          "line": 53,
                          "column": 8
                        },
                        "end": {
                          "line": 54,
                          "column": 62
                        }
                      },
                      "argument": {
                        "type": "CallExpression",
                        "start": 1412,
                        "end": 1537,
                        "loc": {
                          "start": {
                            "line": 53,
                            "column": 15
                          },
                          "end": {
                            "line": 54,
                            "column": 61
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 1412,
                          "end": 1495,
                          "loc": {
                            "start": {
                              "line": 53,
                              "column": 15
                            },
                            "end": {
                              "line": 54,
                              "column": 19
                            }
                          },
                          "object": {
                            "type": "CallExpression",
                            "start": 1412,
                            "end": 1475,
                            "loc": {
                              "start": {
                                "line": 53,
                                "column": 15
                              },
                              "end": {
                                "line": 53,
                                "column": 78
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 1412,
                              "end": 1434,
                              "loc": {
                                "start": {
                                  "line": 53,
                                  "column": 15
                                },
                                "end": {
                                  "line": 53,
                                  "column": 37
                                }
                              },
                              "object": {
                                "type": "CallExpression",
                                "start": 1412,
                                "end": 1430,
                                "loc": {
                                  "start": {
                                    "line": 53,
                                    "column": 15
                                  },
                                  "end": {
                                    "line": 53,
                                    "column": 33
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 1412,
                                  "end": 1423,
                                  "loc": {
                                    "start": {
                                      "line": 53,
                                      "column": 15
                                    },
                                    "end": {
                                      "line": 53,
                                      "column": 26
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 1412,
                                    "end": 1418,
                                    "loc": {
                                      "start": {
                                        "line": 53,
                                        "column": 15
                                      },
                                      "end": {
                                        "line": 53,
                                        "column": 21
                                      }
                                    },
                                    "name": "Object"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 1419,
                                    "end": 1423,
                                    "loc": {
                                      "start": {
                                        "line": 53,
                                        "column": 22
                                      },
                                      "end": {
                                        "line": 53,
                                        "column": 26
                                      }
                                    },
                                    "name": "keys"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "start": 1424,
                                    "end": 1429,
                                    "loc": {
                                      "start": {
                                        "line": 53,
                                        "column": 27
                                      },
                                      "end": {
                                        "line": 53,
                                        "column": 32
                                      }
                                    },
                                    "name": "input"
                                  }
                                ]
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 1431,
                                "end": 1434,
                                "loc": {
                                  "start": {
                                    "line": 53,
                                    "column": 34
                                  },
                                  "end": {
                                    "line": 53,
                                    "column": 37
                                  }
                                },
                                "name": "map"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "ArrowFunctionExpression",
                                "start": 1435,
                                "end": 1474,
                                "loc": {
                                  "start": {
                                    "line": 53,
                                    "column": 38
                                  },
                                  "end": {
                                    "line": 53,
                                    "column": 77
                                  }
                                },
                                "id": null,
                                "generator": false,
                                "expression": true,
                                "async": false,
                                "params": [
                                  {
                                    "type": "Identifier",
                                    "start": 1436,
                                    "end": 1439,
                                    "loc": {
                                      "start": {
                                        "line": 53,
                                        "column": 39
                                      },
                                      "end": {
                                        "line": 53,
                                        "column": 42
                                      }
                                    },
                                    "name": "key"
                                  }
                                ],
                                "body": {
                                  "type": "CallExpression",
                                  "start": 1444,
                                  "end": 1474,
                                  "loc": {
                                    "start": {
                                      "line": 53,
                                      "column": 47
                                    },
                                    "end": {
                                      "line": 53,
                                      "column": 77
                                    }
                                  },
                                  "callee": {
                                    "type": "Identifier",
                                    "start": 1444,
                                    "end": 1451,
                                    "loc": {
                                      "start": {
                                        "line": 53,
                                        "column": 47
                                      },
                                      "end": {
                                        "line": 53,
                                        "column": 54
                                      }
                                    },
                                    "name": "isValid"
                                  },
                                  "arguments": [
                                    {
                                      "type": "MemberExpression",
                                      "start": 1452,
                                      "end": 1462,
                                      "loc": {
                                        "start": {
                                          "line": 53,
                                          "column": 55
                                        },
                                        "end": {
                                          "line": 53,
                                          "column": 65
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 1452,
                                        "end": 1457,
                                        "loc": {
                                          "start": {
                                            "line": 53,
                                            "column": 55
                                          },
                                          "end": {
                                            "line": 53,
                                            "column": 60
                                          }
                                        },
                                        "name": "input"
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 1458,
                                        "end": 1461,
                                        "loc": {
                                          "start": {
                                            "line": 53,
                                            "column": 61
                                          },
                                          "end": {
                                            "line": 53,
                                            "column": 64
                                          }
                                        },
                                        "name": "key"
                                      },
                                      "computed": true
                                    },
                                    {
                                      "type": "Identifier",
                                      "start": 1464,
                                      "end": 1473,
                                      "loc": {
                                        "start": {
                                          "line": 53,
                                          "column": 67
                                        },
                                        "end": {
                                          "line": 53,
                                          "column": 76
                                        }
                                      },
                                      "name": "validator"
                                    }
                                  ]
                                }
                              }
                            ]
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1489,
                            "end": 1495,
                            "loc": {
                              "start": {
                                "line": 54,
                                "column": 13
                              },
                              "end": {
                                "line": 54,
                                "column": 19
                              }
                            },
                            "name": "reduce"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "ArrowFunctionExpression",
                            "start": 1496,
                            "end": 1530,
                            "loc": {
                              "start": {
                                "line": 54,
                                "column": 20
                              },
                              "end": {
                                "line": 54,
                                "column": 54
                              }
                            },
                            "id": null,
                            "generator": false,
                            "expression": true,
                            "async": false,
                            "params": [
                              {
                                "type": "Identifier",
                                "start": 1497,
                                "end": 1498,
                                "loc": {
                                  "start": {
                                    "line": 54,
                                    "column": 21
                                  },
                                  "end": {
                                    "line": 54,
                                    "column": 22
                                  }
                                },
                                "name": "a"
                              },
                              {
                                "type": "Identifier",
                                "start": 1500,
                                "end": 1501,
                                "loc": {
                                  "start": {
                                    "line": 54,
                                    "column": 24
                                  },
                                  "end": {
                                    "line": 54,
                                    "column": 25
                                  }
                                },
                                "name": "b"
                              }
                            ],
                            "body": {
                              "type": "LogicalExpression",
                              "start": 1506,
                              "end": 1530,
                              "loc": {
                                "start": {
                                  "line": 54,
                                  "column": 30
                                },
                                "end": {
                                  "line": 54,
                                  "column": 54
                                }
                              },
                              "left": {
                                "type": "BinaryExpression",
                                "start": 1506,
                                "end": 1516,
                                "loc": {
                                  "start": {
                                    "line": 54,
                                    "column": 30
                                  },
                                  "end": {
                                    "line": 54,
                                    "column": 40
                                  }
                                },
                                "left": {
                                  "type": "Identifier",
                                  "start": 1506,
                                  "end": 1507,
                                  "loc": {
                                    "start": {
                                      "line": 54,
                                      "column": 30
                                    },
                                    "end": {
                                      "line": 54,
                                      "column": 31
                                    }
                                  },
                                  "name": "a"
                                },
                                "operator": "===",
                                "right": {
                                  "type": "Literal",
                                  "start": 1512,
                                  "end": 1516,
                                  "loc": {
                                    "start": {
                                      "line": 54,
                                      "column": 36
                                    },
                                    "end": {
                                      "line": 54,
                                      "column": 40
                                    }
                                  },
                                  "value": true,
                                  "rawValue": true,
                                  "raw": "true"
                                }
                              },
                              "operator": "&&",
                              "right": {
                                "type": "BinaryExpression",
                                "start": 1520,
                                "end": 1530,
                                "loc": {
                                  "start": {
                                    "line": 54,
                                    "column": 44
                                  },
                                  "end": {
                                    "line": 54,
                                    "column": 54
                                  }
                                },
                                "left": {
                                  "type": "Identifier",
                                  "start": 1520,
                                  "end": 1521,
                                  "loc": {
                                    "start": {
                                      "line": 54,
                                      "column": 44
                                    },
                                    "end": {
                                      "line": 54,
                                      "column": 45
                                    }
                                  },
                                  "name": "b"
                                },
                                "operator": "===",
                                "right": {
                                  "type": "Literal",
                                  "start": 1526,
                                  "end": 1530,
                                  "loc": {
                                    "start": {
                                      "line": 54,
                                      "column": 50
                                    },
                                    "end": {
                                      "line": 54,
                                      "column": 54
                                    }
                                  },
                                  "value": true,
                                  "rawValue": true,
                                  "raw": "true"
                                }
                              }
                            }
                          },
                          {
                            "type": "Literal",
                            "start": 1532,
                            "end": 1536,
                            "loc": {
                              "start": {
                                "line": 54,
                                "column": 56
                              },
                              "end": {
                                "line": 54,
                                "column": 60
                              }
                            },
                            "value": true,
                            "rawValue": true,
                            "raw": "true"
                          }
                        ]
                      }
                    }
                  ]
                }
              }
            }
          ],
          "trailingComments": null
        },
        "leadingComments": [
          {
            "type": "Block",
            "value": "*\n * Validates an object using a validator.\n *\n * @param {function|RegExp} validator - The validator to use on the elements in the object\n * @return {function} - A function that takes a value and that returns true or false if valid or not.\n ",
            "start": 828,
            "end": 1073,
            "loc": {
              "start": {
                "line": 33,
                "column": 0
              },
              "end": {
                "line": 38,
                "column": 3
              }
            },
            "range": [
              828,
              1073
            ]
          }
        ],
        "trailingComments": [
          {
            "type": "Block",
            "value": "*\n * Validates an pontential array using a validator.\n *\n * Allows that a single value is given.\n *\n * @param {function|RegExp} validator - The validator to use on the elements in the array.\n * @return {function} - A function that takes a value and that returns true or false if valid or not.\n ",
            "start": 1549,
            "end": 1847,
            "loc": {
              "start": {
                "line": 58,
                "column": 0
              },
              "end": {
                "line": 65,
                "column": 3
              }
            },
            "range": [
              1549,
              1847
            ]
          }
        ]
      },
      "specifiers": [],
      "source": null,
      "leadingComments": [
        {
          "type": "Block",
          "value": "*\n * Validates an object using a validator.\n *\n * @param {function|RegExp} validator - The validator to use on the elements in the object\n * @return {function} - A function that takes a value and that returns true or false if valid or not.\n ",
          "start": 828,
          "end": 1073,
          "loc": {
            "start": {
              "line": 33,
              "column": 0
            },
            "end": {
              "line": 38,
              "column": 3
            }
          },
          "range": [
            828,
            1073
          ]
        }
      ],
      "trailingComments": [
        {
          "type": "Block",
          "value": "*\n * Validates an pontential array using a validator.\n *\n * Allows that a single value is given.\n *\n * @param {function|RegExp} validator - The validator to use on the elements in the array.\n * @return {function} - A function that takes a value and that returns true or false if valid or not.\n ",
          "start": 1549,
          "end": 1847,
          "loc": {
            "start": {
              "line": 58,
              "column": 0
            },
            "end": {
              "line": 65,
              "column": 3
            }
          },
          "range": [
            1549,
            1847
          ]
        }
      ]
    },
    {
      "type": "ExportNamedDeclaration",
      "start": 1848,
      "end": 2284,
      "loc": {
        "start": {
          "line": 66,
          "column": 0
        },
        "end": {
          "line": 82,
          "column": 1
        }
      },
      "declaration": {
        "type": "FunctionDeclaration",
        "start": 1855,
        "end": 2284,
        "loc": {
          "start": {
            "line": 66,
            "column": 7
          },
          "end": {
            "line": 82,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 1864,
          "end": 1879,
          "loc": {
            "start": {
              "line": 66,
              "column": 16
            },
            "end": {
              "line": 66,
              "column": 31
            }
          },
          "name": "isArrayOrSingle",
          "leadingComments": null
        },
        "generator": false,
        "expression": false,
        "async": false,
        "params": [
          {
            "type": "Identifier",
            "start": 1880,
            "end": 1889,
            "loc": {
              "start": {
                "line": 66,
                "column": 32
              },
              "end": {
                "line": 66,
                "column": 41
              }
            },
            "name": "validator"
          }
        ],
        "body": {
          "type": "BlockStatement",
          "start": 1891,
          "end": 2284,
          "loc": {
            "start": {
              "line": 66,
              "column": 43
            },
            "end": {
              "line": 82,
              "column": 1
            }
          },
          "body": [
            {
              "type": "ReturnStatement",
              "start": 1897,
              "end": 2282,
              "loc": {
                "start": {
                  "line": 67,
                  "column": 4
                },
                "end": {
                  "line": 81,
                  "column": 6
                }
              },
              "argument": {
                "type": "ArrowFunctionExpression",
                "start": 1904,
                "end": 2281,
                "loc": {
                  "start": {
                    "line": 67,
                    "column": 11
                  },
                  "end": {
                    "line": 81,
                    "column": 5
                  }
                },
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 1905,
                    "end": 1910,
                    "loc": {
                      "start": {
                        "line": 67,
                        "column": 12
                      },
                      "end": {
                        "line": 67,
                        "column": 17
                      }
                    },
                    "name": "input"
                  },
                  {
                    "type": "Identifier",
                    "start": 1912,
                    "end": 1916,
                    "loc": {
                      "start": {
                        "line": 67,
                        "column": 19
                      },
                      "end": {
                        "line": 67,
                        "column": 23
                      }
                    },
                    "name": "info"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 1921,
                  "end": 2281,
                  "loc": {
                    "start": {
                      "line": 67,
                      "column": 28
                    },
                    "end": {
                      "line": 81,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "IfStatement",
                      "start": 1931,
                      "end": 2031,
                      "loc": {
                        "start": {
                          "line": 68,
                          "column": 8
                        },
                        "end": {
                          "line": 70,
                          "column": 9
                        }
                      },
                      "test": {
                        "type": "Identifier",
                        "start": 1935,
                        "end": 1939,
                        "loc": {
                          "start": {
                            "line": 68,
                            "column": 12
                          },
                          "end": {
                            "line": 68,
                            "column": 16
                          }
                        },
                        "name": "info"
                      },
                      "consequent": {
                        "type": "BlockStatement",
                        "start": 1941,
                        "end": 2031,
                        "loc": {
                          "start": {
                            "line": 68,
                            "column": 18
                          },
                          "end": {
                            "line": 70,
                            "column": 9
                          }
                        },
                        "body": [
                          {
                            "type": "ReturnStatement",
                            "start": 1955,
                            "end": 2021,
                            "loc": {
                              "start": {
                                "line": 69,
                                "column": 12
                              },
                              "end": {
                                "line": 69,
                                "column": 78
                              }
                            },
                            "argument": {
                              "type": "CallExpression",
                              "start": 1962,
                              "end": 2020,
                              "loc": {
                                "start": {
                                  "line": 69,
                                  "column": 19
                                },
                                "end": {
                                  "line": 69,
                                  "column": 77
                                }
                              },
                              "callee": {
                                "type": "Identifier",
                                "start": 1962,
                                "end": 1972,
                                "loc": {
                                  "start": {
                                    "line": 69,
                                    "column": 19
                                  },
                                  "end": {
                                    "line": 69,
                                    "column": 29
                                  }
                                },
                                "name": "infoObject"
                              },
                              "arguments": [
                                {
                                  "type": "Identifier",
                                  "start": 1973,
                                  "end": 1982,
                                  "loc": {
                                    "start": {
                                      "line": 69,
                                      "column": 30
                                    },
                                    "end": {
                                      "line": 69,
                                      "column": 39
                                    }
                                  },
                                  "name": "validator"
                                },
                                {
                                  "type": "ArrowFunctionExpression",
                                  "start": 1984,
                                  "end": 2019,
                                  "loc": {
                                    "start": {
                                      "line": 69,
                                      "column": 41
                                    },
                                    "end": {
                                      "line": 69,
                                      "column": 76
                                    }
                                  },
                                  "id": null,
                                  "generator": false,
                                  "expression": true,
                                  "async": false,
                                  "params": [
                                    {
                                      "type": "Identifier",
                                      "start": 1985,
                                      "end": 1989,
                                      "loc": {
                                        "start": {
                                          "line": 69,
                                          "column": 42
                                        },
                                        "end": {
                                          "line": 69,
                                          "column": 46
                                        }
                                      },
                                      "name": "wrap"
                                    }
                                  ],
                                  "body": {
                                    "type": "TemplateLiteral",
                                    "start": 1995,
                                    "end": 2018,
                                    "loc": {
                                      "start": {
                                        "line": 69,
                                        "column": 52
                                      },
                                      "end": {
                                        "line": 69,
                                        "column": 75
                                      }
                                    },
                                    "expressions": [
                                      {
                                        "type": "Identifier",
                                        "start": 1998,
                                        "end": 2002,
                                        "loc": {
                                          "start": {
                                            "line": 69,
                                            "column": 55
                                          },
                                          "end": {
                                            "line": 69,
                                            "column": 59
                                          }
                                        },
                                        "name": "wrap"
                                      },
                                      {
                                        "type": "Identifier",
                                        "start": 2010,
                                        "end": 2014,
                                        "loc": {
                                          "start": {
                                            "line": 69,
                                            "column": 67
                                          },
                                          "end": {
                                            "line": 69,
                                            "column": 71
                                          }
                                        },
                                        "name": "wrap"
                                      }
                                    ],
                                    "quasis": [
                                      {
                                        "type": "TemplateElement",
                                        "start": 1996,
                                        "end": 1996,
                                        "loc": {
                                          "start": {
                                            "line": 69,
                                            "column": 53
                                          },
                                          "end": {
                                            "line": 69,
                                            "column": 53
                                          }
                                        },
                                        "value": {
                                          "raw": "",
                                          "cooked": ""
                                        },
                                        "tail": false
                                      },
                                      {
                                        "type": "TemplateElement",
                                        "start": 2003,
                                        "end": 2008,
                                        "loc": {
                                          "start": {
                                            "line": 69,
                                            "column": 60
                                          },
                                          "end": {
                                            "line": 69,
                                            "column": 65
                                          }
                                        },
                                        "value": {
                                          "raw": " / [ ",
                                          "cooked": " / [ "
                                        },
                                        "tail": false
                                      },
                                      {
                                        "type": "TemplateElement",
                                        "start": 2015,
                                        "end": 2017,
                                        "loc": {
                                          "start": {
                                            "line": 69,
                                            "column": 72
                                          },
                                          "end": {
                                            "line": 69,
                                            "column": 74
                                          }
                                        },
                                        "value": {
                                          "raw": " ]",
                                          "cooked": " ]"
                                        },
                                        "tail": true
                                      }
                                    ],
                                    "parenthesizedExpression": true
                                  }
                                }
                              ]
                            }
                          }
                        ]
                      },
                      "alternate": null
                    },
                    {
                      "type": "VariableDeclaration",
                      "start": 2041,
                      "end": 2072,
                      "loc": {
                        "start": {
                          "line": 72,
                          "column": 8
                        },
                        "end": {
                          "line": 72,
                          "column": 39
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 2047,
                          "end": 2071,
                          "loc": {
                            "start": {
                              "line": 72,
                              "column": 14
                            },
                            "end": {
                              "line": 72,
                              "column": 38
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 2047,
                            "end": 2052,
                            "loc": {
                              "start": {
                                "line": 72,
                                "column": 14
                              },
                              "end": {
                                "line": 72,
                                "column": 19
                              }
                            },
                            "name": "array"
                          },
                          "init": {
                            "type": "CallExpression",
                            "start": 2055,
                            "end": 2071,
                            "loc": {
                              "start": {
                                "line": 72,
                                "column": 22
                              },
                              "end": {
                                "line": 72,
                                "column": 38
                              }
                            },
                            "callee": {
                              "type": "MemberExpression",
                              "start": 2055,
                              "end": 2064,
                              "loc": {
                                "start": {
                                  "line": 72,
                                  "column": 22
                                },
                                "end": {
                                  "line": 72,
                                  "column": 31
                                }
                              },
                              "object": {
                                "type": "ArrayExpression",
                                "start": 2055,
                                "end": 2057,
                                "loc": {
                                  "start": {
                                    "line": 72,
                                    "column": 22
                                  },
                                  "end": {
                                    "line": 72,
                                    "column": 24
                                  }
                                },
                                "elements": []
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 2058,
                                "end": 2064,
                                "loc": {
                                  "start": {
                                    "line": 72,
                                    "column": 25
                                  },
                                  "end": {
                                    "line": 72,
                                    "column": 31
                                  }
                                },
                                "name": "concat"
                              },
                              "computed": false
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 2065,
                                "end": 2070,
                                "loc": {
                                  "start": {
                                    "line": 72,
                                    "column": 32
                                  },
                                  "end": {
                                    "line": 72,
                                    "column": 37
                                  }
                                },
                                "name": "input"
                              }
                            ]
                          }
                        }
                      ],
                      "kind": "const"
                    },
                    {
                      "type": "ForOfStatement",
                      "start": 2081,
                      "end": 2253,
                      "loc": {
                        "start": {
                          "line": 73,
                          "column": 8
                        },
                        "end": {
                          "line": 78,
                          "column": 9
                        }
                      },
                      "left": {
                        "type": "VariableDeclaration",
                        "start": 2086,
                        "end": 2097,
                        "loc": {
                          "start": {
                            "line": 73,
                            "column": 13
                          },
                          "end": {
                            "line": 73,
                            "column": 24
                          }
                        },
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "start": 2092,
                            "end": 2097,
                            "loc": {
                              "start": {
                                "line": 73,
                                "column": 19
                              },
                              "end": {
                                "line": 73,
                                "column": 24
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 2092,
                              "end": 2097,
                              "loc": {
                                "start": {
                                  "line": 73,
                                  "column": 19
                                },
                                "end": {
                                  "line": 73,
                                  "column": 24
                                }
                              },
                              "name": "value"
                            },
                            "init": null
                          }
                        ],
                        "kind": "const"
                      },
                      "right": {
                        "type": "Identifier",
                        "start": 2101,
                        "end": 2106,
                        "loc": {
                          "start": {
                            "line": 73,
                            "column": 28
                          },
                          "end": {
                            "line": 73,
                            "column": 33
                          }
                        },
                        "name": "array"
                      },
                      "body": {
                        "type": "BlockStatement",
                        "start": 2108,
                        "end": 2253,
                        "loc": {
                          "start": {
                            "line": 73,
                            "column": 35
                          },
                          "end": {
                            "line": 78,
                            "column": 9
                          }
                        },
                        "body": [
                          {
                            "type": "VariableDeclaration",
                            "start": 2122,
                            "end": 2163,
                            "loc": {
                              "start": {
                                "line": 74,
                                "column": 12
                              },
                              "end": {
                                "line": 74,
                                "column": 53
                              }
                            },
                            "declarations": [
                              {
                                "type": "VariableDeclarator",
                                "start": 2128,
                                "end": 2162,
                                "loc": {
                                  "start": {
                                    "line": 74,
                                    "column": 18
                                  },
                                  "end": {
                                    "line": 74,
                                    "column": 52
                                  }
                                },
                                "id": {
                                  "type": "Identifier",
                                  "start": 2128,
                                  "end": 2134,
                                  "loc": {
                                    "start": {
                                      "line": 74,
                                      "column": 18
                                    },
                                    "end": {
                                      "line": 74,
                                      "column": 24
                                    }
                                  },
                                  "name": "result"
                                },
                                "init": {
                                  "type": "CallExpression",
                                  "start": 2137,
                                  "end": 2162,
                                  "loc": {
                                    "start": {
                                      "line": 74,
                                      "column": 27
                                    },
                                    "end": {
                                      "line": 74,
                                      "column": 52
                                    }
                                  },
                                  "callee": {
                                    "type": "Identifier",
                                    "start": 2137,
                                    "end": 2144,
                                    "loc": {
                                      "start": {
                                        "line": 74,
                                        "column": 27
                                      },
                                      "end": {
                                        "line": 74,
                                        "column": 34
                                      }
                                    },
                                    "name": "isValid"
                                  },
                                  "arguments": [
                                    {
                                      "type": "Identifier",
                                      "start": 2145,
                                      "end": 2150,
                                      "loc": {
                                        "start": {
                                          "line": 74,
                                          "column": 35
                                        },
                                        "end": {
                                          "line": 74,
                                          "column": 40
                                        }
                                      },
                                      "name": "value"
                                    },
                                    {
                                      "type": "Identifier",
                                      "start": 2152,
                                      "end": 2161,
                                      "loc": {
                                        "start": {
                                          "line": 74,
                                          "column": 42
                                        },
                                        "end": {
                                          "line": 74,
                                          "column": 51
                                        }
                                      },
                                      "name": "validator"
                                    }
                                  ]
                                }
                              }
                            ],
                            "kind": "const"
                          },
                          {
                            "type": "IfStatement",
                            "start": 2176,
                            "end": 2243,
                            "loc": {
                              "start": {
                                "line": 75,
                                "column": 12
                              },
                              "end": {
                                "line": 77,
                                "column": 13
                              }
                            },
                            "test": {
                              "type": "BinaryExpression",
                              "start": 2180,
                              "end": 2195,
                              "loc": {
                                "start": {
                                  "line": 75,
                                  "column": 16
                                },
                                "end": {
                                  "line": 75,
                                  "column": 31
                                }
                              },
                              "left": {
                                "type": "Identifier",
                                "start": 2180,
                                "end": 2186,
                                "loc": {
                                  "start": {
                                    "line": 75,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 75,
                                    "column": 22
                                  }
                                },
                                "name": "result"
                              },
                              "operator": "!==",
                              "right": {
                                "type": "Literal",
                                "start": 2191,
                                "end": 2195,
                                "loc": {
                                  "start": {
                                    "line": 75,
                                    "column": 27
                                  },
                                  "end": {
                                    "line": 75,
                                    "column": 31
                                  }
                                },
                                "value": true,
                                "rawValue": true,
                                "raw": "true"
                              }
                            },
                            "consequent": {
                              "type": "BlockStatement",
                              "start": 2197,
                              "end": 2243,
                              "loc": {
                                "start": {
                                  "line": 75,
                                  "column": 33
                                },
                                "end": {
                                  "line": 77,
                                  "column": 13
                                }
                              },
                              "body": [
                                {
                                  "type": "ReturnStatement",
                                  "start": 2215,
                                  "end": 2229,
                                  "loc": {
                                    "start": {
                                      "line": 76,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 76,
                                      "column": 30
                                    }
                                  },
                                  "argument": {
                                    "type": "Identifier",
                                    "start": 2222,
                                    "end": 2228,
                                    "loc": {
                                      "start": {
                                        "line": 76,
                                        "column": 23
                                      },
                                      "end": {
                                        "line": 76,
                                        "column": 29
                                      }
                                    },
                                    "name": "result"
                                  }
                                }
                              ]
                            },
                            "alternate": null
                          }
                        ]
                      }
                    },
                    {
                      "type": "ReturnStatement",
                      "start": 2263,
                      "end": 2275,
                      "loc": {
                        "start": {
                          "line": 80,
                          "column": 8
                        },
                        "end": {
                          "line": 80,
                          "column": 20
                        }
                      },
                      "argument": {
                        "type": "Literal",
                        "start": 2270,
                        "end": 2274,
                        "loc": {
                          "start": {
                            "line": 80,
                            "column": 15
                          },
                          "end": {
                            "line": 80,
                            "column": 19
                          }
                        },
                        "value": true,
                        "rawValue": true,
                        "raw": "true"
                      }
                    }
                  ]
                }
              }
            }
          ],
          "trailingComments": null
        },
        "leadingComments": [
          {
            "type": "Block",
            "value": "*\n * Validates an pontential array using a validator.\n *\n * Allows that a single value is given.\n *\n * @param {function|RegExp} validator - The validator to use on the elements in the array.\n * @return {function} - A function that takes a value and that returns true or false if valid or not.\n ",
            "start": 1549,
            "end": 1847,
            "loc": {
              "start": {
                "line": 58,
                "column": 0
              },
              "end": {
                "line": 65,
                "column": 3
              }
            },
            "range": [
              1549,
              1847
            ]
          }
        ],
        "trailingComments": [
          {
            "type": "Block",
            "value": "*\n * Validates an string.\n *\n * @param {object} value - Something to validate.\n * @param {boolean} info - If type information should be returned.\n * @return {infoObject|boolean|string} - Type information or if it is valid.\n ",
            "start": 2286,
            "end": 2514,
            "loc": {
              "start": {
                "line": 84,
                "column": 0
              },
              "end": {
                "line": 90,
                "column": 3
              }
            },
            "range": [
              2286,
              2514
            ]
          }
        ]
      },
      "specifiers": [],
      "source": null,
      "leadingComments": [
        {
          "type": "Block",
          "value": "*\n * Validates an pontential array using a validator.\n *\n * Allows that a single value is given.\n *\n * @param {function|RegExp} validator - The validator to use on the elements in the array.\n * @return {function} - A function that takes a value and that returns true or false if valid or not.\n ",
          "start": 1549,
          "end": 1847,
          "loc": {
            "start": {
              "line": 58,
              "column": 0
            },
            "end": {
              "line": 65,
              "column": 3
            }
          },
          "range": [
            1549,
            1847
          ]
        }
      ],
      "trailingComments": [
        {
          "type": "Block",
          "value": "*\n * Validates an string.\n *\n * @param {object} value - Something to validate.\n * @param {boolean} info - If type information should be returned.\n * @return {infoObject|boolean|string} - Type information or if it is valid.\n ",
          "start": 2286,
          "end": 2514,
          "loc": {
            "start": {
              "line": 84,
              "column": 0
            },
            "end": {
              "line": 90,
              "column": 3
            }
          },
          "range": [
            2286,
            2514
          ]
        }
      ]
    },
    {
      "type": "ExportNamedDeclaration",
      "start": 2515,
      "end": 2710,
      "loc": {
        "start": {
          "line": 91,
          "column": 0
        },
        "end": {
          "line": 101,
          "column": 1
        }
      },
      "declaration": {
        "type": "FunctionDeclaration",
        "start": 2522,
        "end": 2710,
        "loc": {
          "start": {
            "line": 91,
            "column": 7
          },
          "end": {
            "line": 101,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 2531,
          "end": 2539,
          "loc": {
            "start": {
              "line": 91,
              "column": 16
            },
            "end": {
              "line": 91,
              "column": 24
            }
          },
          "name": "isString",
          "leadingComments": null
        },
        "generator": false,
        "expression": false,
        "async": false,
        "params": [
          {
            "type": "Identifier",
            "start": 2540,
            "end": 2545,
            "loc": {
              "start": {
                "line": 91,
                "column": 25
              },
              "end": {
                "line": 91,
                "column": 30
              }
            },
            "name": "value"
          },
          {
            "type": "Identifier",
            "start": 2547,
            "end": 2551,
            "loc": {
              "start": {
                "line": 91,
                "column": 32
              },
              "end": {
                "line": 91,
                "column": 36
              }
            },
            "name": "info"
          }
        ],
        "body": {
          "type": "BlockStatement",
          "start": 2553,
          "end": 2710,
          "loc": {
            "start": {
              "line": 91,
              "column": 38
            },
            "end": {
              "line": 101,
              "column": 1
            }
          },
          "body": [
            {
              "type": "IfStatement",
              "start": 2559,
              "end": 2613,
              "loc": {
                "start": {
                  "line": 92,
                  "column": 4
                },
                "end": {
                  "line": 94,
                  "column": 5
                }
              },
              "test": {
                "type": "Identifier",
                "start": 2563,
                "end": 2567,
                "loc": {
                  "start": {
                    "line": 92,
                    "column": 8
                  },
                  "end": {
                    "line": 92,
                    "column": 12
                  }
                },
                "name": "info"
              },
              "consequent": {
                "type": "BlockStatement",
                "start": 2569,
                "end": 2613,
                "loc": {
                  "start": {
                    "line": 92,
                    "column": 14
                  },
                  "end": {
                    "line": 94,
                    "column": 5
                  }
                },
                "body": [
                  {
                    "type": "ReturnStatement",
                    "start": 2579,
                    "end": 2607,
                    "loc": {
                      "start": {
                        "line": 93,
                        "column": 8
                      },
                      "end": {
                        "line": 93,
                        "column": 36
                      }
                    },
                    "argument": {
                      "type": "CallExpression",
                      "start": 2586,
                      "end": 2606,
                      "loc": {
                        "start": {
                          "line": 93,
                          "column": 15
                        },
                        "end": {
                          "line": 93,
                          "column": 35
                        }
                      },
                      "callee": {
                        "type": "Identifier",
                        "start": 2586,
                        "end": 2596,
                        "loc": {
                          "start": {
                            "line": 93,
                            "column": 15
                          },
                          "end": {
                            "line": 93,
                            "column": 25
                          }
                        },
                        "name": "infoObject"
                      },
                      "arguments": [
                        {
                          "type": "Literal",
                          "start": 2597,
                          "end": 2605,
                          "loc": {
                            "start": {
                              "line": 93,
                              "column": 26
                            },
                            "end": {
                              "line": 93,
                              "column": 34
                            }
                          },
                          "value": "String",
                          "rawValue": "String",
                          "raw": "'String'"
                        }
                      ]
                    }
                  }
                ]
              },
              "alternate": null
            },
            {
              "type": "IfStatement",
              "start": 2619,
              "end": 2690,
              "loc": {
                "start": {
                  "line": 96,
                  "column": 4
                },
                "end": {
                  "line": 98,
                  "column": 5
                }
              },
              "test": {
                "type": "UnaryExpression",
                "start": 2623,
                "end": 2645,
                "loc": {
                  "start": {
                    "line": 96,
                    "column": 8
                  },
                  "end": {
                    "line": 96,
                    "column": 30
                  }
                },
                "operator": "!",
                "prefix": true,
                "argument": {
                  "type": "CallExpression",
                  "start": 2624,
                  "end": 2645,
                  "loc": {
                    "start": {
                      "line": 96,
                      "column": 9
                    },
                    "end": {
                      "line": 96,
                      "column": 30
                    }
                  },
                  "callee": {
                    "type": "Identifier",
                    "start": 2624,
                    "end": 2638,
                    "loc": {
                      "start": {
                        "line": 96,
                        "column": 9
                      },
                      "end": {
                        "line": 96,
                        "column": 23
                      }
                    },
                    "name": "lodashIsString"
                  },
                  "arguments": [
                    {
                      "type": "Identifier",
                      "start": 2639,
                      "end": 2644,
                      "loc": {
                        "start": {
                          "line": 96,
                          "column": 24
                        },
                        "end": {
                          "line": 96,
                          "column": 29
                        }
                      },
                      "name": "value"
                    }
                  ]
                }
              },
              "consequent": {
                "type": "BlockStatement",
                "start": 2647,
                "end": 2690,
                "loc": {
                  "start": {
                    "line": 96,
                    "column": 32
                  },
                  "end": {
                    "line": 98,
                    "column": 5
                  }
                },
                "body": [
                  {
                    "type": "ReturnStatement",
                    "start": 2657,
                    "end": 2684,
                    "loc": {
                      "start": {
                        "line": 97,
                        "column": 8
                      },
                      "end": {
                        "line": 97,
                        "column": 35
                      }
                    },
                    "argument": {
                      "type": "Literal",
                      "start": 2664,
                      "end": 2683,
                      "loc": {
                        "start": {
                          "line": 97,
                          "column": 15
                        },
                        "end": {
                          "line": 97,
                          "column": 34
                        }
                      },
                      "value": "Was not a string!",
                      "rawValue": "Was not a string!",
                      "raw": "'Was not a string!'"
                    }
                  }
                ]
              },
              "alternate": null
            },
            {
              "type": "ReturnStatement",
              "start": 2696,
              "end": 2708,
              "loc": {
                "start": {
                  "line": 100,
                  "column": 4
                },
                "end": {
                  "line": 100,
                  "column": 16
                }
              },
              "argument": {
                "type": "Literal",
                "start": 2703,
                "end": 2707,
                "loc": {
                  "start": {
                    "line": 100,
                    "column": 11
                  },
                  "end": {
                    "line": 100,
                    "column": 15
                  }
                },
                "value": true,
                "rawValue": true,
                "raw": "true"
              }
            }
          ],
          "trailingComments": null
        },
        "leadingComments": [
          {
            "type": "Block",
            "value": "*\n * Validates an string.\n *\n * @param {object} value - Something to validate.\n * @param {boolean} info - If type information should be returned.\n * @return {infoObject|boolean|string} - Type information or if it is valid.\n ",
            "start": 2286,
            "end": 2514,
            "loc": {
              "start": {
                "line": 84,
                "column": 0
              },
              "end": {
                "line": 90,
                "column": 3
              }
            },
            "range": [
              2286,
              2514
            ]
          }
        ],
        "trailingComments": [
          {
            "type": "Block",
            "value": "*\n * Validates an string.\n *\n * @param {object} value - Something to validate.\n * @param {boolean} info - If type information should be returned.\n * @return {infoObject|boolean|string} - Type information or if it is valid.\n ",
            "start": 2712,
            "end": 2940,
            "loc": {
              "start": {
                "line": 103,
                "column": 0
              },
              "end": {
                "line": 109,
                "column": 3
              }
            },
            "range": [
              2712,
              2940
            ]
          }
        ]
      },
      "specifiers": [],
      "source": null,
      "leadingComments": [
        {
          "type": "Block",
          "value": "*\n * Validates an string.\n *\n * @param {object} value - Something to validate.\n * @param {boolean} info - If type information should be returned.\n * @return {infoObject|boolean|string} - Type information or if it is valid.\n ",
          "start": 2286,
          "end": 2514,
          "loc": {
            "start": {
              "line": 84,
              "column": 0
            },
            "end": {
              "line": 90,
              "column": 3
            }
          },
          "range": [
            2286,
            2514
          ]
        }
      ],
      "trailingComments": [
        {
          "type": "Block",
          "value": "*\n * Validates an string.\n *\n * @param {object} value - Something to validate.\n * @param {boolean} info - If type information should be returned.\n * @return {infoObject|boolean|string} - Type information or if it is valid.\n ",
          "start": 2712,
          "end": 2940,
          "loc": {
            "start": {
              "line": 103,
              "column": 0
            },
            "end": {
              "line": 109,
              "column": 3
            }
          },
          "range": [
            2712,
            2940
          ]
        }
      ]
    },
    {
      "type": "ExportNamedDeclaration",
      "start": 2941,
      "end": 3140,
      "loc": {
        "start": {
          "line": 110,
          "column": 0
        },
        "end": {
          "line": 120,
          "column": 1
        }
      },
      "declaration": {
        "type": "FunctionDeclaration",
        "start": 2948,
        "end": 3140,
        "loc": {
          "start": {
            "line": 110,
            "column": 7
          },
          "end": {
            "line": 120,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 2957,
          "end": 2966,
          "loc": {
            "start": {
              "line": 110,
              "column": 16
            },
            "end": {
              "line": 110,
              "column": 25
            }
          },
          "name": "isBoolean",
          "leadingComments": null
        },
        "generator": false,
        "expression": false,
        "async": false,
        "params": [
          {
            "type": "Identifier",
            "start": 2967,
            "end": 2972,
            "loc": {
              "start": {
                "line": 110,
                "column": 26
              },
              "end": {
                "line": 110,
                "column": 31
              }
            },
            "name": "value"
          },
          {
            "type": "Identifier",
            "start": 2974,
            "end": 2978,
            "loc": {
              "start": {
                "line": 110,
                "column": 33
              },
              "end": {
                "line": 110,
                "column": 37
              }
            },
            "name": "info"
          }
        ],
        "body": {
          "type": "BlockStatement",
          "start": 2980,
          "end": 3140,
          "loc": {
            "start": {
              "line": 110,
              "column": 39
            },
            "end": {
              "line": 120,
              "column": 1
            }
          },
          "body": [
            {
              "type": "IfStatement",
              "start": 2986,
              "end": 3041,
              "loc": {
                "start": {
                  "line": 111,
                  "column": 4
                },
                "end": {
                  "line": 113,
                  "column": 5
                }
              },
              "test": {
                "type": "Identifier",
                "start": 2990,
                "end": 2994,
                "loc": {
                  "start": {
                    "line": 111,
                    "column": 8
                  },
                  "end": {
                    "line": 111,
                    "column": 12
                  }
                },
                "name": "info"
              },
              "consequent": {
                "type": "BlockStatement",
                "start": 2996,
                "end": 3041,
                "loc": {
                  "start": {
                    "line": 111,
                    "column": 14
                  },
                  "end": {
                    "line": 113,
                    "column": 5
                  }
                },
                "body": [
                  {
                    "type": "ReturnStatement",
                    "start": 3006,
                    "end": 3035,
                    "loc": {
                      "start": {
                        "line": 112,
                        "column": 8
                      },
                      "end": {
                        "line": 112,
                        "column": 37
                      }
                    },
                    "argument": {
                      "type": "CallExpression",
                      "start": 3013,
                      "end": 3034,
                      "loc": {
                        "start": {
                          "line": 112,
                          "column": 15
                        },
                        "end": {
                          "line": 112,
                          "column": 36
                        }
                      },
                      "callee": {
                        "type": "Identifier",
                        "start": 3013,
                        "end": 3023,
                        "loc": {
                          "start": {
                            "line": 112,
                            "column": 15
                          },
                          "end": {
                            "line": 112,
                            "column": 25
                          }
                        },
                        "name": "infoObject"
                      },
                      "arguments": [
                        {
                          "type": "Literal",
                          "start": 3024,
                          "end": 3033,
                          "loc": {
                            "start": {
                              "line": 112,
                              "column": 26
                            },
                            "end": {
                              "line": 112,
                              "column": 35
                            }
                          },
                          "value": "Boolean",
                          "rawValue": "Boolean",
                          "raw": "'Boolean'"
                        }
                      ]
                    }
                  }
                ]
              },
              "alternate": null
            },
            {
              "type": "IfStatement",
              "start": 3047,
              "end": 3120,
              "loc": {
                "start": {
                  "line": 115,
                  "column": 4
                },
                "end": {
                  "line": 117,
                  "column": 5
                }
              },
              "test": {
                "type": "UnaryExpression",
                "start": 3051,
                "end": 3074,
                "loc": {
                  "start": {
                    "line": 115,
                    "column": 8
                  },
                  "end": {
                    "line": 115,
                    "column": 31
                  }
                },
                "operator": "!",
                "prefix": true,
                "argument": {
                  "type": "CallExpression",
                  "start": 3052,
                  "end": 3074,
                  "loc": {
                    "start": {
                      "line": 115,
                      "column": 9
                    },
                    "end": {
                      "line": 115,
                      "column": 31
                    }
                  },
                  "callee": {
                    "type": "Identifier",
                    "start": 3052,
                    "end": 3067,
                    "loc": {
                      "start": {
                        "line": 115,
                        "column": 9
                      },
                      "end": {
                        "line": 115,
                        "column": 24
                      }
                    },
                    "name": "lodashIsBoolean"
                  },
                  "arguments": [
                    {
                      "type": "Identifier",
                      "start": 3068,
                      "end": 3073,
                      "loc": {
                        "start": {
                          "line": 115,
                          "column": 25
                        },
                        "end": {
                          "line": 115,
                          "column": 30
                        }
                      },
                      "name": "value"
                    }
                  ]
                }
              },
              "consequent": {
                "type": "BlockStatement",
                "start": 3076,
                "end": 3120,
                "loc": {
                  "start": {
                    "line": 115,
                    "column": 33
                  },
                  "end": {
                    "line": 117,
                    "column": 5
                  }
                },
                "body": [
                  {
                    "type": "ReturnStatement",
                    "start": 3086,
                    "end": 3114,
                    "loc": {
                      "start": {
                        "line": 116,
                        "column": 8
                      },
                      "end": {
                        "line": 116,
                        "column": 36
                      }
                    },
                    "argument": {
                      "type": "Literal",
                      "start": 3093,
                      "end": 3113,
                      "loc": {
                        "start": {
                          "line": 116,
                          "column": 15
                        },
                        "end": {
                          "line": 116,
                          "column": 35
                        }
                      },
                      "value": "Was not a boolean!",
                      "rawValue": "Was not a boolean!",
                      "raw": "'Was not a boolean!'"
                    }
                  }
                ]
              },
              "alternate": null
            },
            {
              "type": "ReturnStatement",
              "start": 3126,
              "end": 3138,
              "loc": {
                "start": {
                  "line": 119,
                  "column": 4
                },
                "end": {
                  "line": 119,
                  "column": 16
                }
              },
              "argument": {
                "type": "Literal",
                "start": 3133,
                "end": 3137,
                "loc": {
                  "start": {
                    "line": 119,
                    "column": 11
                  },
                  "end": {
                    "line": 119,
                    "column": 15
                  }
                },
                "value": true,
                "rawValue": true,
                "raw": "true"
              }
            }
          ],
          "trailingComments": null
        },
        "leadingComments": [
          {
            "type": "Block",
            "value": "*\n * Validates an string.\n *\n * @param {object} value - Something to validate.\n * @param {boolean} info - If type information should be returned.\n * @return {infoObject|boolean|string} - Type information or if it is valid.\n ",
            "start": 2712,
            "end": 2940,
            "loc": {
              "start": {
                "line": 103,
                "column": 0
              },
              "end": {
                "line": 109,
                "column": 3
              }
            },
            "range": [
              2712,
              2940
            ]
          }
        ],
        "trailingComments": [
          {
            "type": "Block",
            "value": "*\n * Validates an string.\n *\n * @param {object} value - Something to validate.\n * @param {boolean} info - If type information should be returned.\n * @return {infoObject|boolean|string} - Type information or if it is valid.\n ",
            "start": 3142,
            "end": 3370,
            "loc": {
              "start": {
                "line": 122,
                "column": 0
              },
              "end": {
                "line": 128,
                "column": 3
              }
            },
            "range": [
              3142,
              3370
            ]
          }
        ]
      },
      "specifiers": [],
      "source": null,
      "leadingComments": [
        {
          "type": "Block",
          "value": "*\n * Validates an string.\n *\n * @param {object} value - Something to validate.\n * @param {boolean} info - If type information should be returned.\n * @return {infoObject|boolean|string} - Type information or if it is valid.\n ",
          "start": 2712,
          "end": 2940,
          "loc": {
            "start": {
              "line": 103,
              "column": 0
            },
            "end": {
              "line": 109,
              "column": 3
            }
          },
          "range": [
            2712,
            2940
          ]
        }
      ],
      "trailingComments": [
        {
          "type": "Block",
          "value": "*\n * Validates an string.\n *\n * @param {object} value - Something to validate.\n * @param {boolean} info - If type information should be returned.\n * @return {infoObject|boolean|string} - Type information or if it is valid.\n ",
          "start": 3142,
          "end": 3370,
          "loc": {
            "start": {
              "line": 122,
              "column": 0
            },
            "end": {
              "line": 128,
              "column": 3
            }
          },
          "range": [
            3142,
            3370
          ]
        }
      ]
    },
    {
      "type": "ExportNamedDeclaration",
      "start": 3371,
      "end": 3572,
      "loc": {
        "start": {
          "line": 129,
          "column": 0
        },
        "end": {
          "line": 139,
          "column": 1
        }
      },
      "declaration": {
        "type": "FunctionDeclaration",
        "start": 3378,
        "end": 3572,
        "loc": {
          "start": {
            "line": 129,
            "column": 7
          },
          "end": {
            "line": 139,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 3387,
          "end": 3396,
          "loc": {
            "start": {
              "line": 129,
              "column": 16
            },
            "end": {
              "line": 129,
              "column": 25
            }
          },
          "name": "isInteger",
          "leadingComments": null
        },
        "generator": false,
        "expression": false,
        "async": false,
        "params": [
          {
            "type": "Identifier",
            "start": 3397,
            "end": 3402,
            "loc": {
              "start": {
                "line": 129,
                "column": 26
              },
              "end": {
                "line": 129,
                "column": 31
              }
            },
            "name": "value"
          },
          {
            "type": "Identifier",
            "start": 3404,
            "end": 3408,
            "loc": {
              "start": {
                "line": 129,
                "column": 33
              },
              "end": {
                "line": 129,
                "column": 37
              }
            },
            "name": "info"
          }
        ],
        "body": {
          "type": "BlockStatement",
          "start": 3410,
          "end": 3572,
          "loc": {
            "start": {
              "line": 129,
              "column": 39
            },
            "end": {
              "line": 139,
              "column": 1
            }
          },
          "body": [
            {
              "type": "IfStatement",
              "start": 3416,
              "end": 3471,
              "loc": {
                "start": {
                  "line": 130,
                  "column": 4
                },
                "end": {
                  "line": 132,
                  "column": 5
                }
              },
              "test": {
                "type": "Identifier",
                "start": 3420,
                "end": 3424,
                "loc": {
                  "start": {
                    "line": 130,
                    "column": 8
                  },
                  "end": {
                    "line": 130,
                    "column": 12
                  }
                },
                "name": "info"
              },
              "consequent": {
                "type": "BlockStatement",
                "start": 3426,
                "end": 3471,
                "loc": {
                  "start": {
                    "line": 130,
                    "column": 14
                  },
                  "end": {
                    "line": 132,
                    "column": 5
                  }
                },
                "body": [
                  {
                    "type": "ReturnStatement",
                    "start": 3436,
                    "end": 3465,
                    "loc": {
                      "start": {
                        "line": 131,
                        "column": 8
                      },
                      "end": {
                        "line": 131,
                        "column": 37
                      }
                    },
                    "argument": {
                      "type": "CallExpression",
                      "start": 3443,
                      "end": 3464,
                      "loc": {
                        "start": {
                          "line": 131,
                          "column": 15
                        },
                        "end": {
                          "line": 131,
                          "column": 36
                        }
                      },
                      "callee": {
                        "type": "Identifier",
                        "start": 3443,
                        "end": 3453,
                        "loc": {
                          "start": {
                            "line": 131,
                            "column": 15
                          },
                          "end": {
                            "line": 131,
                            "column": 25
                          }
                        },
                        "name": "infoObject"
                      },
                      "arguments": [
                        {
                          "type": "Literal",
                          "start": 3454,
                          "end": 3463,
                          "loc": {
                            "start": {
                              "line": 131,
                              "column": 26
                            },
                            "end": {
                              "line": 131,
                              "column": 35
                            }
                          },
                          "value": "Integer",
                          "rawValue": "Integer",
                          "raw": "'Integer'"
                        }
                      ]
                    }
                  }
                ]
              },
              "alternate": null
            },
            {
              "type": "IfStatement",
              "start": 3477,
              "end": 3552,
              "loc": {
                "start": {
                  "line": 134,
                  "column": 4
                },
                "end": {
                  "line": 136,
                  "column": 5
                }
              },
              "test": {
                "type": "UnaryExpression",
                "start": 3481,
                "end": 3505,
                "loc": {
                  "start": {
                    "line": 134,
                    "column": 8
                  },
                  "end": {
                    "line": 134,
                    "column": 32
                  }
                },
                "operator": "!",
                "prefix": true,
                "argument": {
                  "type": "CallExpression",
                  "start": 3482,
                  "end": 3505,
                  "loc": {
                    "start": {
                      "line": 134,
                      "column": 9
                    },
                    "end": {
                      "line": 134,
                      "column": 32
                    }
                  },
                  "callee": {
                    "type": "MemberExpression",
                    "start": 3482,
                    "end": 3498,
                    "loc": {
                      "start": {
                        "line": 134,
                        "column": 9
                      },
                      "end": {
                        "line": 134,
                        "column": 25
                      }
                    },
                    "object": {
                      "type": "Identifier",
                      "start": 3482,
                      "end": 3488,
                      "loc": {
                        "start": {
                          "line": 134,
                          "column": 9
                        },
                        "end": {
                          "line": 134,
                          "column": 15
                        }
                      },
                      "name": "Number"
                    },
                    "property": {
                      "type": "Identifier",
                      "start": 3489,
                      "end": 3498,
                      "loc": {
                        "start": {
                          "line": 134,
                          "column": 16
                        },
                        "end": {
                          "line": 134,
                          "column": 25
                        }
                      },
                      "name": "isInteger"
                    },
                    "computed": false
                  },
                  "arguments": [
                    {
                      "type": "Identifier",
                      "start": 3499,
                      "end": 3504,
                      "loc": {
                        "start": {
                          "line": 134,
                          "column": 26
                        },
                        "end": {
                          "line": 134,
                          "column": 31
                        }
                      },
                      "name": "value"
                    }
                  ]
                }
              },
              "consequent": {
                "type": "BlockStatement",
                "start": 3507,
                "end": 3552,
                "loc": {
                  "start": {
                    "line": 134,
                    "column": 34
                  },
                  "end": {
                    "line": 136,
                    "column": 5
                  }
                },
                "body": [
                  {
                    "type": "ReturnStatement",
                    "start": 3517,
                    "end": 3546,
                    "loc": {
                      "start": {
                        "line": 135,
                        "column": 8
                      },
                      "end": {
                        "line": 135,
                        "column": 37
                      }
                    },
                    "argument": {
                      "type": "Literal",
                      "start": 3524,
                      "end": 3545,
                      "loc": {
                        "start": {
                          "line": 135,
                          "column": 15
                        },
                        "end": {
                          "line": 135,
                          "column": 36
                        }
                      },
                      "value": "Was not an integer!",
                      "rawValue": "Was not an integer!",
                      "raw": "'Was not an integer!'"
                    }
                  }
                ]
              },
              "alternate": null
            },
            {
              "type": "ReturnStatement",
              "start": 3558,
              "end": 3570,
              "loc": {
                "start": {
                  "line": 138,
                  "column": 4
                },
                "end": {
                  "line": 138,
                  "column": 16
                }
              },
              "argument": {
                "type": "Literal",
                "start": 3565,
                "end": 3569,
                "loc": {
                  "start": {
                    "line": 138,
                    "column": 11
                  },
                  "end": {
                    "line": 138,
                    "column": 15
                  }
                },
                "value": true,
                "rawValue": true,
                "raw": "true"
              }
            }
          ],
          "trailingComments": null
        },
        "leadingComments": [
          {
            "type": "Block",
            "value": "*\n * Validates an string.\n *\n * @param {object} value - Something to validate.\n * @param {boolean} info - If type information should be returned.\n * @return {infoObject|boolean|string} - Type information or if it is valid.\n ",
            "start": 3142,
            "end": 3370,
            "loc": {
              "start": {
                "line": 122,
                "column": 0
              },
              "end": {
                "line": 128,
                "column": 3
              }
            },
            "range": [
              3142,
              3370
            ]
          }
        ],
        "trailingComments": [
          {
            "type": "Block",
            "value": "*\n * Validates an string.\n *\n * @param {object} value - Something to validate.\n * @param {boolean} info - If type information should be returned.\n * @return {infoObject|boolean|string} - Type information or if it is valid.\n ",
            "start": 3574,
            "end": 3802,
            "loc": {
              "start": {
                "line": 141,
                "column": 0
              },
              "end": {
                "line": 147,
                "column": 3
              }
            },
            "range": [
              3574,
              3802
            ]
          }
        ]
      },
      "specifiers": [],
      "source": null,
      "leadingComments": [
        {
          "type": "Block",
          "value": "*\n * Validates an string.\n *\n * @param {object} value - Something to validate.\n * @param {boolean} info - If type information should be returned.\n * @return {infoObject|boolean|string} - Type information or if it is valid.\n ",
          "start": 3142,
          "end": 3370,
          "loc": {
            "start": {
              "line": 122,
              "column": 0
            },
            "end": {
              "line": 128,
              "column": 3
            }
          },
          "range": [
            3142,
            3370
          ]
        }
      ],
      "trailingComments": [
        {
          "type": "Block",
          "value": "*\n * Validates an string.\n *\n * @param {object} value - Something to validate.\n * @param {boolean} info - If type information should be returned.\n * @return {infoObject|boolean|string} - Type information or if it is valid.\n ",
          "start": 3574,
          "end": 3802,
          "loc": {
            "start": {
              "line": 141,
              "column": 0
            },
            "end": {
              "line": 147,
              "column": 3
            }
          },
          "range": [
            3574,
            3802
          ]
        }
      ]
    },
    {
      "type": "ExportNamedDeclaration",
      "start": 3803,
      "end": 4002,
      "loc": {
        "start": {
          "line": 148,
          "column": 0
        },
        "end": {
          "line": 158,
          "column": 1
        }
      },
      "declaration": {
        "type": "FunctionDeclaration",
        "start": 3810,
        "end": 4002,
        "loc": {
          "start": {
            "line": 148,
            "column": 7
          },
          "end": {
            "line": 158,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 3819,
          "end": 3825,
          "loc": {
            "start": {
              "line": 148,
              "column": 16
            },
            "end": {
              "line": 148,
              "column": 22
            }
          },
          "name": "isPath",
          "leadingComments": null
        },
        "generator": false,
        "expression": false,
        "async": false,
        "params": [
          {
            "type": "Identifier",
            "start": 3826,
            "end": 3831,
            "loc": {
              "start": {
                "line": 148,
                "column": 23
              },
              "end": {
                "line": 148,
                "column": 28
              }
            },
            "name": "value"
          },
          {
            "type": "Identifier",
            "start": 3833,
            "end": 3837,
            "loc": {
              "start": {
                "line": 148,
                "column": 30
              },
              "end": {
                "line": 148,
                "column": 34
              }
            },
            "name": "info"
          }
        ],
        "body": {
          "type": "BlockStatement",
          "start": 3839,
          "end": 4002,
          "loc": {
            "start": {
              "line": 148,
              "column": 36
            },
            "end": {
              "line": 158,
              "column": 1
            }
          },
          "body": [
            {
              "type": "IfStatement",
              "start": 3845,
              "end": 3901,
              "loc": {
                "start": {
                  "line": 149,
                  "column": 4
                },
                "end": {
                  "line": 151,
                  "column": 5
                }
              },
              "test": {
                "type": "Identifier",
                "start": 3849,
                "end": 3853,
                "loc": {
                  "start": {
                    "line": 149,
                    "column": 8
                  },
                  "end": {
                    "line": 149,
                    "column": 12
                  }
                },
                "name": "info"
              },
              "consequent": {
                "type": "BlockStatement",
                "start": 3855,
                "end": 3901,
                "loc": {
                  "start": {
                    "line": 149,
                    "column": 14
                  },
                  "end": {
                    "line": 151,
                    "column": 5
                  }
                },
                "body": [
                  {
                    "type": "ReturnStatement",
                    "start": 3865,
                    "end": 3895,
                    "loc": {
                      "start": {
                        "line": 150,
                        "column": 8
                      },
                      "end": {
                        "line": 150,
                        "column": 38
                      }
                    },
                    "argument": {
                      "type": "CallExpression",
                      "start": 3872,
                      "end": 3894,
                      "loc": {
                        "start": {
                          "line": 150,
                          "column": 15
                        },
                        "end": {
                          "line": 150,
                          "column": 37
                        }
                      },
                      "callee": {
                        "type": "Identifier",
                        "start": 3872,
                        "end": 3882,
                        "loc": {
                          "start": {
                            "line": 150,
                            "column": 15
                          },
                          "end": {
                            "line": 150,
                            "column": 25
                          }
                        },
                        "name": "infoObject"
                      },
                      "arguments": [
                        {
                          "type": "Literal",
                          "start": 3883,
                          "end": 3893,
                          "loc": {
                            "start": {
                              "line": 150,
                              "column": 26
                            },
                            "end": {
                              "line": 150,
                              "column": 36
                            }
                          },
                          "value": "Filepath",
                          "rawValue": "Filepath",
                          "raw": "'Filepath'"
                        }
                      ]
                    }
                  }
                ]
              },
              "alternate": null
            },
            {
              "type": "IfStatement",
              "start": 3907,
              "end": 3982,
              "loc": {
                "start": {
                  "line": 153,
                  "column": 4
                },
                "end": {
                  "line": 155,
                  "column": 5
                }
              },
              "test": {
                "type": "BinaryExpression",
                "start": 3911,
                "end": 3935,
                "loc": {
                  "start": {
                    "line": 153,
                    "column": 8
                  },
                  "end": {
                    "line": 153,
                    "column": 32
                  }
                },
                "left": {
                  "type": "CallExpression",
                  "start": 3911,
                  "end": 3926,
                  "loc": {
                    "start": {
                      "line": 153,
                      "column": 8
                    },
                    "end": {
                      "line": 153,
                      "column": 23
                    }
                  },
                  "callee": {
                    "type": "Identifier",
                    "start": 3911,
                    "end": 3919,
                    "loc": {
                      "start": {
                        "line": 153,
                        "column": 8
                      },
                      "end": {
                        "line": 153,
                        "column": 16
                      }
                    },
                    "name": "isString"
                  },
                  "arguments": [
                    {
                      "type": "Identifier",
                      "start": 3920,
                      "end": 3925,
                      "loc": {
                        "start": {
                          "line": 153,
                          "column": 17
                        },
                        "end": {
                          "line": 153,
                          "column": 22
                        }
                      },
                      "name": "value"
                    }
                  ]
                },
                "operator": "!==",
                "right": {
                  "type": "Literal",
                  "start": 3931,
                  "end": 3935,
                  "loc": {
                    "start": {
                      "line": 153,
                      "column": 28
                    },
                    "end": {
                      "line": 153,
                      "column": 32
                    }
                  },
                  "value": true,
                  "rawValue": true,
                  "raw": "true"
                }
              },
              "consequent": {
                "type": "BlockStatement",
                "start": 3937,
                "end": 3982,
                "loc": {
                  "start": {
                    "line": 153,
                    "column": 34
                  },
                  "end": {
                    "line": 155,
                    "column": 5
                  }
                },
                "body": [
                  {
                    "type": "ReturnStatement",
                    "start": 3947,
                    "end": 3976,
                    "loc": {
                      "start": {
                        "line": 154,
                        "column": 8
                      },
                      "end": {
                        "line": 154,
                        "column": 37
                      }
                    },
                    "argument": {
                      "type": "Literal",
                      "start": 3954,
                      "end": 3975,
                      "loc": {
                        "start": {
                          "line": 154,
                          "column": 15
                        },
                        "end": {
                          "line": 154,
                          "column": 36
                        }
                      },
                      "value": "Was not a filepath!",
                      "rawValue": "Was not a filepath!",
                      "raw": "'Was not a filepath!'"
                    }
                  }
                ]
              },
              "alternate": null
            },
            {
              "type": "ReturnStatement",
              "start": 3988,
              "end": 4000,
              "loc": {
                "start": {
                  "line": 157,
                  "column": 4
                },
                "end": {
                  "line": 157,
                  "column": 16
                }
              },
              "argument": {
                "type": "Literal",
                "start": 3995,
                "end": 3999,
                "loc": {
                  "start": {
                    "line": 157,
                    "column": 11
                  },
                  "end": {
                    "line": 157,
                    "column": 15
                  }
                },
                "value": true,
                "rawValue": true,
                "raw": "true"
              }
            }
          ],
          "trailingComments": null
        },
        "leadingComments": [
          {
            "type": "Block",
            "value": "*\n * Validates an string.\n *\n * @param {object} value - Something to validate.\n * @param {boolean} info - If type information should be returned.\n * @return {infoObject|boolean|string} - Type information or if it is valid.\n ",
            "start": 3574,
            "end": 3802,
            "loc": {
              "start": {
                "line": 141,
                "column": 0
              },
              "end": {
                "line": 147,
                "column": 3
              }
            },
            "range": [
              3574,
              3802
            ]
          }
        ],
        "trailingComments": [
          {
            "type": "Block",
            "value": "*\n * Validates against a list of validators.\n *\n * @param {...function} validators - Validators to validate against.\n * @return {function} - A function that takes a value and that returns true or false if valid or not.\n ",
            "start": 4004,
            "end": 4228,
            "loc": {
              "start": {
                "line": 160,
                "column": 0
              },
              "end": {
                "line": 165,
                "column": 3
              }
            },
            "range": [
              4004,
              4228
            ]
          }
        ]
      },
      "specifiers": [],
      "source": null,
      "leadingComments": [
        {
          "type": "Block",
          "value": "*\n * Validates an string.\n *\n * @param {object} value - Something to validate.\n * @param {boolean} info - If type information should be returned.\n * @return {infoObject|boolean|string} - Type information or if it is valid.\n ",
          "start": 3574,
          "end": 3802,
          "loc": {
            "start": {
              "line": 141,
              "column": 0
            },
            "end": {
              "line": 147,
              "column": 3
            }
          },
          "range": [
            3574,
            3802
          ]
        }
      ],
      "trailingComments": [
        {
          "type": "Block",
          "value": "*\n * Validates against a list of validators.\n *\n * @param {...function} validators - Validators to validate against.\n * @return {function} - A function that takes a value and that returns true or false if valid or not.\n ",
          "start": 4004,
          "end": 4228,
          "loc": {
            "start": {
              "line": 160,
              "column": 0
            },
            "end": {
              "line": 165,
              "column": 3
            }
          },
          "range": [
            4004,
            4228
          ]
        }
      ]
    },
    {
      "type": "ExportNamedDeclaration",
      "start": 4229,
      "end": 5035,
      "loc": {
        "start": {
          "line": 166,
          "column": 0
        },
        "end": {
          "line": 192,
          "column": 1
        }
      },
      "declaration": {
        "type": "FunctionDeclaration",
        "start": 4236,
        "end": 5035,
        "loc": {
          "start": {
            "line": 166,
            "column": 7
          },
          "end": {
            "line": 192,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 4245,
          "end": 4250,
          "loc": {
            "start": {
              "line": 166,
              "column": 16
            },
            "end": {
              "line": 166,
              "column": 21
            }
          },
          "name": "oneOf",
          "leadingComments": null
        },
        "generator": false,
        "expression": false,
        "async": false,
        "params": [
          {
            "type": "RestElement",
            "start": 4251,
            "end": 4264,
            "loc": {
              "start": {
                "line": 166,
                "column": 22
              },
              "end": {
                "line": 166,
                "column": 35
              }
            },
            "argument": {
              "type": "Identifier",
              "start": 4254,
              "end": 4264,
              "loc": {
                "start": {
                  "line": 166,
                  "column": 25
                },
                "end": {
                  "line": 166,
                  "column": 35
                }
              },
              "name": "validators"
            }
          }
        ],
        "body": {
          "type": "BlockStatement",
          "start": 4266,
          "end": 5035,
          "loc": {
            "start": {
              "line": 166,
              "column": 37
            },
            "end": {
              "line": 192,
              "column": 1
            }
          },
          "body": [
            {
              "type": "IfStatement",
              "start": 4272,
              "end": 4371,
              "loc": {
                "start": {
                  "line": 167,
                  "column": 4
                },
                "end": {
                  "line": 169,
                  "column": 5
                }
              },
              "test": {
                "type": "UnaryExpression",
                "start": 4276,
                "end": 4294,
                "loc": {
                  "start": {
                    "line": 167,
                    "column": 8
                  },
                  "end": {
                    "line": 167,
                    "column": 26
                  }
                },
                "operator": "!",
                "prefix": true,
                "argument": {
                  "type": "MemberExpression",
                  "start": 4277,
                  "end": 4294,
                  "loc": {
                    "start": {
                      "line": 167,
                      "column": 9
                    },
                    "end": {
                      "line": 167,
                      "column": 26
                    }
                  },
                  "object": {
                    "type": "Identifier",
                    "start": 4277,
                    "end": 4287,
                    "loc": {
                      "start": {
                        "line": 167,
                        "column": 9
                      },
                      "end": {
                        "line": 167,
                        "column": 19
                      }
                    },
                    "name": "validators"
                  },
                  "property": {
                    "type": "Identifier",
                    "start": 4288,
                    "end": 4294,
                    "loc": {
                      "start": {
                        "line": 167,
                        "column": 20
                      },
                      "end": {
                        "line": 167,
                        "column": 26
                      }
                    },
                    "name": "length"
                  },
                  "computed": false
                }
              },
              "consequent": {
                "type": "BlockStatement",
                "start": 4296,
                "end": 4371,
                "loc": {
                  "start": {
                    "line": 167,
                    "column": 28
                  },
                  "end": {
                    "line": 169,
                    "column": 5
                  }
                },
                "body": [
                  {
                    "type": "ThrowStatement",
                    "start": 4306,
                    "end": 4365,
                    "loc": {
                      "start": {
                        "line": 168,
                        "column": 8
                      },
                      "end": {
                        "line": 168,
                        "column": 67
                      }
                    },
                    "argument": {
                      "type": "NewExpression",
                      "start": 4312,
                      "end": 4364,
                      "loc": {
                        "start": {
                          "line": 168,
                          "column": 14
                        },
                        "end": {
                          "line": 168,
                          "column": 66
                        }
                      },
                      "callee": {
                        "type": "Identifier",
                        "start": 4316,
                        "end": 4321,
                        "loc": {
                          "start": {
                            "line": 168,
                            "column": 18
                          },
                          "end": {
                            "line": 168,
                            "column": 23
                          }
                        },
                        "name": "Error"
                      },
                      "arguments": [
                        {
                          "type": "Literal",
                          "start": 4322,
                          "end": 4363,
                          "loc": {
                            "start": {
                              "line": 168,
                              "column": 24
                            },
                            "end": {
                              "line": 168,
                              "column": 65
                            }
                          },
                          "value": "You need to use at least one validator.",
                          "rawValue": "You need to use at least one validator.",
                          "raw": "'You need to use at least one validator.'"
                        }
                      ]
                    }
                  }
                ]
              },
              "alternate": null
            },
            {
              "type": "ReturnStatement",
              "start": 4377,
              "end": 5033,
              "loc": {
                "start": {
                  "line": 171,
                  "column": 4
                },
                "end": {
                  "line": 191,
                  "column": 6
                }
              },
              "argument": {
                "type": "ArrowFunctionExpression",
                "start": 4384,
                "end": 5032,
                "loc": {
                  "start": {
                    "line": 171,
                    "column": 11
                  },
                  "end": {
                    "line": 191,
                    "column": 5
                  }
                },
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 4385,
                    "end": 4390,
                    "loc": {
                      "start": {
                        "line": 171,
                        "column": 12
                      },
                      "end": {
                        "line": 171,
                        "column": 17
                      }
                    },
                    "name": "input"
                  },
                  {
                    "type": "Identifier",
                    "start": 4392,
                    "end": 4396,
                    "loc": {
                      "start": {
                        "line": 171,
                        "column": 19
                      },
                      "end": {
                        "line": 171,
                        "column": 23
                      }
                    },
                    "name": "info"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 4401,
                  "end": 5032,
                  "loc": {
                    "start": {
                      "line": 171,
                      "column": 28
                    },
                    "end": {
                      "line": 191,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "IfStatement",
                      "start": 4411,
                      "end": 4630,
                      "loc": {
                        "start": {
                          "line": 172,
                          "column": 8
                        },
                        "end": {
                          "line": 178,
                          "column": 9
                        }
                      },
                      "test": {
                        "type": "Identifier",
                        "start": 4415,
                        "end": 4419,
                        "loc": {
                          "start": {
                            "line": 172,
                            "column": 12
                          },
                          "end": {
                            "line": 172,
                            "column": 16
                          }
                        },
                        "name": "info"
                      },
                      "consequent": {
                        "type": "BlockStatement",
                        "start": 4421,
                        "end": 4630,
                        "loc": {
                          "start": {
                            "line": 172,
                            "column": 18
                          },
                          "end": {
                            "line": 178,
                            "column": 9
                          }
                        },
                        "body": [
                          {
                            "type": "VariableDeclaration",
                            "start": 4435,
                            "end": 4450,
                            "loc": {
                              "start": {
                                "line": 173,
                                "column": 12
                              },
                              "end": {
                                "line": 173,
                                "column": 27
                              }
                            },
                            "declarations": [
                              {
                                "type": "VariableDeclarator",
                                "start": 4439,
                                "end": 4449,
                                "loc": {
                                  "start": {
                                    "line": 173,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 173,
                                    "column": 26
                                  }
                                },
                                "id": {
                                  "type": "Identifier",
                                  "start": 4439,
                                  "end": 4444,
                                  "loc": {
                                    "start": {
                                      "line": 173,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 173,
                                      "column": 21
                                    }
                                  },
                                  "name": "types"
                                },
                                "init": {
                                  "type": "ArrayExpression",
                                  "start": 4447,
                                  "end": 4449,
                                  "loc": {
                                    "start": {
                                      "line": 173,
                                      "column": 24
                                    },
                                    "end": {
                                      "line": 173,
                                      "column": 26
                                    }
                                  },
                                  "elements": []
                                }
                              }
                            ],
                            "kind": "let"
                          },
                          {
                            "type": "ForOfStatement",
                            "start": 4463,
                            "end": 4570,
                            "loc": {
                              "start": {
                                "line": 174,
                                "column": 12
                              },
                              "end": {
                                "line": 176,
                                "column": 13
                              }
                            },
                            "left": {
                              "type": "VariableDeclaration",
                              "start": 4468,
                              "end": 4483,
                              "loc": {
                                "start": {
                                  "line": 174,
                                  "column": 17
                                },
                                "end": {
                                  "line": 174,
                                  "column": 32
                                }
                              },
                              "declarations": [
                                {
                                  "type": "VariableDeclarator",
                                  "start": 4474,
                                  "end": 4483,
                                  "loc": {
                                    "start": {
                                      "line": 174,
                                      "column": 23
                                    },
                                    "end": {
                                      "line": 174,
                                      "column": 32
                                    }
                                  },
                                  "id": {
                                    "type": "Identifier",
                                    "start": 4474,
                                    "end": 4483,
                                    "loc": {
                                      "start": {
                                        "line": 174,
                                        "column": 23
                                      },
                                      "end": {
                                        "line": 174,
                                        "column": 32
                                      }
                                    },
                                    "name": "validator"
                                  },
                                  "init": null
                                }
                              ],
                              "kind": "const"
                            },
                            "right": {
                              "type": "Identifier",
                              "start": 4487,
                              "end": 4497,
                              "loc": {
                                "start": {
                                  "line": 174,
                                  "column": 36
                                },
                                "end": {
                                  "line": 174,
                                  "column": 46
                                }
                              },
                              "name": "validators"
                            },
                            "body": {
                              "type": "BlockStatement",
                              "start": 4499,
                              "end": 4570,
                              "loc": {
                                "start": {
                                  "line": 174,
                                  "column": 48
                                },
                                "end": {
                                  "line": 176,
                                  "column": 13
                                }
                              },
                              "body": [
                                {
                                  "type": "ExpressionStatement",
                                  "start": 4517,
                                  "end": 4556,
                                  "loc": {
                                    "start": {
                                      "line": 175,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 175,
                                      "column": 55
                                    }
                                  },
                                  "expression": {
                                    "type": "CallExpression",
                                    "start": 4517,
                                    "end": 4555,
                                    "loc": {
                                      "start": {
                                        "line": 175,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 175,
                                        "column": 54
                                      }
                                    },
                                    "callee": {
                                      "type": "MemberExpression",
                                      "start": 4517,
                                      "end": 4527,
                                      "loc": {
                                        "start": {
                                          "line": 175,
                                          "column": 16
                                        },
                                        "end": {
                                          "line": 175,
                                          "column": 26
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 4517,
                                        "end": 4522,
                                        "loc": {
                                          "start": {
                                            "line": 175,
                                            "column": 16
                                          },
                                          "end": {
                                            "line": 175,
                                            "column": 21
                                          }
                                        },
                                        "name": "types"
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 4523,
                                        "end": 4527,
                                        "loc": {
                                          "start": {
                                            "line": 175,
                                            "column": 22
                                          },
                                          "end": {
                                            "line": 175,
                                            "column": 26
                                          }
                                        },
                                        "name": "push"
                                      },
                                      "computed": false
                                    },
                                    "arguments": [
                                      {
                                        "type": "MemberExpression",
                                        "start": 4528,
                                        "end": 4554,
                                        "loc": {
                                          "start": {
                                            "line": 175,
                                            "column": 27
                                          },
                                          "end": {
                                            "line": 175,
                                            "column": 53
                                          }
                                        },
                                        "object": {
                                          "type": "CallExpression",
                                          "start": 4528,
                                          "end": 4549,
                                          "loc": {
                                            "start": {
                                              "line": 175,
                                              "column": 27
                                            },
                                            "end": {
                                              "line": 175,
                                              "column": 48
                                            }
                                          },
                                          "callee": {
                                            "type": "Identifier",
                                            "start": 4528,
                                            "end": 4538,
                                            "loc": {
                                              "start": {
                                                "line": 175,
                                                "column": 27
                                              },
                                              "end": {
                                                "line": 175,
                                                "column": 37
                                              }
                                            },
                                            "name": "infoObject"
                                          },
                                          "arguments": [
                                            {
                                              "type": "Identifier",
                                              "start": 4539,
                                              "end": 4548,
                                              "loc": {
                                                "start": {
                                                  "line": 175,
                                                  "column": 38
                                                },
                                                "end": {
                                                  "line": 175,
                                                  "column": 47
                                                }
                                              },
                                              "name": "validator"
                                            }
                                          ]
                                        },
                                        "property": {
                                          "type": "Identifier",
                                          "start": 4550,
                                          "end": 4554,
                                          "loc": {
                                            "start": {
                                              "line": 175,
                                              "column": 49
                                            },
                                            "end": {
                                              "line": 175,
                                              "column": 53
                                            }
                                          },
                                          "name": "type"
                                        },
                                        "computed": false
                                      }
                                    ]
                                  }
                                }
                              ]
                            }
                          },
                          {
                            "type": "ReturnStatement",
                            "start": 4583,
                            "end": 4620,
                            "loc": {
                              "start": {
                                "line": 177,
                                "column": 12
                              },
                              "end": {
                                "line": 177,
                                "column": 49
                              }
                            },
                            "argument": {
                              "type": "CallExpression",
                              "start": 4590,
                              "end": 4619,
                              "loc": {
                                "start": {
                                  "line": 177,
                                  "column": 19
                                },
                                "end": {
                                  "line": 177,
                                  "column": 48
                                }
                              },
                              "callee": {
                                "type": "Identifier",
                                "start": 4590,
                                "end": 4600,
                                "loc": {
                                  "start": {
                                    "line": 177,
                                    "column": 19
                                  },
                                  "end": {
                                    "line": 177,
                                    "column": 29
                                  }
                                },
                                "name": "infoObject"
                              },
                              "arguments": [
                                {
                                  "type": "CallExpression",
                                  "start": 4601,
                                  "end": 4618,
                                  "loc": {
                                    "start": {
                                      "line": 177,
                                      "column": 30
                                    },
                                    "end": {
                                      "line": 177,
                                      "column": 47
                                    }
                                  },
                                  "callee": {
                                    "type": "MemberExpression",
                                    "start": 4601,
                                    "end": 4611,
                                    "loc": {
                                      "start": {
                                        "line": 177,
                                        "column": 30
                                      },
                                      "end": {
                                        "line": 177,
                                        "column": 40
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 4601,
                                      "end": 4606,
                                      "loc": {
                                        "start": {
                                          "line": 177,
                                          "column": 30
                                        },
                                        "end": {
                                          "line": 177,
                                          "column": 35
                                        }
                                      },
                                      "name": "types"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 4607,
                                      "end": 4611,
                                      "loc": {
                                        "start": {
                                          "line": 177,
                                          "column": 36
                                        },
                                        "end": {
                                          "line": 177,
                                          "column": 40
                                        }
                                      },
                                      "name": "join"
                                    },
                                    "computed": false
                                  },
                                  "arguments": [
                                    {
                                      "type": "Literal",
                                      "start": 4612,
                                      "end": 4617,
                                      "loc": {
                                        "start": {
                                          "line": 177,
                                          "column": 41
                                        },
                                        "end": {
                                          "line": 177,
                                          "column": 46
                                        }
                                      },
                                      "value": " / ",
                                      "rawValue": " / ",
                                      "raw": "' / '"
                                    }
                                  ]
                                }
                              ]
                            }
                          }
                        ]
                      },
                      "alternate": null
                    },
                    {
                      "type": "VariableDeclaration",
                      "start": 4640,
                      "end": 4659,
                      "loc": {
                        "start": {
                          "line": 180,
                          "column": 8
                        },
                        "end": {
                          "line": 180,
                          "column": 27
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 4646,
                          "end": 4658,
                          "loc": {
                            "start": {
                              "line": 180,
                              "column": 14
                            },
                            "end": {
                              "line": 180,
                              "column": 26
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 4646,
                            "end": 4653,
                            "loc": {
                              "start": {
                                "line": 180,
                                "column": 14
                              },
                              "end": {
                                "line": 180,
                                "column": 21
                              }
                            },
                            "name": "invalid"
                          },
                          "init": {
                            "type": "ArrayExpression",
                            "start": 4656,
                            "end": 4658,
                            "loc": {
                              "start": {
                                "line": 180,
                                "column": 24
                              },
                              "end": {
                                "line": 180,
                                "column": 26
                              }
                            },
                            "elements": []
                          }
                        }
                      ],
                      "kind": "const"
                    },
                    {
                      "type": "ForOfStatement",
                      "start": 4668,
                      "end": 4901,
                      "loc": {
                        "start": {
                          "line": 181,
                          "column": 8
                        },
                        "end": {
                          "line": 187,
                          "column": 9
                        }
                      },
                      "left": {
                        "type": "VariableDeclaration",
                        "start": 4673,
                        "end": 4688,
                        "loc": {
                          "start": {
                            "line": 181,
                            "column": 13
                          },
                          "end": {
                            "line": 181,
                            "column": 28
                          }
                        },
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "start": 4679,
                            "end": 4688,
                            "loc": {
                              "start": {
                                "line": 181,
                                "column": 19
                              },
                              "end": {
                                "line": 181,
                                "column": 28
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 4679,
                              "end": 4688,
                              "loc": {
                                "start": {
                                  "line": 181,
                                  "column": 19
                                },
                                "end": {
                                  "line": 181,
                                  "column": 28
                                }
                              },
                              "name": "validator"
                            },
                            "init": null
                          }
                        ],
                        "kind": "const"
                      },
                      "right": {
                        "type": "Identifier",
                        "start": 4692,
                        "end": 4702,
                        "loc": {
                          "start": {
                            "line": 181,
                            "column": 32
                          },
                          "end": {
                            "line": 181,
                            "column": 42
                          }
                        },
                        "name": "validators"
                      },
                      "body": {
                        "type": "BlockStatement",
                        "start": 4704,
                        "end": 4901,
                        "loc": {
                          "start": {
                            "line": 181,
                            "column": 44
                          },
                          "end": {
                            "line": 187,
                            "column": 9
                          }
                        },
                        "body": [
                          {
                            "type": "VariableDeclaration",
                            "start": 4718,
                            "end": 4759,
                            "loc": {
                              "start": {
                                "line": 182,
                                "column": 12
                              },
                              "end": {
                                "line": 182,
                                "column": 53
                              }
                            },
                            "declarations": [
                              {
                                "type": "VariableDeclarator",
                                "start": 4724,
                                "end": 4758,
                                "loc": {
                                  "start": {
                                    "line": 182,
                                    "column": 18
                                  },
                                  "end": {
                                    "line": 182,
                                    "column": 52
                                  }
                                },
                                "id": {
                                  "type": "Identifier",
                                  "start": 4724,
                                  "end": 4730,
                                  "loc": {
                                    "start": {
                                      "line": 182,
                                      "column": 18
                                    },
                                    "end": {
                                      "line": 182,
                                      "column": 24
                                    }
                                  },
                                  "name": "result"
                                },
                                "init": {
                                  "type": "CallExpression",
                                  "start": 4733,
                                  "end": 4758,
                                  "loc": {
                                    "start": {
                                      "line": 182,
                                      "column": 27
                                    },
                                    "end": {
                                      "line": 182,
                                      "column": 52
                                    }
                                  },
                                  "callee": {
                                    "type": "Identifier",
                                    "start": 4733,
                                    "end": 4740,
                                    "loc": {
                                      "start": {
                                        "line": 182,
                                        "column": 27
                                      },
                                      "end": {
                                        "line": 182,
                                        "column": 34
                                      }
                                    },
                                    "name": "isValid"
                                  },
                                  "arguments": [
                                    {
                                      "type": "Identifier",
                                      "start": 4741,
                                      "end": 4746,
                                      "loc": {
                                        "start": {
                                          "line": 182,
                                          "column": 35
                                        },
                                        "end": {
                                          "line": 182,
                                          "column": 40
                                        }
                                      },
                                      "name": "input"
                                    },
                                    {
                                      "type": "Identifier",
                                      "start": 4748,
                                      "end": 4757,
                                      "loc": {
                                        "start": {
                                          "line": 182,
                                          "column": 42
                                        },
                                        "end": {
                                          "line": 182,
                                          "column": 51
                                        }
                                      },
                                      "name": "validator"
                                    }
                                  ]
                                }
                              }
                            ],
                            "kind": "const"
                          },
                          {
                            "type": "IfStatement",
                            "start": 4772,
                            "end": 4837,
                            "loc": {
                              "start": {
                                "line": 183,
                                "column": 12
                              },
                              "end": {
                                "line": 185,
                                "column": 13
                              }
                            },
                            "test": {
                              "type": "BinaryExpression",
                              "start": 4776,
                              "end": 4791,
                              "loc": {
                                "start": {
                                  "line": 183,
                                  "column": 16
                                },
                                "end": {
                                  "line": 183,
                                  "column": 31
                                }
                              },
                              "left": {
                                "type": "Identifier",
                                "start": 4776,
                                "end": 4782,
                                "loc": {
                                  "start": {
                                    "line": 183,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 183,
                                    "column": 22
                                  }
                                },
                                "name": "result"
                              },
                              "operator": "===",
                              "right": {
                                "type": "Literal",
                                "start": 4787,
                                "end": 4791,
                                "loc": {
                                  "start": {
                                    "line": 183,
                                    "column": 27
                                  },
                                  "end": {
                                    "line": 183,
                                    "column": 31
                                  }
                                },
                                "value": true,
                                "rawValue": true,
                                "raw": "true"
                              }
                            },
                            "consequent": {
                              "type": "BlockStatement",
                              "start": 4793,
                              "end": 4837,
                              "loc": {
                                "start": {
                                  "line": 183,
                                  "column": 33
                                },
                                "end": {
                                  "line": 185,
                                  "column": 13
                                }
                              },
                              "body": [
                                {
                                  "type": "ReturnStatement",
                                  "start": 4811,
                                  "end": 4823,
                                  "loc": {
                                    "start": {
                                      "line": 184,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 184,
                                      "column": 28
                                    }
                                  },
                                  "argument": {
                                    "type": "Literal",
                                    "start": 4818,
                                    "end": 4822,
                                    "loc": {
                                      "start": {
                                        "line": 184,
                                        "column": 23
                                      },
                                      "end": {
                                        "line": 184,
                                        "column": 27
                                      }
                                    },
                                    "value": true,
                                    "rawValue": true,
                                    "raw": "true"
                                  }
                                }
                              ]
                            },
                            "alternate": null
                          },
                          {
                            "type": "ExpressionStatement",
                            "start": 4850,
                            "end": 4891,
                            "loc": {
                              "start": {
                                "line": 186,
                                "column": 12
                              },
                              "end": {
                                "line": 186,
                                "column": 53
                              }
                            },
                            "expression": {
                              "type": "CallExpression",
                              "start": 4850,
                              "end": 4890,
                              "loc": {
                                "start": {
                                  "line": 186,
                                  "column": 12
                                },
                                "end": {
                                  "line": 186,
                                  "column": 52
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 4850,
                                "end": 4862,
                                "loc": {
                                  "start": {
                                    "line": 186,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 186,
                                    "column": 24
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 4850,
                                  "end": 4857,
                                  "loc": {
                                    "start": {
                                      "line": 186,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 186,
                                      "column": 19
                                    }
                                  },
                                  "name": "invalid"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 4858,
                                  "end": 4862,
                                  "loc": {
                                    "start": {
                                      "line": 186,
                                      "column": 20
                                    },
                                    "end": {
                                      "line": 186,
                                      "column": 24
                                    }
                                  },
                                  "name": "push"
                                },
                                "computed": false
                              },
                              "arguments": [
                                {
                                  "type": "MemberExpression",
                                  "start": 4863,
                                  "end": 4889,
                                  "loc": {
                                    "start": {
                                      "line": 186,
                                      "column": 25
                                    },
                                    "end": {
                                      "line": 186,
                                      "column": 51
                                    }
                                  },
                                  "object": {
                                    "type": "CallExpression",
                                    "start": 4863,
                                    "end": 4884,
                                    "loc": {
                                      "start": {
                                        "line": 186,
                                        "column": 25
                                      },
                                      "end": {
                                        "line": 186,
                                        "column": 46
                                      }
                                    },
                                    "callee": {
                                      "type": "Identifier",
                                      "start": 4863,
                                      "end": 4872,
                                      "loc": {
                                        "start": {
                                          "line": 186,
                                          "column": 25
                                        },
                                        "end": {
                                          "line": 186,
                                          "column": 34
                                        }
                                      },
                                      "name": "validator"
                                    },
                                    "arguments": [
                                      {
                                        "type": "Literal",
                                        "start": 4873,
                                        "end": 4877,
                                        "loc": {
                                          "start": {
                                            "line": 186,
                                            "column": 35
                                          },
                                          "end": {
                                            "line": 186,
                                            "column": 39
                                          }
                                        },
                                        "value": null,
                                        "rawValue": null,
                                        "raw": "null"
                                      },
                                      {
                                        "type": "Literal",
                                        "start": 4879,
                                        "end": 4883,
                                        "loc": {
                                          "start": {
                                            "line": 186,
                                            "column": 41
                                          },
                                          "end": {
                                            "line": 186,
                                            "column": 45
                                          }
                                        },
                                        "value": true,
                                        "rawValue": true,
                                        "raw": "true"
                                      }
                                    ]
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 4885,
                                    "end": 4889,
                                    "loc": {
                                      "start": {
                                        "line": 186,
                                        "column": 47
                                      },
                                      "end": {
                                        "line": 186,
                                        "column": 51
                                      }
                                    },
                                    "name": "type"
                                  },
                                  "computed": false
                                }
                              ]
                            }
                          }
                        ]
                      }
                    },
                    {
                      "type": "ReturnStatement",
                      "start": 4911,
                      "end": 5026,
                      "loc": {
                        "start": {
                          "line": 189,
                          "column": 8
                        },
                        "end": {
                          "line": 190,
                          "column": 67
                        }
                      },
                      "argument": {
                        "type": "BinaryExpression",
                        "start": 4918,
                        "end": 5025,
                        "loc": {
                          "start": {
                            "line": 189,
                            "column": 15
                          },
                          "end": {
                            "line": 190,
                            "column": 66
                          }
                        },
                        "left": {
                          "type": "Literal",
                          "start": 4918,
                          "end": 4956,
                          "loc": {
                            "start": {
                              "line": 189,
                              "column": 15
                            },
                            "end": {
                              "line": 189,
                              "column": 53
                            }
                          },
                          "value": "Was not any of the possible types:\n",
                          "rawValue": "Was not any of the possible types:\n",
                          "raw": "'Was not any of the possible types:\\n'"
                        },
                        "operator": "+",
                        "right": {
                          "type": "CallExpression",
                          "start": 4971,
                          "end": 5025,
                          "loc": {
                            "start": {
                              "line": 190,
                              "column": 12
                            },
                            "end": {
                              "line": 190,
                              "column": 66
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 4971,
                            "end": 4985,
                            "loc": {
                              "start": {
                                "line": 190,
                                "column": 12
                              },
                              "end": {
                                "line": 190,
                                "column": 26
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 4971,
                              "end": 4978,
                              "loc": {
                                "start": {
                                  "line": 190,
                                  "column": 12
                                },
                                "end": {
                                  "line": 190,
                                  "column": 19
                                }
                              },
                              "name": "invalid"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 4979,
                              "end": 4985,
                              "loc": {
                                "start": {
                                  "line": 190,
                                  "column": 20
                                },
                                "end": {
                                  "line": 190,
                                  "column": 26
                                }
                              },
                              "name": "reduce"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "ArrowFunctionExpression",
                              "start": 4986,
                              "end": 5020,
                              "loc": {
                                "start": {
                                  "line": 190,
                                  "column": 27
                                },
                                "end": {
                                  "line": 190,
                                  "column": 61
                                }
                              },
                              "id": null,
                              "generator": false,
                              "expression": true,
                              "async": false,
                              "params": [
                                {
                                  "type": "Identifier",
                                  "start": 4987,
                                  "end": 4991,
                                  "loc": {
                                    "start": {
                                      "line": 190,
                                      "column": 28
                                    },
                                    "end": {
                                      "line": 190,
                                      "column": 32
                                    }
                                  },
                                  "name": "prev"
                                },
                                {
                                  "type": "Identifier",
                                  "start": 4993,
                                  "end": 4997,
                                  "loc": {
                                    "start": {
                                      "line": 190,
                                      "column": 34
                                    },
                                    "end": {
                                      "line": 190,
                                      "column": 38
                                    }
                                  },
                                  "name": "next"
                                }
                              ],
                              "body": {
                                "type": "BinaryExpression",
                                "start": 5002,
                                "end": 5020,
                                "loc": {
                                  "start": {
                                    "line": 190,
                                    "column": 43
                                  },
                                  "end": {
                                    "line": 190,
                                    "column": 61
                                  }
                                },
                                "left": {
                                  "type": "BinaryExpression",
                                  "start": 5002,
                                  "end": 5013,
                                  "loc": {
                                    "start": {
                                      "line": 190,
                                      "column": 43
                                    },
                                    "end": {
                                      "line": 190,
                                      "column": 54
                                    }
                                  },
                                  "left": {
                                    "type": "Identifier",
                                    "start": 5002,
                                    "end": 5006,
                                    "loc": {
                                      "start": {
                                        "line": 190,
                                        "column": 43
                                      },
                                      "end": {
                                        "line": 190,
                                        "column": 47
                                      }
                                    },
                                    "name": "prev"
                                  },
                                  "operator": "+",
                                  "right": {
                                    "type": "Literal",
                                    "start": 5009,
                                    "end": 5013,
                                    "loc": {
                                      "start": {
                                        "line": 190,
                                        "column": 50
                                      },
                                      "end": {
                                        "line": 190,
                                        "column": 54
                                      }
                                    },
                                    "value": "\n",
                                    "rawValue": "\n",
                                    "raw": "'\\n'"
                                  }
                                },
                                "operator": "+",
                                "right": {
                                  "type": "Identifier",
                                  "start": 5016,
                                  "end": 5020,
                                  "loc": {
                                    "start": {
                                      "line": 190,
                                      "column": 57
                                    },
                                    "end": {
                                      "line": 190,
                                      "column": 61
                                    }
                                  },
                                  "name": "next"
                                }
                              }
                            },
                            {
                              "type": "Literal",
                              "start": 5022,
                              "end": 5024,
                              "loc": {
                                "start": {
                                  "line": 190,
                                  "column": 63
                                },
                                "end": {
                                  "line": 190,
                                  "column": 65
                                }
                              },
                              "value": "",
                              "rawValue": "",
                              "raw": "''"
                            }
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          ],
          "trailingComments": null
        },
        "leadingComments": [
          {
            "type": "Block",
            "value": "*\n * Validates against a list of validators.\n *\n * @param {...function} validators - Validators to validate against.\n * @return {function} - A function that takes a value and that returns true or false if valid or not.\n ",
            "start": 4004,
            "end": 4228,
            "loc": {
              "start": {
                "line": 160,
                "column": 0
              },
              "end": {
                "line": 165,
                "column": 3
              }
            },
            "range": [
              4004,
              4228
            ]
          }
        ],
        "trailingComments": [
          {
            "type": "Block",
            "value": "*\n * Marks that the value is required\n *\n * @param {function} validator - Validator to validate against\n * @return {function} - A function that takes a value and that returns true or false if valid or not.\n ",
            "start": 5037,
            "end": 5248,
            "loc": {
              "start": {
                "line": 194,
                "column": 0
              },
              "end": {
                "line": 199,
                "column": 3
              }
            },
            "range": [
              5037,
              5248
            ]
          }
        ]
      },
      "specifiers": [],
      "source": null,
      "leadingComments": [
        {
          "type": "Block",
          "value": "*\n * Validates against a list of validators.\n *\n * @param {...function} validators - Validators to validate against.\n * @return {function} - A function that takes a value and that returns true or false if valid or not.\n ",
          "start": 4004,
          "end": 4228,
          "loc": {
            "start": {
              "line": 160,
              "column": 0
            },
            "end": {
              "line": 165,
              "column": 3
            }
          },
          "range": [
            4004,
            4228
          ]
        }
      ],
      "trailingComments": [
        {
          "type": "Block",
          "value": "*\n * Marks that the value is required\n *\n * @param {function} validator - Validator to validate against\n * @return {function} - A function that takes a value and that returns true or false if valid or not.\n ",
          "start": 5037,
          "end": 5248,
          "loc": {
            "start": {
              "line": 194,
              "column": 0
            },
            "end": {
              "line": 199,
              "column": 3
            }
          },
          "range": [
            5037,
            5248
          ]
        }
      ]
    },
    {
      "type": "ExportNamedDeclaration",
      "start": 5249,
      "end": 5804,
      "loc": {
        "start": {
          "line": 200,
          "column": 0
        },
        "end": {
          "line": 220,
          "column": 1
        }
      },
      "declaration": {
        "type": "FunctionDeclaration",
        "start": 5256,
        "end": 5804,
        "loc": {
          "start": {
            "line": 200,
            "column": 7
          },
          "end": {
            "line": 220,
            "column": 1
          }
        },
        "id": {
          "type": "Identifier",
          "start": 5265,
          "end": 5273,
          "loc": {
            "start": {
              "line": 200,
              "column": 16
            },
            "end": {
              "line": 200,
              "column": 24
            }
          },
          "name": "required",
          "leadingComments": null
        },
        "generator": false,
        "expression": false,
        "async": false,
        "params": [
          {
            "type": "Identifier",
            "start": 5274,
            "end": 5283,
            "loc": {
              "start": {
                "line": 200,
                "column": 25
              },
              "end": {
                "line": 200,
                "column": 34
              }
            },
            "name": "validator"
          }
        ],
        "body": {
          "type": "BlockStatement",
          "start": 5285,
          "end": 5804,
          "loc": {
            "start": {
              "line": 200,
              "column": 36
            },
            "end": {
              "line": 220,
              "column": 1
            }
          },
          "body": [
            {
              "type": "ReturnStatement",
              "start": 5291,
              "end": 5802,
              "loc": {
                "start": {
                  "line": 201,
                  "column": 4
                },
                "end": {
                  "line": 219,
                  "column": 6
                }
              },
              "argument": {
                "type": "ArrowFunctionExpression",
                "start": 5298,
                "end": 5801,
                "loc": {
                  "start": {
                    "line": 201,
                    "column": 11
                  },
                  "end": {
                    "line": 219,
                    "column": 5
                  }
                },
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 5299,
                    "end": 5304,
                    "loc": {
                      "start": {
                        "line": 201,
                        "column": 12
                      },
                      "end": {
                        "line": 201,
                        "column": 17
                      }
                    },
                    "name": "input"
                  },
                  {
                    "type": "Identifier",
                    "start": 5306,
                    "end": 5310,
                    "loc": {
                      "start": {
                        "line": 201,
                        "column": 19
                      },
                      "end": {
                        "line": 201,
                        "column": 23
                      }
                    },
                    "name": "info"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 5315,
                  "end": 5801,
                  "loc": {
                    "start": {
                      "line": 201,
                      "column": 28
                    },
                    "end": {
                      "line": 219,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "IfStatement",
                      "start": 5325,
                      "end": 5400,
                      "loc": {
                        "start": {
                          "line": 202,
                          "column": 8
                        },
                        "end": {
                          "line": 204,
                          "column": 9
                        }
                      },
                      "test": {
                        "type": "Identifier",
                        "start": 5329,
                        "end": 5333,
                        "loc": {
                          "start": {
                            "line": 202,
                            "column": 12
                          },
                          "end": {
                            "line": 202,
                            "column": 16
                          }
                        },
                        "name": "info"
                      },
                      "consequent": {
                        "type": "BlockStatement",
                        "start": 5335,
                        "end": 5400,
                        "loc": {
                          "start": {
                            "line": 202,
                            "column": 18
                          },
                          "end": {
                            "line": 204,
                            "column": 9
                          }
                        },
                        "body": [
                          {
                            "type": "ReturnStatement",
                            "start": 5349,
                            "end": 5390,
                            "loc": {
                              "start": {
                                "line": 203,
                                "column": 12
                              },
                              "end": {
                                "line": 203,
                                "column": 53
                              }
                            },
                            "argument": {
                              "type": "CallExpression",
                              "start": 5356,
                              "end": 5389,
                              "loc": {
                                "start": {
                                  "line": 203,
                                  "column": 19
                                },
                                "end": {
                                  "line": 203,
                                  "column": 52
                                }
                              },
                              "callee": {
                                "type": "Identifier",
                                "start": 5356,
                                "end": 5366,
                                "loc": {
                                  "start": {
                                    "line": 203,
                                    "column": 19
                                  },
                                  "end": {
                                    "line": 203,
                                    "column": 29
                                  }
                                },
                                "name": "infoObject"
                              },
                              "arguments": [
                                {
                                  "type": "Identifier",
                                  "start": 5367,
                                  "end": 5376,
                                  "loc": {
                                    "start": {
                                      "line": 203,
                                      "column": 30
                                    },
                                    "end": {
                                      "line": 203,
                                      "column": 39
                                    }
                                  },
                                  "name": "validator"
                                },
                                {
                                  "type": "Literal",
                                  "start": 5378,
                                  "end": 5382,
                                  "loc": {
                                    "start": {
                                      "line": 203,
                                      "column": 41
                                    },
                                    "end": {
                                      "line": 203,
                                      "column": 45
                                    }
                                  },
                                  "value": null,
                                  "rawValue": null,
                                  "raw": "null"
                                },
                                {
                                  "type": "Literal",
                                  "start": 5384,
                                  "end": 5388,
                                  "loc": {
                                    "start": {
                                      "line": 203,
                                      "column": 47
                                    },
                                    "end": {
                                      "line": 203,
                                      "column": 51
                                    }
                                  },
                                  "value": true,
                                  "rawValue": true,
                                  "raw": "true"
                                }
                              ]
                            }
                          }
                        ]
                      },
                      "alternate": null
                    },
                    {
                      "type": "IfStatement",
                      "start": 5410,
                      "end": 5699,
                      "loc": {
                        "start": {
                          "line": 206,
                          "column": 8
                        },
                        "end": {
                          "line": 212,
                          "column": 9
                        }
                      },
                      "test": {
                        "type": "LogicalExpression",
                        "start": 5427,
                        "end": 5614,
                        "loc": {
                          "start": {
                            "line": 207,
                            "column": 12
                          },
                          "end": {
                            "line": 209,
                            "column": 73
                          }
                        },
                        "left": {
                          "type": "LogicalExpression",
                          "start": 5427,
                          "end": 5537,
                          "loc": {
                            "start": {
                              "line": 207,
                              "column": 12
                            },
                            "end": {
                              "line": 208,
                              "column": 81
                            }
                          },
                          "left": {
                            "type": "LogicalExpression",
                            "start": 5427,
                            "end": 5452,
                            "loc": {
                              "start": {
                                "line": 207,
                                "column": 12
                              },
                              "end": {
                                "line": 207,
                                "column": 37
                              }
                            },
                            "left": {
                              "type": "UnaryExpression",
                              "start": 5427,
                              "end": 5433,
                              "loc": {
                                "start": {
                                  "line": 207,
                                  "column": 12
                                },
                                "end": {
                                  "line": 207,
                                  "column": 18
                                }
                              },
                              "operator": "!",
                              "prefix": true,
                              "argument": {
                                "type": "Identifier",
                                "start": 5428,
                                "end": 5433,
                                "loc": {
                                  "start": {
                                    "line": 207,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 207,
                                    "column": 18
                                  }
                                },
                                "name": "input"
                              }
                            },
                            "operator": "&&",
                            "right": {
                              "type": "BinaryExpression",
                              "start": 5437,
                              "end": 5452,
                              "loc": {
                                "start": {
                                  "line": 207,
                                  "column": 22
                                },
                                "end": {
                                  "line": 207,
                                  "column": 37
                                }
                              },
                              "left": {
                                "type": "Identifier",
                                "start": 5437,
                                "end": 5442,
                                "loc": {
                                  "start": {
                                    "line": 207,
                                    "column": 22
                                  },
                                  "end": {
                                    "line": 207,
                                    "column": 27
                                  }
                                },
                                "name": "input"
                              },
                              "operator": "!==",
                              "right": {
                                "type": "Literal",
                                "start": 5447,
                                "end": 5452,
                                "loc": {
                                  "start": {
                                    "line": 207,
                                    "column": 32
                                  },
                                  "end": {
                                    "line": 207,
                                    "column": 37
                                  }
                                },
                                "value": false,
                                "rawValue": false,
                                "raw": "false"
                              }
                            }
                          },
                          "operator": "||",
                          "right": {
                            "type": "LogicalExpression",
                            "start": 5468,
                            "end": 5537,
                            "loc": {
                              "start": {
                                "line": 208,
                                "column": 12
                              },
                              "end": {
                                "line": 208,
                                "column": 81
                              }
                            },
                            "left": {
                              "type": "LogicalExpression",
                              "start": 5469,
                              "end": 5514,
                              "loc": {
                                "start": {
                                  "line": 208,
                                  "column": 13
                                },
                                "end": {
                                  "line": 208,
                                  "column": 58
                                }
                              },
                              "left": {
                                "type": "CallExpression",
                                "start": 5469,
                                "end": 5489,
                                "loc": {
                                  "start": {
                                    "line": 208,
                                    "column": 13
                                  },
                                  "end": {
                                    "line": 208,
                                    "column": 33
                                  }
                                },
                                "callee": {
                                  "type": "Identifier",
                                  "start": 5469,
                                  "end": 5482,
                                  "loc": {
                                    "start": {
                                      "line": 208,
                                      "column": 13
                                    },
                                    "end": {
                                      "line": 208,
                                      "column": 26
                                    }
                                  },
                                  "name": "lodashIsArray"
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "start": 5483,
                                    "end": 5488,
                                    "loc": {
                                      "start": {
                                        "line": 208,
                                        "column": 27
                                      },
                                      "end": {
                                        "line": 208,
                                        "column": 32
                                      }
                                    },
                                    "name": "input"
                                  }
                                ]
                              },
                              "operator": "||",
                              "right": {
                                "type": "CallExpression",
                                "start": 5493,
                                "end": 5514,
                                "loc": {
                                  "start": {
                                    "line": 208,
                                    "column": 37
                                  },
                                  "end": {
                                    "line": 208,
                                    "column": 58
                                  }
                                },
                                "callee": {
                                  "type": "Identifier",
                                  "start": 5493,
                                  "end": 5507,
                                  "loc": {
                                    "start": {
                                      "line": 208,
                                      "column": 37
                                    },
                                    "end": {
                                      "line": 208,
                                      "column": 51
                                    }
                                  },
                                  "name": "lodashIsString"
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "start": 5508,
                                    "end": 5513,
                                    "loc": {
                                      "start": {
                                        "line": 208,
                                        "column": 52
                                      },
                                      "end": {
                                        "line": 208,
                                        "column": 57
                                      }
                                    },
                                    "name": "input"
                                  }
                                ]
                              },
                              "parenthesizedExpression": true
                            },
                            "operator": "&&",
                            "right": {
                              "type": "BinaryExpression",
                              "start": 5519,
                              "end": 5537,
                              "loc": {
                                "start": {
                                  "line": 208,
                                  "column": 63
                                },
                                "end": {
                                  "line": 208,
                                  "column": 81
                                }
                              },
                              "left": {
                                "type": "MemberExpression",
                                "start": 5519,
                                "end": 5531,
                                "loc": {
                                  "start": {
                                    "line": 208,
                                    "column": 63
                                  },
                                  "end": {
                                    "line": 208,
                                    "column": 75
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 5519,
                                  "end": 5524,
                                  "loc": {
                                    "start": {
                                      "line": 208,
                                      "column": 63
                                    },
                                    "end": {
                                      "line": 208,
                                      "column": 68
                                    }
                                  },
                                  "name": "input"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 5525,
                                  "end": 5531,
                                  "loc": {
                                    "start": {
                                      "line": 208,
                                      "column": 69
                                    },
                                    "end": {
                                      "line": 208,
                                      "column": 75
                                    }
                                  },
                                  "name": "length"
                                },
                                "computed": false
                              },
                              "operator": "===",
                              "right": {
                                "type": "Literal",
                                "start": 5536,
                                "end": 5537,
                                "loc": {
                                  "start": {
                                    "line": 208,
                                    "column": 80
                                  },
                                  "end": {
                                    "line": 208,
                                    "column": 81
                                  }
                                },
                                "value": 0,
                                "rawValue": 0,
                                "raw": "0"
                              }
                            }
                          }
                        },
                        "operator": "||",
                        "right": {
                          "type": "LogicalExpression",
                          "start": 5553,
                          "end": 5614,
                          "loc": {
                            "start": {
                              "line": 209,
                              "column": 12
                            },
                            "end": {
                              "line": 209,
                              "column": 73
                            }
                          },
                          "left": {
                            "type": "CallExpression",
                            "start": 5553,
                            "end": 5579,
                            "loc": {
                              "start": {
                                "line": 209,
                                "column": 12
                              },
                              "end": {
                                "line": 209,
                                "column": 38
                              }
                            },
                            "callee": {
                              "type": "Identifier",
                              "start": 5553,
                              "end": 5572,
                              "loc": {
                                "start": {
                                  "line": 209,
                                  "column": 12
                                },
                                "end": {
                                  "line": 209,
                                  "column": 31
                                }
                              },
                              "name": "lodashIsPlainObject"
                            },
                            "arguments": [
                              {
                                "type": "Identifier",
                                "start": 5573,
                                "end": 5578,
                                "loc": {
                                  "start": {
                                    "line": 209,
                                    "column": 32
                                  },
                                  "end": {
                                    "line": 209,
                                    "column": 37
                                  }
                                },
                                "name": "input"
                              }
                            ]
                          },
                          "operator": "&&",
                          "right": {
                            "type": "BinaryExpression",
                            "start": 5583,
                            "end": 5614,
                            "loc": {
                              "start": {
                                "line": 209,
                                "column": 42
                              },
                              "end": {
                                "line": 209,
                                "column": 73
                              }
                            },
                            "left": {
                              "type": "MemberExpression",
                              "start": 5583,
                              "end": 5608,
                              "loc": {
                                "start": {
                                  "line": 209,
                                  "column": 42
                                },
                                "end": {
                                  "line": 209,
                                  "column": 67
                                }
                              },
                              "object": {
                                "type": "CallExpression",
                                "start": 5583,
                                "end": 5601,
                                "loc": {
                                  "start": {
                                    "line": 209,
                                    "column": 42
                                  },
                                  "end": {
                                    "line": 209,
                                    "column": 60
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 5583,
                                  "end": 5594,
                                  "loc": {
                                    "start": {
                                      "line": 209,
                                      "column": 42
                                    },
                                    "end": {
                                      "line": 209,
                                      "column": 53
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 5583,
                                    "end": 5589,
                                    "loc": {
                                      "start": {
                                        "line": 209,
                                        "column": 42
                                      },
                                      "end": {
                                        "line": 209,
                                        "column": 48
                                      }
                                    },
                                    "name": "Object"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 5590,
                                    "end": 5594,
                                    "loc": {
                                      "start": {
                                        "line": 209,
                                        "column": 49
                                      },
                                      "end": {
                                        "line": 209,
                                        "column": 53
                                      }
                                    },
                                    "name": "keys"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "start": 5595,
                                    "end": 5600,
                                    "loc": {
                                      "start": {
                                        "line": 209,
                                        "column": 54
                                      },
                                      "end": {
                                        "line": 209,
                                        "column": 59
                                      }
                                    },
                                    "name": "input"
                                  }
                                ]
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 5602,
                                "end": 5608,
                                "loc": {
                                  "start": {
                                    "line": 209,
                                    "column": 61
                                  },
                                  "end": {
                                    "line": 209,
                                    "column": 67
                                  }
                                },
                                "name": "length"
                              },
                              "computed": false
                            },
                            "operator": "===",
                            "right": {
                              "type": "Literal",
                              "start": 5613,
                              "end": 5614,
                              "loc": {
                                "start": {
                                  "line": 209,
                                  "column": 72
                                },
                                "end": {
                                  "line": 209,
                                  "column": 73
                                }
                              },
                              "value": 0,
                              "rawValue": 0,
                              "raw": "0"
                            }
                          }
                        }
                      },
                      "consequent": {
                        "type": "BlockStatement",
                        "start": 5625,
                        "end": 5699,
                        "loc": {
                          "start": {
                            "line": 210,
                            "column": 10
                          },
                          "end": {
                            "line": 212,
                            "column": 9
                          }
                        },
                        "body": [
                          {
                            "type": "ReturnStatement",
                            "start": 5639,
                            "end": 5689,
                            "loc": {
                              "start": {
                                "line": 211,
                                "column": 12
                              },
                              "end": {
                                "line": 211,
                                "column": 62
                              }
                            },
                            "argument": {
                              "type": "Literal",
                              "start": 5646,
                              "end": 5688,
                              "loc": {
                                "start": {
                                  "line": 211,
                                  "column": 19
                                },
                                "end": {
                                  "line": 211,
                                  "column": 61
                                }
                              },
                              "value": "A value was required but none was given!",
                              "rawValue": "A value was required but none was given!",
                              "raw": "'A value was required but none was given!'"
                            }
                          }
                        ]
                      },
                      "alternate": null
                    },
                    {
                      "type": "IfStatement",
                      "start": 5709,
                      "end": 5761,
                      "loc": {
                        "start": {
                          "line": 214,
                          "column": 8
                        },
                        "end": {
                          "line": 216,
                          "column": 9
                        }
                      },
                      "test": {
                        "type": "UnaryExpression",
                        "start": 5713,
                        "end": 5723,
                        "loc": {
                          "start": {
                            "line": 214,
                            "column": 12
                          },
                          "end": {
                            "line": 214,
                            "column": 22
                          }
                        },
                        "operator": "!",
                        "prefix": true,
                        "argument": {
                          "type": "Identifier",
                          "start": 5714,
                          "end": 5723,
                          "loc": {
                            "start": {
                              "line": 214,
                              "column": 13
                            },
                            "end": {
                              "line": 214,
                              "column": 22
                            }
                          },
                          "name": "validator"
                        }
                      },
                      "consequent": {
                        "type": "BlockStatement",
                        "start": 5725,
                        "end": 5761,
                        "loc": {
                          "start": {
                            "line": 214,
                            "column": 24
                          },
                          "end": {
                            "line": 216,
                            "column": 9
                          }
                        },
                        "body": [
                          {
                            "type": "ReturnStatement",
                            "start": 5739,
                            "end": 5751,
                            "loc": {
                              "start": {
                                "line": 215,
                                "column": 12
                              },
                              "end": {
                                "line": 215,
                                "column": 24
                              }
                            },
                            "argument": {
                              "type": "Literal",
                              "start": 5746,
                              "end": 5750,
                              "loc": {
                                "start": {
                                  "line": 215,
                                  "column": 19
                                },
                                "end": {
                                  "line": 215,
                                  "column": 23
                                }
                              },
                              "value": true,
                              "rawValue": true,
                              "raw": "true"
                            }
                          }
                        ]
                      },
                      "alternate": null
                    },
                    {
                      "type": "ReturnStatement",
                      "start": 5771,
                      "end": 5795,
                      "loc": {
                        "start": {
                          "line": 218,
                          "column": 8
                        },
                        "end": {
                          "line": 218,
                          "column": 32
                        }
                      },
                      "argument": {
                        "type": "CallExpression",
                        "start": 5778,
                        "end": 5794,
                        "loc": {
                          "start": {
                            "line": 218,
                            "column": 15
                          },
                          "end": {
                            "line": 218,
                            "column": 31
                          }
                        },
                        "callee": {
                          "type": "Identifier",
                          "start": 5778,
                          "end": 5787,
                          "loc": {
                            "start": {
                              "line": 218,
                              "column": 15
                            },
                            "end": {
                              "line": 218,
                              "column": 24
                            }
                          },
                          "name": "validator"
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 5788,
                            "end": 5793,
                            "loc": {
                              "start": {
                                "line": 218,
                                "column": 25
                              },
                              "end": {
                                "line": 218,
                                "column": 30
                              }
                            },
                            "name": "input"
                          }
                        ]
                      }
                    }
                  ]
                }
              }
            }
          ]
        },
        "leadingComments": [
          {
            "type": "Block",
            "value": "*\n * Marks that the value is required\n *\n * @param {function} validator - Validator to validate against\n * @return {function} - A function that takes a value and that returns true or false if valid or not.\n ",
            "start": 5037,
            "end": 5248,
            "loc": {
              "start": {
                "line": 194,
                "column": 0
              },
              "end": {
                "line": 199,
                "column": 3
              }
            },
            "range": [
              5037,
              5248
            ]
          }
        ],
        "trailingComments": []
      },
      "specifiers": [],
      "source": null,
      "leadingComments": [
        {
          "type": "Block",
          "value": "*\n * Marks that the value is required\n *\n * @param {function} validator - Validator to validate against\n * @return {function} - A function that takes a value and that returns true or false if valid or not.\n ",
          "start": 5037,
          "end": 5248,
          "loc": {
            "start": {
              "line": 194,
              "column": 0
            },
            "end": {
              "line": 199,
              "column": 3
            }
          },
          "range": [
            5037,
            5248
          ]
        }
      ]
    },
    {
      "type": "FunctionDeclaration",
      "start": 5806,
      "end": 6065,
      "loc": {
        "start": {
          "line": 222,
          "column": 0
        },
        "end": {
          "line": 229,
          "column": 1
        }
      },
      "id": {
        "type": "Identifier",
        "start": 5815,
        "end": 5825,
        "loc": {
          "start": {
            "line": 222,
            "column": 9
          },
          "end": {
            "line": 222,
            "column": 19
          }
        },
        "name": "infoObject"
      },
      "generator": false,
      "expression": false,
      "async": false,
      "params": [
        {
          "type": "Identifier",
          "start": 5826,
          "end": 5835,
          "loc": {
            "start": {
              "line": 222,
              "column": 20
            },
            "end": {
              "line": 222,
              "column": 29
            }
          },
          "name": "validator"
        },
        {
          "type": "Identifier",
          "start": 5837,
          "end": 5844,
          "loc": {
            "start": {
              "line": 222,
              "column": 31
            },
            "end": {
              "line": 222,
              "column": 38
            }
          },
          "name": "wrapper"
        },
        {
          "type": "AssignmentPattern",
          "start": 5846,
          "end": 5857,
          "loc": {
            "start": {
              "line": 222,
              "column": 40
            },
            "end": {
              "line": 222,
              "column": 51
            }
          },
          "operator": "=",
          "left": {
            "type": "Identifier",
            "start": 5846,
            "end": 5849,
            "loc": {
              "start": {
                "line": 222,
                "column": 40
              },
              "end": {
                "line": 222,
                "column": 43
              }
            },
            "name": "req"
          },
          "right": {
            "type": "Literal",
            "start": 5852,
            "end": 5857,
            "loc": {
              "start": {
                "line": 222,
                "column": 46
              },
              "end": {
                "line": 222,
                "column": 51
              }
            },
            "value": false,
            "rawValue": false,
            "raw": "false"
          }
        }
      ],
      "body": {
        "type": "BlockStatement",
        "start": 5859,
        "end": 6065,
        "loc": {
          "start": {
            "line": 222,
            "column": 53
          },
          "end": {
            "line": 229,
            "column": 1
          }
        },
        "body": [
          {
            "type": "VariableDeclaration",
            "start": 5865,
            "end": 5958,
            "loc": {
              "start": {
                "line": 223,
                "column": 4
              },
              "end": {
                "line": 223,
                "column": 97
              }
            },
            "declarations": [
              {
                "type": "VariableDeclarator",
                "start": 5871,
                "end": 5957,
                "loc": {
                  "start": {
                    "line": 223,
                    "column": 10
                  },
                  "end": {
                    "line": 223,
                    "column": 96
                  }
                },
                "id": {
                  "type": "Identifier",
                  "start": 5871,
                  "end": 5875,
                  "loc": {
                    "start": {
                      "line": 223,
                      "column": 10
                    },
                    "end": {
                      "line": 223,
                      "column": 14
                    }
                  },
                  "name": "info"
                },
                "init": {
                  "type": "ConditionalExpression",
                  "start": 5878,
                  "end": 5957,
                  "loc": {
                    "start": {
                      "line": 223,
                      "column": 17
                    },
                    "end": {
                      "line": 223,
                      "column": 96
                    }
                  },
                  "test": {
                    "type": "CallExpression",
                    "start": 5878,
                    "end": 5905,
                    "loc": {
                      "start": {
                        "line": 223,
                        "column": 17
                      },
                      "end": {
                        "line": 223,
                        "column": 44
                      }
                    },
                    "callee": {
                      "type": "Identifier",
                      "start": 5878,
                      "end": 5894,
                      "loc": {
                        "start": {
                          "line": 223,
                          "column": 17
                        },
                        "end": {
                          "line": 223,
                          "column": 33
                        }
                      },
                      "name": "lodashIsFunction"
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 5895,
                        "end": 5904,
                        "loc": {
                          "start": {
                            "line": 223,
                            "column": 34
                          },
                          "end": {
                            "line": 223,
                            "column": 43
                          }
                        },
                        "name": "validator"
                      }
                    ]
                  },
                  "consequent": {
                    "type": "MemberExpression",
                    "start": 5908,
                    "end": 5934,
                    "loc": {
                      "start": {
                        "line": 223,
                        "column": 47
                      },
                      "end": {
                        "line": 223,
                        "column": 73
                      }
                    },
                    "object": {
                      "type": "CallExpression",
                      "start": 5908,
                      "end": 5929,
                      "loc": {
                        "start": {
                          "line": 223,
                          "column": 47
                        },
                        "end": {
                          "line": 223,
                          "column": 68
                        }
                      },
                      "callee": {
                        "type": "Identifier",
                        "start": 5908,
                        "end": 5917,
                        "loc": {
                          "start": {
                            "line": 223,
                            "column": 47
                          },
                          "end": {
                            "line": 223,
                            "column": 56
                          }
                        },
                        "name": "validator"
                      },
                      "arguments": [
                        {
                          "type": "Literal",
                          "start": 5918,
                          "end": 5922,
                          "loc": {
                            "start": {
                              "line": 223,
                              "column": 57
                            },
                            "end": {
                              "line": 223,
                              "column": 61
                            }
                          },
                          "value": null,
                          "rawValue": null,
                          "raw": "null"
                        },
                        {
                          "type": "Literal",
                          "start": 5924,
                          "end": 5928,
                          "loc": {
                            "start": {
                              "line": 223,
                              "column": 63
                            },
                            "end": {
                              "line": 223,
                              "column": 67
                            }
                          },
                          "value": true,
                          "rawValue": true,
                          "raw": "true"
                        }
                      ]
                    },
                    "property": {
                      "type": "Identifier",
                      "start": 5930,
                      "end": 5934,
                      "loc": {
                        "start": {
                          "line": 223,
                          "column": 69
                        },
                        "end": {
                          "line": 223,
                          "column": 73
                        }
                      },
                      "name": "type"
                    },
                    "computed": false
                  },
                  "alternate": {
                    "type": "CallExpression",
                    "start": 5937,
                    "end": 5957,
                    "loc": {
                      "start": {
                        "line": 223,
                        "column": 76
                      },
                      "end": {
                        "line": 223,
                        "column": 96
                      }
                    },
                    "callee": {
                      "type": "MemberExpression",
                      "start": 5937,
                      "end": 5955,
                      "loc": {
                        "start": {
                          "line": 223,
                          "column": 76
                        },
                        "end": {
                          "line": 223,
                          "column": 94
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 5937,
                        "end": 5946,
                        "loc": {
                          "start": {
                            "line": 223,
                            "column": 76
                          },
                          "end": {
                            "line": 223,
                            "column": 85
                          }
                        },
                        "name": "validator"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 5947,
                        "end": 5955,
                        "loc": {
                          "start": {
                            "line": 223,
                            "column": 86
                          },
                          "end": {
                            "line": 223,
                            "column": 94
                          }
                        },
                        "name": "toString"
                      },
                      "computed": false
                    },
                    "arguments": []
                  }
                }
              }
            ],
            "kind": "const"
          },
          {
            "type": "VariableDeclaration",
            "start": 5963,
            "end": 6007,
            "loc": {
              "start": {
                "line": 224,
                "column": 4
              },
              "end": {
                "line": 224,
                "column": 48
              }
            },
            "declarations": [
              {
                "type": "VariableDeclarator",
                "start": 5969,
                "end": 6006,
                "loc": {
                  "start": {
                    "line": 224,
                    "column": 10
                  },
                  "end": {
                    "line": 224,
                    "column": 47
                  }
                },
                "id": {
                  "type": "Identifier",
                  "start": 5969,
                  "end": 5973,
                  "loc": {
                    "start": {
                      "line": 224,
                      "column": 10
                    },
                    "end": {
                      "line": 224,
                      "column": 14
                    }
                  },
                  "name": "type"
                },
                "init": {
                  "type": "ConditionalExpression",
                  "start": 5976,
                  "end": 6006,
                  "loc": {
                    "start": {
                      "line": 224,
                      "column": 17
                    },
                    "end": {
                      "line": 224,
                      "column": 47
                    }
                  },
                  "test": {
                    "type": "Identifier",
                    "start": 5976,
                    "end": 5983,
                    "loc": {
                      "start": {
                        "line": 224,
                        "column": 17
                      },
                      "end": {
                        "line": 224,
                        "column": 24
                      }
                    },
                    "name": "wrapper"
                  },
                  "consequent": {
                    "type": "CallExpression",
                    "start": 5986,
                    "end": 5999,
                    "loc": {
                      "start": {
                        "line": 224,
                        "column": 27
                      },
                      "end": {
                        "line": 224,
                        "column": 40
                      }
                    },
                    "callee": {
                      "type": "Identifier",
                      "start": 5986,
                      "end": 5993,
                      "loc": {
                        "start": {
                          "line": 224,
                          "column": 27
                        },
                        "end": {
                          "line": 224,
                          "column": 34
                        }
                      },
                      "name": "wrapper"
                    },
                    "arguments": [
                      {
                        "type": "Identifier",
                        "start": 5994,
                        "end": 5998,
                        "loc": {
                          "start": {
                            "line": 224,
                            "column": 35
                          },
                          "end": {
                            "line": 224,
                            "column": 39
                          }
                        },
                        "name": "info"
                      }
                    ]
                  },
                  "alternate": {
                    "type": "Identifier",
                    "start": 6002,
                    "end": 6006,
                    "loc": {
                      "start": {
                        "line": 224,
                        "column": 43
                      },
                      "end": {
                        "line": 224,
                        "column": 47
                      }
                    },
                    "name": "info"
                  }
                }
              }
            ],
            "kind": "const"
          },
          {
            "type": "ReturnStatement",
            "start": 6012,
            "end": 6063,
            "loc": {
              "start": {
                "line": 225,
                "column": 4
              },
              "end": {
                "line": 228,
                "column": 6
              }
            },
            "argument": {
              "type": "ObjectExpression",
              "start": 6019,
              "end": 6062,
              "loc": {
                "start": {
                  "line": 225,
                  "column": 11
                },
                "end": {
                  "line": 228,
                  "column": 5
                }
              },
              "properties": [
                {
                  "type": "Property",
                  "start": 6029,
                  "end": 6033,
                  "loc": {
                    "start": {
                      "line": 226,
                      "column": 8
                    },
                    "end": {
                      "line": 226,
                      "column": 12
                    }
                  },
                  "method": false,
                  "shorthand": true,
                  "computed": false,
                  "key": {
                    "type": "Identifier",
                    "start": 6029,
                    "end": 6033,
                    "loc": {
                      "start": {
                        "line": 226,
                        "column": 8
                      },
                      "end": {
                        "line": 226,
                        "column": 12
                      }
                    },
                    "name": "type"
                  },
                  "kind": "init",
                  "value": {
                    "type": "Identifier",
                    "start": 6029,
                    "end": 6033,
                    "loc": {
                      "start": {
                        "line": 226,
                        "column": 8
                      },
                      "end": {
                        "line": 226,
                        "column": 12
                      }
                    },
                    "name": "type"
                  }
                },
                {
                  "type": "Property",
                  "start": 6043,
                  "end": 6056,
                  "loc": {
                    "start": {
                      "line": 227,
                      "column": 8
                    },
                    "end": {
                      "line": 227,
                      "column": 21
                    }
                  },
                  "method": false,
                  "shorthand": false,
                  "computed": false,
                  "key": {
                    "type": "Identifier",
                    "start": 6043,
                    "end": 6051,
                    "loc": {
                      "start": {
                        "line": 227,
                        "column": 8
                      },
                      "end": {
                        "line": 227,
                        "column": 16
                      }
                    },
                    "name": "required"
                  },
                  "value": {
                    "type": "Identifier",
                    "start": 6053,
                    "end": 6056,
                    "loc": {
                      "start": {
                        "line": 227,
                        "column": 18
                      },
                      "end": {
                        "line": 227,
                        "column": 21
                      }
                    },
                    "name": "req"
                  },
                  "kind": "init"
                }
              ]
            }
          }
        ]
      }
    }
  ]
}