This file is indexed.

/usr/lib/nodejs/eslint-plugin-html/src/settings.js is in node-eslint-plugin-html 3.2.1-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
"use strict"

const oneLine = require("./utils").oneLine

const defaultHTMLExtensions = [
  ".erb",
  ".handlebars",
  ".hbs",
  ".htm",
  ".html",
  ".mustache",
  ".nunjucks",
  ".php",
  ".tag",
  ".twig",
  ".vue",
  ".we",
]

const defaultXMLExtensions = [".xhtml", ".xml"]

function filterOut(array, excludeArray) {
  if (!excludeArray) return array
  return array.filter((item) => excludeArray.indexOf(item) < 0)
}

function compileRegExp(re) {
  const tokens = re.split("/")
  if (tokens.shift()) {
    // Ignore first token
    throw new Error(`Invalid regexp: ${re}`)
  }
  const flags = tokens.pop()
  return new RegExp(tokens.join("/"), flags)
}

function getSetting(settings, name) {
  if (typeof settings.html === "object" && name in settings.html) {
    return settings.html[name]
  }
  return settings[`html/${name}`]
}

function getSettings(settings) {
  const htmlExtensions =
    getSetting(settings, "html-extensions") ||
    filterOut(defaultHTMLExtensions, getSetting(settings, "xml-extensions"))

  const xmlExtensions =
    getSetting(settings, "xml-extensions") ||
    filterOut(defaultXMLExtensions, getSetting(settings, "html-extensions"))

  let reportBadIndent
  switch (getSetting(settings, "report-bad-indent")) {
  case undefined:
  case false:
  case 0:
  case "off":
    reportBadIndent = 0
    break
  case true:
  case 1:
  case "warn":
    reportBadIndent = 1
    break
  case 2:
  case "error":
    reportBadIndent = 2
    break
  default:
    throw new Error(
      oneLine`
        Invalid value for html/report-bad-indent,
        expected one of 0, 1, 2, "off", "warn" or "error"
      `
    )
  }

  const parsedIndent = /^(\+)?(tab|\d+)$/.exec(getSetting(settings, "indent"))
  const indent = parsedIndent && {
    relative: parsedIndent[1] === "+",
    spaces: parsedIndent[2] === "tab" ? "\t" : " ".repeat(parsedIndent[2]),
  }

  const rawJavaScriptMIMETypes = getSetting(settings, "javascript-mime-types")
  const javaScriptMIMETypes = rawJavaScriptMIMETypes
    ? (Array.isArray(rawJavaScriptMIMETypes)
      ? rawJavaScriptMIMETypes
      : [rawJavaScriptMIMETypes]).map(
      (s) => (s.startsWith("/") ? compileRegExp(s) : s)
    )
    : [/^(application|text)\/(x-)?(javascript|babel|ecmascript-6)$/i]

  function isJavaScriptMIMEType(type) {
    return javaScriptMIMETypes.some(
      (o) => (typeof o === "string" ? type === o : o.test(type))
    )
  }

  return {
    htmlExtensions,
    xmlExtensions,
    indent,
    reportBadIndent,
    isJavaScriptMIMEType,
  }
}

module.exports = {
  getSettings,
}