{"version":3,"sources":["jsdelivr-header.js","/npm/gulp-jsbeautifier@3.0.1/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,MAAM,SAAW,QAAQ,eACnB,OAAS,QAAQ,eACjB,YAAc,QAAQ,eACtB,IAAM,QAAQ,aACd,UAAY,QAAQ,oBACpB,KAAO,QAAQ,QACf,YAAc,QAAQ,gBACtB,QAAU,QAAQ,YAElB,YAAc,oBAOpB,SAAS,aAAa,GACpB,MAeM,EAAW,YAAY,cAC7B,IAAI,EAQA,EALF,EADE,GAAiB,EAAc,OAChB,EAAS,SAAS,KAAK,QAAQ,EAAc,SAE7C,EAAS,aAIxB,IACF,EAAc,EAAe,QAI/B,MAAM,EAAe,UAAU,CAAC,EA9BT,CACrB,OAAQ,KACR,OAAO,EACP,IAAK,CACH,WAAY,CAAC,OAAQ,QAAS,QAAS,UAEzC,KAAM,CACJ,WAAY,CAAC,UAEf,GAAI,CACF,WAAY,CAAC,MAAO,WAoB2B,EAAa,GAAe,CAAC,EAAU,KACxF,GAAI,MAAM,QAAQ,GAChB,OAAO,EAAS,OAAO,EAGT,IAgBlB,OAZI,EAAa,QACX,GACF,IAAI,kBAAkB,KAAK,UAAU,EAAa,KAAM,MAG1D,IAAI,mBAAmB,KAAK,UAAU,EAAc,KAAM,cAIrD,EAAa,cACb,EAAa,MAEb,CACT,CAQA,SAAS,OAAO,EAAe,GAC7B,MAAM,EAAU,aAAa,GAE7B,OAAO,QAAQ,KAAI,CAAC,EAAM,EAAU,KAClC,IAAI,EACA,EACA,EAAO,KAEP,EAAK,SACP,EAAS,KAAM,GAIb,EAAK,WACP,EAAS,IAAI,YAAY,YAAa,6BAKxC,CAAC,KAAM,MAAO,QAAQ,MAAM,KAEtB,EAAQ,GAAO,WAAW,MAAK,GAAU,KAAK,SAAS,EAAK,MAAM,SAAS,OAC7E,EAAO,GACA,KAOX,EAAK,WAAa,CAAC,EACnB,EAAK,WAAW,KAAO,EACvB,EAAK,WAAW,YAAa,EAC7B,EAAK,WAAW,aAAc,EAE1B,IACF,EAAa,EAAK,SAAS,SAAS,QACpC,EAAa,SAAS,GAAM,EAAY,GAEpC,EAAW,aAAe,EAAW,aACnC,EACF,EAAK,WAAW,aAAc,GAE9B,EAAK,SAAW,OAAO,KAAK,GAC5B,EAAK,WAAW,YAAa,KAKnC,EAAS,KAAM,GAAK,GAExB,CAOA,MAAM,OAAS,GAAW,OAAO,GAAS,GAO1C,OAAO,SAAW,GAAW,OAAO,GAAS,GAO7C,OAAO,SAAY,IACjB,IAAI,EAAY,EACZ,EAAa,EAMjB,MAJuB,iBAAZ,GAAwB,OAAO,UAAU,eAAe,KAAK,EAAS,gBAC5E,aAAc,GAGZ,QAAQ,KAAI,CAAC,EAAM,EAAU,KAC9B,EAAK,aACH,GAAa,GAA8B,OAAzB,EAAK,WAAW,KACpC,IAAI,oBAAoB,OAAO,KAAK,EAAK,aAChC,GAAa,GAAK,EAAK,WAAW,WAC3C,IAAI,cAAc,OAAO,KAAK,EAAK,cAAc,EAAK,WAAW,SACxD,GAAa,GAAK,EAAK,WAAW,aAC3C,GAAc,EACd,IAAI,gBAAgB,OAAO,KAAK,EAAK,cAAc,EAAK,WAAW,UAC1D,GAAa,GACtB,IAAI,sBAAsB,OAAO,KAAK,EAAK,cAAc,EAAK,WAAW,UAI7E,EAAS,KAAM,EAAK,IACnB,SAAe,GACZ,EAAa,GACf,KAAK,KAAK,QAAS,IAAI,YAAY,YAAa,4CAElD,GACF,GAAE,EAGJ,OAAO,OAAS,CACd,WAAY,EACZ,IAAK,GAGP,OAAO,QAAU","file":"/npm/gulp-jsbeautifier@3.0.1/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/gulp-jsbeautifier@3.0.1/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","const beautify = require('js-beautify');\nconst colors = require('ansi-colors');\nconst cosmiconfig = require('cosmiconfig');\nconst log = require('fancy-log');\nconst mergeWith = require('lodash.mergewith');\nconst path = require('path');\nconst PluginError = require('plugin-error');\nconst through = require('through2');\n\nconst PLUGIN_NAME = 'gulp-jsbeautifier';\n\n/**\n * Merge options from different sources\n * @param  {Object} pluginOptions The gulp-jsbeautifier options\n * @return {Object} The options\n */\nfunction mergeOptions(pluginOptions) {\n  const defaultOptions = {\n    config: null,\n    debug: false,\n    css: {\n      file_types: ['.css', '.less', '.sass', '.scss'],\n    },\n    html: {\n      file_types: ['.html'],\n    },\n    js: {\n      file_types: ['.js', '.json'],\n    },\n  };\n\n  // Load 'file options'\n  const explorer = cosmiconfig('jsbeautify');\n  let explorerResult;\n\n  if (pluginOptions && pluginOptions.config) {\n    explorerResult = explorer.loadSync(path.resolve(pluginOptions.config));\n  } else {\n    explorerResult = explorer.searchSync();\n  }\n\n  let fileOptions;\n  if (explorerResult) {\n    fileOptions = explorerResult.config;\n  }\n\n  // Merge options\n  const finalOptions = mergeWith({}, defaultOptions, fileOptions, pluginOptions, (objValue, srcValue) => {\n    if (Array.isArray(objValue)) {\n      return objValue.concat(srcValue);\n    }\n\n    return undefined;\n  });\n\n  // Show debug messages\n  if (finalOptions.debug) {\n    if (fileOptions) {\n      log(`File options:\\n${JSON.stringify(fileOptions, null, 2)}`);\n    }\n\n    log(`Final options:\\n${JSON.stringify(finalOptions, null, 2)}`);\n  }\n\n  // Delete properties not used\n  delete finalOptions.config;\n  delete finalOptions.debug;\n\n  return finalOptions;\n}\n\n/**\n * Beautify files or perform validation\n * @param  {Object} pluginOptions The gulp-jsbeautifier parameter options\n * @param  {boolean} doValidation Specifies whether perform validation only\n * @return {Object} The object stream\n */\nfunction helper(pluginOptions, doValidation) {\n  const options = mergeOptions(pluginOptions);\n\n  return through.obj((file, encoding, callback) => {\n    let oldContent;\n    let newContent;\n    let type = null;\n\n    if (file.isNull()) {\n      callback(null, file);\n      return;\n    }\n\n    if (file.isStream()) {\n      callback(new PluginError(PLUGIN_NAME, 'Streaming not supported'));\n      return;\n    }\n\n    // Check if current file should be treated as JavaScript, HTML, CSS or if it should be ignored\n    ['js', 'css', 'html'].some((value) => {\n      // Check if at least one element in 'file_types' is suffix of file basename\n      if (options[value].file_types.some(suffix => path.basename(file.path).endsWith(suffix))) {\n        type = value;\n        return true;\n      }\n\n      return false;\n    });\n\n    // Initialize properties for reporter\n    file.jsbeautify = {};\n    file.jsbeautify.type = type;\n    file.jsbeautify.beautified = false;\n    file.jsbeautify.canBeautify = false;\n\n    if (type) {\n      oldContent = file.contents.toString('utf8');\n      newContent = beautify[type](oldContent, options);\n\n      if (oldContent.toString() !== newContent.toString()) {\n        if (doValidation) {\n          file.jsbeautify.canBeautify = true;\n        } else {\n          file.contents = Buffer.from(newContent);\n          file.jsbeautify.beautified = true;\n        }\n      }\n    }\n\n    callback(null, file);\n  });\n}\n\n/**\n * Beautify files\n * @param  {Object} options The gulp-jsbeautifier parameter options\n * @return {Object} The object stream with beautified files\n */\nconst plugin = options => helper(options, false);\n\n/**\n * Perform the validation of files without changing their content\n * @param  {Object} options The gulp-jsbeautifier parameter options\n * @return {Object} The object stream\n */\nplugin.validate = options => helper(options, true);\n\n/**\n * Show results of beautification or validation\n * @param  {Object} options The gulp-jsbeautifier reporter options\n * @return {Object} The object stream\n */\nplugin.reporter = (options) => {\n  let verbosity = 0;\n  let errorCount = 0;\n\n  if (typeof options === 'object' && Object.prototype.hasOwnProperty.call(options, 'verbosity')) {\n    ({ verbosity } = options);\n  }\n\n  return through.obj((file, encoding, callback) => {\n    if (file.jsbeautify) {\n      if (verbosity >= 1 && file.jsbeautify.type === null) {\n        log(`Can not beautify ${colors.cyan(file.relative)}`);\n      } else if (verbosity >= 0 && file.jsbeautify.beautified) {\n        log(`Beautified ${colors.cyan(file.relative)} [${file.jsbeautify.type}]`);\n      } else if (verbosity >= 0 && file.jsbeautify.canBeautify) {\n        errorCount += 1;\n        log(`Can beautify ${colors.cyan(file.relative)} [${file.jsbeautify.type}]`);\n      } else if (verbosity >= 1) {\n        log(`Already beautified ${colors.cyan(file.relative)} [${file.jsbeautify.type}]`);\n      }\n    }\n\n    callback(null, file);\n  }, function flush(callback) {\n    if (errorCount > 0) {\n      this.emit('error', new PluginError(PLUGIN_NAME, 'Validation not passed. Please beautify.'));\n    }\n    callback();\n  });\n};\n\nplugin.report = {\n  BEAUTIFIED: 0,\n  ALL: 1,\n};\n\nmodule.exports = plugin;\n"]}