{"version":3,"sources":["jsdelivr-header.js","/npm/plumes@1.6.8/index.js"],"names":[],"mappings":"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","file":"/npm/plumes@1.6.8/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.19.2.\n * Original file: /npm/plumes@1.6.8/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","'use strict';\n\nvar extend = require('extend'),\n    fs = require('fs-extra'),\n    path = require('path'),\n    glob = require('glob'),\n    through = require('through2'),\n    sourcemaps = require('gulp-sourcemaps'),\n    less = require('gulp-less'),\n    cleanCSS = require('gulp-clean-css'),\n    uglify = require('gulp-uglify'),\n    rename = require('gulp-rename'),\n    insert = require('gulp-insert');\n\nvar Plumes = function(gulp, config) {\n\n  config = extend(true, {\n    path: {\n      less: './features/**/css/*.less',\n      js: './features/**/js/*.js',\n      html: './features/**/html/*.html',\n      resources: './features/**/resources',\n      public: './public'\n    },\n    default: null,\n    watchs: [],\n    watcher: true,\n    lessPaths: null,\n    lessPlugins: null\n  }, config);\n\n  config.path.less = typeof config.path.less == 'string' ? [config.path.less] : config.path.less;\n  config.path.js = typeof config.path.js == 'string' ? [config.path.js] : config.path.js;\n  config.path.html = typeof config.path.html == 'string' ? [config.path.html] : config.path.html;\n  config.path.resources = typeof config.path.resources == 'string' ? [config.path.resources] : config.path.resources;\n\n  function _public() {\n    return typeof config.path.public == 'function' ? config.path.public() : gulp.dest(config.path.public);\n  }\n\n  function _publicByFeature(filePath) {\n    var featuresDir = 'features' + path.sep,\n        featuresPosition = filePath.dirname.indexOf(featuresDir);\n\n    if (featuresPosition < 0) {\n      filePath.dirname = filePath.dirname.split(path.sep)[0];\n\n      return;\n    }\n\n    featuresPosition += featuresDir.length;\n\n    featuresPosition = filePath.dirname.substr(featuresPosition, filePath.dirname.length - featuresPosition);\n    filePath.dirname = featuresPosition.split(path.sep)[0];\n  }\n\n  function _renameResoucesByFeature(file) {\n    var featuresDir = 'features' + path.sep,\n        featuresPosition = file.path.indexOf(featuresDir),\n        resourcesFolder = path.sep + 'resources' + path.sep;\n\n    if (featuresPosition < 0) {\n      return;\n    }\n\n    featuresPosition += featuresDir.length;\n\n    file.path = file.path.substr(featuresPosition, file.path.length - featuresPosition);\n\n    var feature = file.path.split(path.sep)[0];\n    featuresPosition = file.path.indexOf(resourcesFolder) + resourcesFolder.length;\n\n    file.path = feature + '/' + file.path\n      .substr(featuresPosition, file.path.length - featuresPosition)\n      .replace(path.sep, '/');\n  }\n\n  config.default = config.default || [];\n\n  var defaultTask = ['less', 'minify', 'html', 'resources'].concat(config.default);\n\n  gulp.task('default', config.watcher ? defaultTask.concat('watch') : defaultTask, function() {\n    if (!config.watcher) {\n      process.nextTick(process.exit);\n    }\n  });\n\n  gulp.task('less', function(done) {\n    if (!config.path.less || !config.path.less.length) {\n      return done();\n    }\n\n    gulp\n      .src(config.path.less)\n      .pipe(less({\n        paths: config.lessPaths,\n        plugins: (config.lessPlugins || []).concat([require('less-plugin-glob')])\n      }).on('error', function(err) {\n        console.log('Plumes error: less', err);\n\n        this.emit('end');\n      }))\n      .pipe(rename(_publicByFeature))\n      .pipe(_public())\n      .pipe(cleanCSS({\n        keepSpecialComments: 0,\n        processImport: false\n      }))\n      .pipe(rename({\n        extname: '.min.css'\n      }))\n      .pipe(_public())\n      .on('end', done);\n  });\n\n  gulp.task('minify', function(done) {\n    if (!config.path.js || !config.path.js.length) {\n      return done();\n    }\n\n    gulp\n      .src(config.path.js)\n      .pipe(sourcemaps.init())\n      .pipe(rename(_publicByFeature))\n      .pipe(_public())\n      .pipe(uglify().on('error', function(err) {\n        console.log('Plumes error: uglify', err);\n\n        this.emit('end');\n      }))\n      .pipe(rename({\n        extname: '.min.js'\n      }))\n      .pipe(sourcemaps.write('./'))\n      .pipe(_public())\n      .on('end', done);\n  });\n\n  gulp.task('html', function(done) {\n    if (!config.path.html || !config.path.html.length) {\n      return done();\n    }\n\n    var injectFiles = [],\n        injects = {},\n        files = [];\n\n    config.path.html.forEach(function(htmlPattern) {\n      injectFiles = injectFiles.concat(glob.sync(htmlPattern.replace('*.html', 'inject-*.html')));\n    });\n\n    injectFiles.forEach(function(injectFile) {\n      var injectName = injectFile.match(/inject-(.*?)\\.html$/);\n\n      if (injectName && injectName.length > 1) {\n        injectName = injectName[1];\n\n        injects[injectName] = injects[injectName] || [];\n        injects[injectName].push(fs.readFileSync(injectFile, 'utf-8'));\n      }\n    });\n\n    gulp\n      .src(config.path.html)\n      .pipe(through.obj(function(file, encoding, throughDone) {\n        if (file.path.split(path.sep).pop().indexOf('inject-') < 0) {\n          files.push(file);\n        }\n\n        throughDone();\n      }, function(throughDone) {\n        var transform = this;\n\n        files.forEach(function(file) {\n          transform.push(file);\n        });\n\n        throughDone();\n\n        transform.emit('end');\n      }))\n      .pipe(rename(_publicByFeature))\n      .pipe(insert.transform(function(contents) {\n        contents = contents.replace(/({{#inject (.*?[^\\/])}}([\\S\\s]*?){{\\/inject}})/ig, function(match, full, name, content) {\n          name = (name || '').trim();\n\n          return injects[name] ? injects[name].join('\\n') : content;\n        });\n\n        contents = contents.replace(/({{#inject (.*?)\\/}})/ig, function(match, full, name) {\n          name = (name || '').trim();\n\n          return injects[name] ? injects[name].join('\\n') : '';\n        });\n\n        return contents;\n      }))\n      .pipe(_public())\n      .on('end', done);\n  });\n\n  gulp.task('resources', function(done) {\n    if (!config.path.resources || !config.path.resources.length) {\n      return done();\n    }\n\n    var resourcesSrc = [],\n        injectsSrc = [],\n        files = [];\n\n    config.path.resources.forEach(function(p) {\n      resourcesSrc.push(p + '/**/*');\n      injectsSrc.push(p + '/inject-*');\n    });\n\n    for (var i = 0; i < config.path.resources.length; i++) {\n      var p = config.path.resources[i];\n\n      config.path.resources[i] += p.substr(p.length - 2, 2) != '/*' ? '/*' : '';\n    }\n\n    gulp\n      .src(resourcesSrc, {\n        base: './'\n      })\n      .pipe(through.obj(function(file, encoding, throughDone) {\n        if (file.path.split(path.sep).pop().indexOf('inject-') < 0) {\n          files.push(file);\n        }\n\n        throughDone();\n      }, function(throughDone) {\n        var transform = this;\n\n        files.forEach(function(file) {\n          _renameResoucesByFeature(file);\n\n          transform.push(file);\n        });\n\n        throughDone();\n\n        transform.emit('end');\n      }))\n      .pipe(_public())\n      .on('end', function() {\n\n        files = [];\n\n        gulp\n          .src(injectsSrc, {\n            base: './'\n          })\n          .pipe(through.obj(function(file, encoding, throughDone) {\n            files.push(file);\n\n            throughDone();\n          }, function(throughDone) {\n            var transform = this;\n\n            files.forEach(function(file) {\n              var injectPath = file.path.match(/inject-(?=[^inject-])(.*?\\..*?)$/);\n\n              if (!injectPath || injectPath.length < 2) {\n                return;\n              }\n\n              injectPath = injectPath[1].split('_');\n\n              if (injectPath.length < 2) {\n                return;\n              }\n\n              file.path = injectPath[0] + '/' + injectPath[1];\n\n              transform.push(file);\n            });\n\n            throughDone();\n\n            transform.emit('end');\n          }))\n          .pipe(_public())\n          .on('end', done);\n      });\n  });\n\n  if (config.watcher) {\n    gulp.task('watch', defaultTask, function() {\n      gulp.watch(config.path.less, ['less']);\n      gulp.watch(config.path.js, ['minify']);\n      gulp.watch(config.path.html, ['html']);\n      gulp.watch(config.path.resources, ['resources']);\n\n      if (config.watchs && config.watchs.length) {\n        config.watchs.forEach(function(watchFunc) {\n          watchFunc();\n        });\n      }\n    });\n  }\n\n};\n\nmodule.exports = Plumes;\n"]}