{"version":3,"sources":["jsdelivr-header.js","/npm/last-call-webpack-plugin@3.0.0/src/index.js"],"names":[],"mappings":"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","file":"/npm/last-call-webpack-plugin@3.0.0/src/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.37.0.\n * Original file: /npm/last-call-webpack-plugin@3.0.0/src/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 assign = require('lodash/assign');\nconst each = require('lodash/each');\nconst find = require('lodash/find');\nconst isArray = require('lodash/isArray');\nconst isFunction = require('lodash/isFunction');\nconst isRegExp = require('lodash/isRegExp');\nconst keys = require('lodash/keys');\nconst values = require('lodash/values');\nconst webpackSources = require('webpack-sources');\n\nconst PHASES = {\n  OPTIMIZE_CHUNK_ASSETS: 'compilation.optimize-chunk-assets',\n  OPTIMIZE_ASSETS: 'compilation.optimize-assets',\n  EMIT: 'emit'\n};\nconst PHASE_LIST = values(PHASES);\n\nfunction ensureAssetProcessor(processor, index) {\n  if (!processor) {\n    throw new Error('LastCallWebpackPlugin Error: invalid options.assetProcessors[' + String(index) + '] (must be an object).');\n  }\n  if (!isRegExp(processor.regExp)) {\n    throw new Error('LastCallWebpackPlugin Error: invalid options.assetProcessors[' + String(index) + '].regExp (must be an regular expression).');\n  }\n  if (!isFunction(processor.processor)) {\n    throw new Error('LastCallWebpackPlugin Error: invalid options.assetProcessors[' + String(index) + '].processor (must be a function).');\n  }\n  if (processor.phase === undefined) {\n    processor.phase = PHASES.OPTIMIZE_ASSETS;\n  }\n  if (!find(PHASE_LIST, function(p) { return p === processor.phase; })) {\n    throw new Error('LastCallWebpackPlugin Error: invalid options.assetProcessors[' + String(index) + '].phase (must be on of: ' + PHASES.join(', ') + ').');\n  }\n}\n\nclass LastCallWebpackPlugin {\n  constructor(options) {\n    this.pluginDescriptor = this.buildPluginDescriptor();\n\n    this.options = assign(\n      {\n        assetProcessors: [],\n        canPrint: true\n      },\n      options || {}\n    );\n\n    this.phaseAssetProcessors = {};\n    each(PHASE_LIST, (phase)  => {\n      this.phaseAssetProcessors[phase] = [];\n    });\n\n    if (!isArray(this.options.assetProcessors)) {\n      throw new Error('LastCallWebpackPlugin Error: invalid options.assetProcessors (must be an Array).');\n    }\n    each(this.options.assetProcessors, (processor, index) => {\n      ensureAssetProcessor(processor, index);\n      this.phaseAssetProcessors[processor.phase].push(processor);\n    });\n\n    this.resetInternalState();\n  }\n\n  buildPluginDescriptor() {\n    return { name: 'LastCallWebpackPlugin' };\n  }\n\n  resetInternalState() {\n    this.deleteAssetsMap = {};\n  }\n\n  setAsset(assetName, assetValue, immediate, compilation) {\n    if (assetName) {\n      if (assetValue === null) {\n        this.deleteAssetsMap[assetName] = true;\n        if (immediate) {\n          delete compilation.assets[assetName];\n        }\n      } else {\n        if (assetValue !== undefined) {\n          compilation.assets[assetName] = this.createAsset(assetValue, compilation.assets[assetName]);\n        }\n      }\n    }\n  }\n\n  deleteAssets(compilation) {\n    if (this.deleteAssetsMap && compilation) {\n      each(keys(this.deleteAssetsMap), (key) => {\n        delete compilation.assets[key];\n      });\n    }\n  }\n\n  print() {\n    if (this.options.canPrint) {\n      console.log.apply(console, arguments);\n    }\n  }\n\n  createAsset(content, originalAsset) {\n    return new webpackSources.RawSource(content);\n  }\n\n  getAssetsAndProcessors(assets, phase) {\n    const assetProcessors = this.phaseAssetProcessors[phase];\n    const assetNames = keys(assets);\n    const assetsAndProcessors = [];\n\n    each(assetNames, (assetName) => {\n      each(assetProcessors, (assetProcessor) => {\n        const regExpResult = assetProcessor.regExp.exec(assetName);\n        assetProcessor.regExp.lastIndex = 0;\n        if (regExpResult) {\n          const assetAndProcessor = {\n            assetName: assetName,\n            regExp: assetProcessor.regExp,\n            processor: assetProcessor.processor,\n            regExpResult: regExpResult,\n          };\n          assetsAndProcessors.push(assetAndProcessor);\n        }\n      });\n    });\n\n    return assetsAndProcessors;\n  }\n\n  process(compilation, phase) {\n    const assetsAndProcessors = this.getAssetsAndProcessors(compilation.assets, phase);\n    if (assetsAndProcessors.length <= 0) {\n      return Promise.resolve(undefined);\n    }\n\n    const promises = [];\n\n    const assetsManipulationObject = {\n      setAsset: (assetName, assetValue, immediate) => {\n        this.setAsset(assetName, assetValue, immediate, compilation);\n      },\n      getAsset: (assetName) => {\n        var asset = assetName && compilation.assets[assetName] && compilation.assets[assetName].source();\n        return asset || undefined;\n      }\n    };\n\n    each(assetsAndProcessors, (assetAndProcessor) => {\n      const asset = compilation.assets[assetAndProcessor.assetName];\n      const promise = assetAndProcessor\n        .processor(assetAndProcessor.assetName, asset, assetsManipulationObject)\n        .then((result) => {\n          if (result !== undefined) {\n            this.setAsset(assetAndProcessor.assetName, result, false, compilation);\n          }\n        });\n      promises.push(promise);\n    });\n\n    return Promise.all(promises);\n  }\n\n  apply(compiler) {\n    const hasOptimizeChunkAssetsProcessors =\n      this.phaseAssetProcessors[PHASES.OPTIMIZE_CHUNK_ASSETS].length > 0;\n    const hasOptimizeAssetsProcessors =\n      this.phaseAssetProcessors[PHASES.OPTIMIZE_ASSETS].length > 0;\n    const hasEmitProcessors =\n      this.phaseAssetProcessors[PHASES.EMIT].length > 0;\n\n    compiler.hooks.compilation.tap(\n      this.pluginDescriptor,\n      (compilation, params) => {\n        this.resetInternalState();\n\n        if (hasOptimizeChunkAssetsProcessors) {\n          compilation.hooks.optimizeChunkAssets.tapPromise(\n            this.pluginDescriptor,\n            chunks => this.process(compilation, PHASES.OPTIMIZE_CHUNK_ASSETS, { chunks: chunks })\n          );\n        }\n\n        if (hasOptimizeAssetsProcessors) {\n          compilation.hooks.optimizeAssets.tapPromise(\n            this.pluginDescriptor,\n            assets => this.process(compilation, PHASES.OPTIMIZE_ASSETS, { assets: assets })\n          );\n        }\n      }\n    );\n    compiler.hooks.emit.tapPromise(\n      this.pluginDescriptor,\n      compilation =>\n        (\n          hasEmitProcessors ?\n            this.process(compilation, PHASES.EMIT) :\n            Promise.resolve(undefined)\n        )\n        .then((result) => {\n          this.deleteAssets(compilation);\n          return result;\n        })\n    );\n  }\n}\nLastCallWebpackPlugin.PHASES = PHASES;\n\nmodule.exports = LastCallWebpackPlugin;\n"]}