/**
 * Minified by jsDelivr using Terser v5.37.0.
 * Original file: /npm/webpack-subresource-integrity@5.2.0-rc.1/dist/cjs/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
"use strict";var __awaiter=this&&this.__awaiter||function(e,t,s,i){return new(s||(s=Promise))((function(a,n){function o(e){try{u(i.next(e))}catch(e){n(e)}}function r(e){try{u(i.throw(e))}catch(e){n(e)}}function u(e){var t;e.done?a(e.value):(t=e.value,t instanceof s?t:new s((function(e){e(t)}))).then(o,r)}u((i=i.apply(e,t||[])).next())}))};Object.defineProperty(exports,"__esModule",{value:!0}),exports.SubresourceIntegrityPlugin=void 0;const crypto_1=require("crypto"),plugin_1=require("./plugin"),reporter_1=require("./reporter"),util_1=require("./util"),hooks_1=require("./hooks"),manifest_1=require("./manifest"),globals_1=require("./globals");class SubresourceIntegrityPlugin{constructor(e={}){if(this.setup=(e,t)=>{const s=new reporter_1.Reporter(e);if(!this.validateOptions(e,s)||!this.isEnabled(e))return;const i=new plugin_1.Plugin(e,this.options,s);if("string"==typeof e.outputOptions.chunkLoading&&["require","async-node"].includes(e.outputOptions.chunkLoading))return void s.warnNonWeb();e.hooks.beforeRuntimeRequirements.tap(globals_1.thisPluginName,(()=>{i.beforeRuntimeRequirements()})),e.hooks.processAssets.tap({name:globals_1.thisPluginName,stage:e.compiler.webpack.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_INLINE},(e=>i.processAssets(e))),e.hooks.afterProcessAssets.tap(globals_1.thisPluginName,(t=>{for(const i of e.chunks.values())for(const e of i.files){const i=t[e];i&&i.source().includes(util_1.placeholderPrefix)&&s.errorUnresolvedIntegrity(e)}})),e.compiler.webpack.optimize.RealContentHashPlugin.getCompilationHooks(e).updateHash.tap(globals_1.thisPluginName,((e,t)=>i.updateHash(e,t))),t&&(t.beforeAssetTagGeneration.tapPromise(globals_1.thisPluginName,(e=>__awaiter(this,void 0,void 0,(function*(){return i.handleHwpPluginArgs(e),e})))),t.alterAssetTagGroups.tapPromise({name:globals_1.thisPluginName,stage:1e4},(e=>__awaiter(this,void 0,void 0,(function*(){return i.handleHwpBodyTags(e),e})))));const{mainTemplate:a}=e;a.hooks.jsonpScript.tap(globals_1.thisPluginName,(e=>i.addAttribute("script",e))),a.hooks.linkPreload.tap(globals_1.thisPluginName,(e=>i.addAttribute("link",e))),a.hooks.localVars.tap(globals_1.thisPluginName,((t,s)=>{const a="lazy"===this.options.hashLoading?i.getChildChunksToAddToChunkManifest(s):(0,util_1.findChunks)(s),n=s.getChunkMaps(!1).hash;return Object.keys(n).length>0?e.compiler.webpack.Template.asString([t,`${util_1.sriHashVariableReference} = `+JSON.stringify((0,util_1.generateSriHashPlaceholders)(Array.from(a).filter((e=>null!==e.id&&n[e.id.toString()])),this.options.hashFuncNames))+";"]):t})),"lazy"===this.options.hashLoading&&e.hooks.additionalChunkRuntimeRequirements.tap(globals_1.thisPluginName,(t=>{var s;const a=i.getChildChunksToAddToChunkManifest(t);a.size>0&&!t.hasRuntime()&&e.addRuntimeModule(t,new manifest_1.AddLazySriRuntimeModule((0,util_1.generateSriHashPlaceholders)(a,this.options.hashFuncNames),null!==(s=t.name)&&void 0!==s?s:t.id))}))},this.validateOptions=(e,t)=>(this.isEnabled(e)&&!e.compiler.options.output.crossOriginLoading&&t.warnCrossOriginPolicy(),this.validateHashFuncNames(t)&&this.validateHashLoading(t)),this.validateHashFuncNames=e=>Array.isArray(this.options.hashFuncNames)?0===this.options.hashFuncNames.length?(e.errorHashFuncsEmpty(),!1):!!this.options.hashFuncNames.every(this.validateHashFuncName.bind(this,e))&&(this.warnStandardHashFunc(e),!0):(e.errorHashFuncsNonArray(this.options.hashFuncNames),!1),this.validateHashLoading=e=>{const t=Object.freeze(["eager","lazy"]);return!!t.includes(this.options.hashLoading)||(e.errorInvalidHashLoading(this.options.hashLoading,t),!1)},this.warnStandardHashFunc=e=>{let t=!1;this.options.hashFuncNames.forEach((e=>{globals_1.standardHashFuncNames.indexOf(e)>=0&&(t=!0)})),t||e.warnStandardHashFuncs()},this.validateHashFuncName=(e,t)=>{if("string"!=typeof t&&!(t instanceof String))return e.errorNonStringHashFunc(t),!1;try{(0,crypto_1.createHash)(t)}catch(s){return e.errorUnusableHashFunc(t,s),!1}return!0},"object"!=typeof e)throw new Error("webpack-subresource-integrity: argument must be an object");this.options=Object.assign({hashFuncNames:["sha384"],enabled:"auto",hashLoading:"eager"},e)}isEnabled(e){return"auto"===this.options.enabled?"development"!==e.options.mode:this.options.enabled}apply(e){(0,hooks_1.install)(e,this.setup)}}exports.SubresourceIntegrityPlugin=SubresourceIntegrityPlugin;
//# sourceMappingURL=/sm/7d7f5d1818ef8f36e5c2cfb07e647b864c4cd043b2dff02a0aff185d480697e9.map