static fromString (versionStr) {
    if (!versionStr) {
      return new ServerVersion(3, 0, 0)
    }

    assertString(versionStr, 'Neo4j version string')

    if (
      versionStr.toLowerCase() === NEO4J_IN_DEV_VERSION_STRING.toLowerCase()
    ) {
      return VERSION_IN_DEV
    }

    const version = versionStr.match(SERVER_VERSION_REGEX)
    if (!version) {
      throw new Error(`Unparsable Neo4j version: ${versionStr}`)
    }

    const major = parseIntStrict(version[2])
    const minor = parseIntStrict(version[3])
    const patch = parseIntStrict(version[4] || 0)

    return new ServerVersion(major, minor, patch, versionStr)
  }
Parse given string to a {@link ServerVersion} object.
@param {string} versionStr the string to parse.
@return {ServerVersion} version for the given string.
@throws Error if given string can't be parsed.