"use strict";var _webpackSources=require("webpack-sources"),_info=require("../common/info");const pluginName="splitChunksAdaptPlugin",actualModuleRequireParam=["module.exports","module","module.exports","__webpack_require__"],formalModuleRequireParam=["module","exports","__webpack_require__"],moduleRequireNativeFunctions=["$app_define$","$app_bootstrap$","$app_require$","$app_define_wrap$"],appModuleRequireNativeFunctions=["$app_define$","$app_bootstrap$","$app_require$"],actualParamStr=actualModuleRequireParam.concat(moduleRequireNativeFunctions).join(", "),formalParamStr=formalModuleRequireParam.concat(moduleRequireNativeFunctions).join(", "),quickappGlobal="var __quickappGlobal = Object.getPrototypeOf(global) || global;";function replaceWindowWithGlobalStr(e,a){let l=e?"global":"__quickappGlobal";return a.replace(/window(?=\["webpackJsonp"\])/g,l)}class SplitChunksAdaptPlugin{constructor(e){this.options=e,this.chunkPath=e.chunkPath||"__Chunks"}apply(e){e.hooks.compilation.tap(pluginName,a=>{let l=[],o="";a.hooks.optimizeChunkIds.tap(pluginName,a=>{l=(0,_info.getEntryFiles)(e.options.entry);const t=a.filter(e=>-1===l.indexOf(`${e.name}.js`)).map(e=>`"${e.id}": "${this.chunkPath}/${e.name}"`);o=`__quickappGlobal.chunkFileMap = __quickappGlobal.chunkFileMap || {${t.join(", ")}};`}),a.hooks.optimizeChunkAssets.tapAsync(pluginName,(e,t)=>{let i=actualParamStr,u=formalParamStr;e.forEach(e=>{e.files.forEach(t=>{let p=!1;t.match(/\bapp\.js$/)&&(i=actualModuleRequireParam.concat(appModuleRequireNativeFunctions).join(", "),u=formalModuleRequireParam.concat(appModuleRequireNativeFunctions).join(", "));let r=a.assets[t].source();if(e.entryModule?r=r.replace("/******/ \t// install a JSONP callback for chunk loading",`/******/ \t${quickappGlobal}\n ${o}\n `):p=!0,r=replaceWindowWithGlobalStr(p,r),r=r.replace(/(?<=(if\(installedChunks\[depId\]\s+!==\s+0\)\s+))fulfilled\s+=\s+false;/,"{ fulfilled = false; $app_evaluate$(`${__quickappGlobal.chunkFileMap[depId]}.js`); }"),r=r.replace(/(?<=(modules\[moduleId\].call\())module.exports,\s+module,\s+module.exports,\s+__webpack_require__/,i),r=r.replace(/(?<=function\()module,\s+exports(,\s+__webpack_require__)?/,u),a.assets[t]=new _webpackSources.ConcatSource(r),-1===l.indexOf(t)){let l=a.assets[t];delete a.assets[t];let o=this.chunkPath+"/"+t;e.files=e.files.map(e=>{if(e===t)return o}),a.assets[o]=l}})}),t()})})}}module.exports=SplitChunksAdaptPlugin; //# sourceMappingURL=splitchunks-adapt-plugin.js.map