| 
									
										
										
										
											2018-11-23 16:37:33 +08:00
										 |  |  | /* | 
					
						
							|  |  |  | 	MIT License http://www.opensource.org/licenses/mit-license.php
 | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | "use strict"; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-08-25 19:20:29 +08:00
										 |  |  | const { SyncWaterfallHook } = require("tapable"); | 
					
						
							|  |  |  | const Compilation = require("../Compilation"); | 
					
						
							| 
									
										
										
										
											2018-11-23 16:37:33 +08:00
										 |  |  | const RuntimeGlobals = require("../RuntimeGlobals"); | 
					
						
							|  |  |  | const RuntimeModule = require("../RuntimeModule"); | 
					
						
							|  |  |  | const Template = require("../Template"); | 
					
						
							| 
									
										
										
										
											2019-10-11 21:46:57 +08:00
										 |  |  | const chunkHasJs = require("../javascript/JavascriptModulesPlugin").chunkHasJs; | 
					
						
							| 
									
										
										
										
											2021-03-15 02:54:34 +08:00
										 |  |  | const { getInitialChunkIds } = require("../javascript/StartupHelpers"); | 
					
						
							| 
									
										
										
										
											2019-05-22 19:07:10 +08:00
										 |  |  | const compileBooleanMatcher = require("../util/compileBooleanMatcher"); | 
					
						
							| 
									
										
										
										
											2018-11-23 16:37:33 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-08-25 19:20:29 +08:00
										 |  |  | /** @typedef {import("../Chunk")} Chunk */ | 
					
						
							| 
									
										
										
										
											2023-06-12 22:21:21 +08:00
										 |  |  | /** @typedef {import("../ChunkGraph")} ChunkGraph */ | 
					
						
							| 
									
										
										
										
											2024-03-18 23:28:40 +08:00
										 |  |  | /** @typedef {import("../Module").ReadOnlyRuntimeRequirements} ReadOnlyRuntimeRequirements */ | 
					
						
							| 
									
										
										
										
											2020-08-25 19:20:29 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							| 
									
										
										
										
											2024-06-11 21:09:50 +08:00
										 |  |  |  * @typedef {object} JsonpCompilationPluginHooks | 
					
						
							| 
									
										
										
										
											2020-08-25 19:20:29 +08:00
										 |  |  |  * @property {SyncWaterfallHook<[string, Chunk]>} linkPreload | 
					
						
							|  |  |  |  * @property {SyncWaterfallHook<[string, Chunk]>} linkPrefetch | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /** @type {WeakMap<Compilation, JsonpCompilationPluginHooks>} */ | 
					
						
							|  |  |  | const compilationHooksMap = new WeakMap(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-11-23 16:37:33 +08:00
										 |  |  | class JsonpChunkLoadingRuntimeModule extends RuntimeModule { | 
					
						
							| 
									
										
										
										
											2020-08-25 19:20:29 +08:00
										 |  |  | 	/** | 
					
						
							|  |  |  | 	 * @param {Compilation} compilation the compilation | 
					
						
							|  |  |  | 	 * @returns {JsonpCompilationPluginHooks} hooks | 
					
						
							|  |  |  | 	 */ | 
					
						
							|  |  |  | 	static getCompilationHooks(compilation) { | 
					
						
							|  |  |  | 		if (!(compilation instanceof Compilation)) { | 
					
						
							|  |  |  | 			throw new TypeError( | 
					
						
							|  |  |  | 				"The 'compilation' argument must be an instance of Compilation" | 
					
						
							|  |  |  | 			); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		let hooks = compilationHooksMap.get(compilation); | 
					
						
							|  |  |  | 		if (hooks === undefined) { | 
					
						
							|  |  |  | 			hooks = { | 
					
						
							|  |  |  | 				linkPreload: new SyncWaterfallHook(["source", "chunk"]), | 
					
						
							|  |  |  | 				linkPrefetch: new SyncWaterfallHook(["source", "chunk"]) | 
					
						
							|  |  |  | 			}; | 
					
						
							|  |  |  | 			compilationHooksMap.set(compilation, hooks); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		return hooks; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-22 10:12:44 +08:00
										 |  |  | 	/** | 
					
						
							| 
									
										
										
										
											2024-03-18 23:28:40 +08:00
										 |  |  | 	 * @param {ReadOnlyRuntimeRequirements} runtimeRequirements runtime requirements | 
					
						
							| 
									
										
										
										
											2023-05-22 10:12:44 +08:00
										 |  |  | 	 */ | 
					
						
							| 
									
										
										
										
											2020-08-25 19:20:29 +08:00
										 |  |  | 	constructor(runtimeRequirements) { | 
					
						
							| 
									
										
										
										
											2020-12-11 21:32:42 +08:00
										 |  |  | 		super("jsonp chunk loading", RuntimeModule.STAGE_ATTACH); | 
					
						
							| 
									
										
										
										
											2020-08-25 19:20:29 +08:00
										 |  |  | 		this._runtimeRequirements = runtimeRequirements; | 
					
						
							| 
									
										
										
										
											2018-11-23 16:37:33 +08:00
										 |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-21 21:23:47 +08:00
										 |  |  | 	/** | 
					
						
							|  |  |  | 	 * @private | 
					
						
							|  |  |  | 	 * @param {Chunk} chunk chunk | 
					
						
							|  |  |  | 	 * @returns {string} generated code | 
					
						
							|  |  |  | 	 */ | 
					
						
							|  |  |  | 	_generateBaseUri(chunk) { | 
					
						
							|  |  |  | 		const options = chunk.getEntryOptions(); | 
					
						
							|  |  |  | 		if (options && options.baseUri) { | 
					
						
							| 
									
										
										
										
											2022-02-22 16:54:35 +08:00
										 |  |  | 			return `${RuntimeGlobals.baseURI} = ${JSON.stringify(options.baseUri)};`; | 
					
						
							| 
									
										
										
										
											2022-02-21 21:23:47 +08:00
										 |  |  | 		} | 
					
						
							| 
									
										
										
										
											2024-07-31 04:21:27 +08:00
										 |  |  | 		return `${RuntimeGlobals.baseURI} = document.baseURI || self.location.href;`; | 
					
						
							| 
									
										
										
										
											2022-02-21 21:23:47 +08:00
										 |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-11-23 16:37:33 +08:00
										 |  |  | 	/** | 
					
						
							| 
									
										
										
										
											2023-06-17 01:13:03 +08:00
										 |  |  | 	 * @returns {string | null} runtime code | 
					
						
							| 
									
										
										
										
											2018-11-23 16:37:33 +08:00
										 |  |  | 	 */ | 
					
						
							|  |  |  | 	generate() { | 
					
						
							| 
									
										
										
										
											2023-06-12 22:21:21 +08:00
										 |  |  | 		const compilation = /** @type {Compilation} */ (this.compilation); | 
					
						
							| 
									
										
										
										
											2020-08-25 19:20:29 +08:00
										 |  |  | 		const { | 
					
						
							|  |  |  | 			runtimeTemplate, | 
					
						
							|  |  |  | 			outputOptions: { | 
					
						
							|  |  |  | 				chunkLoadingGlobal, | 
					
						
							|  |  |  | 				hotUpdateGlobal, | 
					
						
							|  |  |  | 				crossOriginLoading, | 
					
						
							| 
									
										
										
										
											2025-02-07 12:17:55 +08:00
										 |  |  | 				scriptType, | 
					
						
							|  |  |  | 				charset | 
					
						
							| 
									
										
										
										
											2020-08-25 19:20:29 +08:00
										 |  |  | 			} | 
					
						
							|  |  |  | 		} = compilation; | 
					
						
							| 
									
										
										
										
											2021-11-24 01:40:03 +08:00
										 |  |  | 		const globalObject = runtimeTemplate.globalObject; | 
					
						
							| 
									
										
										
										
											2021-05-11 15:31:46 +08:00
										 |  |  | 		const { linkPreload, linkPrefetch } = | 
					
						
							|  |  |  | 			JsonpChunkLoadingRuntimeModule.getCompilationHooks(compilation); | 
					
						
							| 
									
										
										
										
											2018-11-23 16:37:33 +08:00
										 |  |  | 		const fn = RuntimeGlobals.ensureChunkHandlers; | 
					
						
							| 
									
										
										
										
											2020-08-29 04:39:07 +08:00
										 |  |  | 		const withBaseURI = this._runtimeRequirements.has(RuntimeGlobals.baseURI); | 
					
						
							| 
									
										
										
										
											2020-08-25 19:20:29 +08:00
										 |  |  | 		const withLoading = this._runtimeRequirements.has( | 
					
						
							| 
									
										
										
										
											2018-11-23 16:37:33 +08:00
										 |  |  | 			RuntimeGlobals.ensureChunkHandlers | 
					
						
							|  |  |  | 		); | 
					
						
							| 
									
										
										
										
											2021-03-09 03:18:49 +08:00
										 |  |  | 		const withCallback = this._runtimeRequirements.has( | 
					
						
							|  |  |  | 			RuntimeGlobals.chunkCallback | 
					
						
							|  |  |  | 		); | 
					
						
							|  |  |  | 		const withOnChunkLoad = this._runtimeRequirements.has( | 
					
						
							|  |  |  | 			RuntimeGlobals.onChunksLoaded | 
					
						
							|  |  |  | 		); | 
					
						
							| 
									
										
										
										
											2020-08-25 19:20:29 +08:00
										 |  |  | 		const withHmr = this._runtimeRequirements.has( | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 			RuntimeGlobals.hmrDownloadUpdateHandlers | 
					
						
							|  |  |  | 		); | 
					
						
							| 
									
										
										
										
											2020-08-25 19:20:29 +08:00
										 |  |  | 		const withHmrManifest = this._runtimeRequirements.has( | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 			RuntimeGlobals.hmrDownloadManifest | 
					
						
							|  |  |  | 		); | 
					
						
							| 
									
										
										
										
											2023-04-23 04:42:55 +08:00
										 |  |  | 		const withFetchPriority = this._runtimeRequirements.has( | 
					
						
							| 
									
										
										
										
											2023-06-13 05:17:53 +08:00
										 |  |  | 			RuntimeGlobals.hasFetchPriority | 
					
						
							| 
									
										
										
										
											2023-04-23 04:42:55 +08:00
										 |  |  | 		); | 
					
						
							| 
									
										
										
										
											2020-08-25 19:20:29 +08:00
										 |  |  | 		const chunkLoadingGlobalExpr = `${globalObject}[${JSON.stringify( | 
					
						
							|  |  |  | 			chunkLoadingGlobal | 
					
						
							| 
									
										
										
										
											2018-11-23 16:37:33 +08:00
										 |  |  | 		)}]`;
 | 
					
						
							| 
									
										
										
										
											2023-06-12 22:21:21 +08:00
										 |  |  | 		const chunkGraph = /** @type {ChunkGraph} */ (this.chunkGraph); | 
					
						
							|  |  |  | 		const chunk = /** @type {Chunk} */ (this.chunk); | 
					
						
							| 
									
										
										
										
											2024-10-04 01:03:55 +08:00
										 |  |  | 		const withPrefetch = | 
					
						
							|  |  |  | 			this._runtimeRequirements.has(RuntimeGlobals.prefetchChunkHandlers) && | 
					
						
							|  |  |  | 			chunk.hasChildByOrder(chunkGraph, "prefetch", true, chunkHasJs); | 
					
						
							|  |  |  | 		const withPreload = | 
					
						
							|  |  |  | 			this._runtimeRequirements.has(RuntimeGlobals.preloadChunkHandlers) && | 
					
						
							|  |  |  | 			chunk.hasChildByOrder(chunkGraph, "preload", true, chunkHasJs); | 
					
						
							| 
									
										
										
										
											2021-03-09 03:18:49 +08:00
										 |  |  | 		const conditionMap = chunkGraph.getChunkConditionMap(chunk, chunkHasJs); | 
					
						
							|  |  |  | 		const hasJsMatcher = compileBooleanMatcher(conditionMap); | 
					
						
							| 
									
										
										
										
											2021-12-03 23:23:09 +08:00
										 |  |  | 		const initialChunkIds = getInitialChunkIds(chunk, chunkGraph, chunkHasJs); | 
					
						
							| 
									
										
										
										
											2021-03-09 03:18:49 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-16 15:43:50 +08:00
										 |  |  | 		const stateExpression = withHmr | 
					
						
							|  |  |  | 			? `${RuntimeGlobals.hmrRuntimeStatePrefix}_jsonp` | 
					
						
							|  |  |  | 			: undefined; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-11-23 16:37:33 +08:00
										 |  |  | 		return Template.asString([ | 
					
						
							| 
									
										
										
										
											2022-02-21 21:23:47 +08:00
										 |  |  | 			withBaseURI ? this._generateBaseUri(chunk) : "// no baseURI", | 
					
						
							| 
									
										
										
										
											2020-08-29 04:39:07 +08:00
										 |  |  | 			"", | 
					
						
							| 
									
										
										
										
											2018-11-23 16:37:33 +08:00
										 |  |  | 			"// object to store loaded and loading chunks", | 
					
						
							|  |  |  | 			"// undefined = chunk not loaded, null = chunk preloaded/prefetched", | 
					
						
							| 
									
										
										
										
											2021-03-09 03:18:49 +08:00
										 |  |  | 			"// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded", | 
					
						
							| 
									
										
										
										
											2021-08-16 15:43:50 +08:00
										 |  |  | 			`var installedChunks = ${ | 
					
						
							|  |  |  | 				stateExpression ? `${stateExpression} = ${stateExpression} || ` : "" | 
					
						
							|  |  |  | 			}{`,
 | 
					
						
							| 
									
										
										
										
											2018-11-23 16:37:33 +08:00
										 |  |  | 			Template.indent( | 
					
						
							| 
									
										
										
										
											2021-03-15 02:54:34 +08:00
										 |  |  | 				Array.from(initialChunkIds, id => `${JSON.stringify(id)}: 0`).join( | 
					
						
							|  |  |  | 					",\n" | 
					
						
							|  |  |  | 				) | 
					
						
							| 
									
										
										
										
											2018-11-23 16:37:33 +08:00
										 |  |  | 			), | 
					
						
							|  |  |  | 			"};", | 
					
						
							|  |  |  | 			"", | 
					
						
							|  |  |  | 			withLoading | 
					
						
							|  |  |  | 				? Template.asString([ | 
					
						
							| 
									
										
										
										
											2019-08-27 02:21:07 +08:00
										 |  |  | 						`${fn}.j = ${runtimeTemplate.basicFunction( | 
					
						
							| 
									
										
										
										
											2023-06-13 05:17:53 +08:00
										 |  |  | 							`chunkId, promises${withFetchPriority ? ", fetchPriority" : ""}`, | 
					
						
							| 
									
										
										
										
											2019-08-27 02:21:07 +08:00
										 |  |  | 							hasJsMatcher !== false | 
					
						
							|  |  |  | 								? Template.indent([ | 
					
						
							|  |  |  | 										"// JSONP chunk loading for javascript", | 
					
						
							| 
									
										
										
										
											2019-12-02 22:59:37 +08:00
										 |  |  | 										`var installedChunkData = ${RuntimeGlobals.hasOwnProperty}(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;`, | 
					
						
							| 
									
										
										
										
											2019-08-27 02:21:07 +08:00
										 |  |  | 										'if(installedChunkData !== 0) { // 0 means "already installed".', | 
					
						
							| 
									
										
										
										
											2018-11-23 16:37:33 +08:00
										 |  |  | 										Template.indent([ | 
					
						
							| 
									
										
										
										
											2019-08-27 02:21:07 +08:00
										 |  |  | 											"", | 
					
						
							|  |  |  | 											'// a Promise means "currently loading".', | 
					
						
							|  |  |  | 											"if(installedChunkData) {", | 
					
						
							|  |  |  | 											Template.indent([ | 
					
						
							|  |  |  | 												"promises.push(installedChunkData[2]);" | 
					
						
							|  |  |  | 											]), | 
					
						
							|  |  |  | 											"} else {", | 
					
						
							| 
									
										
										
										
											2018-11-23 16:37:33 +08:00
										 |  |  | 											Template.indent([ | 
					
						
							| 
									
										
										
										
											2019-08-27 02:21:07 +08:00
										 |  |  | 												hasJsMatcher === true | 
					
						
							|  |  |  | 													? "if(true) { // all chunks have JS" | 
					
						
							|  |  |  | 													: `if(${hasJsMatcher("chunkId")}) {`, | 
					
						
							| 
									
										
										
										
											2018-11-23 16:37:33 +08:00
										 |  |  | 												Template.indent([ | 
					
						
							| 
									
										
										
										
											2019-08-27 02:21:07 +08:00
										 |  |  | 													"// setup Promise in chunk cache", | 
					
						
							| 
									
										
										
										
											2021-03-15 19:13:43 +08:00
										 |  |  | 													`var promise = new Promise(${runtimeTemplate.expressionFunction( | 
					
						
							| 
									
										
										
										
											2024-07-31 12:23:44 +08:00
										 |  |  | 														"installedChunkData = installedChunks[chunkId] = [resolve, reject]", | 
					
						
							| 
									
										
										
										
											2021-03-15 19:13:43 +08:00
										 |  |  | 														"resolve, reject" | 
					
						
							| 
									
										
										
										
											2019-08-27 02:21:07 +08:00
										 |  |  | 													)});`,
 | 
					
						
							|  |  |  | 													"promises.push(installedChunkData[2] = promise);", | 
					
						
							|  |  |  | 													"", | 
					
						
							|  |  |  | 													"// start chunk loading", | 
					
						
							|  |  |  | 													`var url = ${RuntimeGlobals.publicPath} + ${RuntimeGlobals.getChunkScriptFilename}(chunkId);`, | 
					
						
							| 
									
										
										
										
											2020-06-03 21:04:54 +08:00
										 |  |  | 													"// create error before stack unwound to get useful stacktrace later", | 
					
						
							|  |  |  | 													"var error = new Error();", | 
					
						
							| 
									
										
										
										
											2019-08-27 02:21:07 +08:00
										 |  |  | 													`var loadingEnded = ${runtimeTemplate.basicFunction( | 
					
						
							| 
									
										
										
										
											2020-06-03 21:04:54 +08:00
										 |  |  | 														"event", | 
					
						
							| 
									
										
										
										
											2019-08-27 02:21:07 +08:00
										 |  |  | 														[ | 
					
						
							| 
									
										
										
										
											2019-12-02 22:59:37 +08:00
										 |  |  | 															`if(${RuntimeGlobals.hasOwnProperty}(installedChunks, chunkId)) {`, | 
					
						
							| 
									
										
										
										
											2019-10-29 16:54:03 +08:00
										 |  |  | 															Template.indent([ | 
					
						
							|  |  |  | 																"installedChunkData = installedChunks[chunkId];", | 
					
						
							|  |  |  | 																"if(installedChunkData !== 0) installedChunks[chunkId] = undefined;", | 
					
						
							| 
									
										
										
										
											2020-06-03 21:04:54 +08:00
										 |  |  | 																"if(installedChunkData) {", | 
					
						
							|  |  |  | 																Template.indent([ | 
					
						
							|  |  |  | 																	"var errorType = event && (event.type === 'load' ? 'missing' : event.type);", | 
					
						
							|  |  |  | 																	"var realSrc = event && event.target && event.target.src;", | 
					
						
							|  |  |  | 																	"error.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';", | 
					
						
							|  |  |  | 																	"error.name = 'ChunkLoadError';", | 
					
						
							|  |  |  | 																	"error.type = errorType;", | 
					
						
							|  |  |  | 																	"error.request = realSrc;", | 
					
						
							|  |  |  | 																	"installedChunkData[1](error);" | 
					
						
							|  |  |  | 																]), | 
					
						
							|  |  |  | 																"}" | 
					
						
							| 
									
										
										
										
											2019-10-29 16:54:03 +08:00
										 |  |  | 															]), | 
					
						
							|  |  |  | 															"}" | 
					
						
							| 
									
										
										
										
											2019-08-27 02:21:07 +08:00
										 |  |  | 														] | 
					
						
							|  |  |  | 													)};`,
 | 
					
						
							| 
									
										
										
										
											2023-04-23 04:42:55 +08:00
										 |  |  | 													`${ | 
					
						
							|  |  |  | 														RuntimeGlobals.loadScript | 
					
						
							|  |  |  | 													}(url, loadingEnded, "chunk-" + chunkId, chunkId${ | 
					
						
							|  |  |  | 														withFetchPriority ? ", fetchPriority" : "" | 
					
						
							|  |  |  | 													});`
 | 
					
						
							| 
									
										
										
										
											2018-11-23 16:37:33 +08:00
										 |  |  | 												]), | 
					
						
							| 
									
										
										
										
											2023-05-09 03:07:45 +08:00
										 |  |  | 												hasJsMatcher === true | 
					
						
							|  |  |  | 													? "}" | 
					
						
							|  |  |  | 													: "} else installedChunks[chunkId] = 0;" | 
					
						
							| 
									
										
										
										
											2018-11-23 16:37:33 +08:00
										 |  |  | 											]), | 
					
						
							| 
									
										
										
										
											2019-08-27 02:21:07 +08:00
										 |  |  | 											"}" | 
					
						
							| 
									
										
										
										
											2018-11-23 16:37:33 +08:00
										 |  |  | 										]), | 
					
						
							| 
									
										
										
										
											2019-12-19 18:53:54 +08:00
										 |  |  | 										"}" | 
					
						
							| 
									
										
										
										
											2024-07-31 05:43:19 +08:00
										 |  |  | 									]) | 
					
						
							| 
									
										
										
										
											2020-04-15 16:51:03 +08:00
										 |  |  | 								: Template.indent(["installedChunks[chunkId] = 0;"]) | 
					
						
							| 
									
										
										
										
											2019-08-27 02:21:07 +08:00
										 |  |  | 						)};`
 | 
					
						
							| 
									
										
										
										
											2024-07-31 05:43:19 +08:00
										 |  |  | 					]) | 
					
						
							| 
									
										
										
										
											2018-11-23 16:37:33 +08:00
										 |  |  | 				: "// no chunk on demand loading", | 
					
						
							|  |  |  | 			"", | 
					
						
							| 
									
										
										
										
											2019-12-19 18:53:54 +08:00
										 |  |  | 			withPrefetch && hasJsMatcher !== false | 
					
						
							|  |  |  | 				? `${ | 
					
						
							|  |  |  | 						RuntimeGlobals.prefetchChunkHandlers | 
					
						
							| 
									
										
										
										
											2024-07-31 05:43:19 +08:00
										 |  |  | 					}.j = ${runtimeTemplate.basicFunction("chunkId", [ | 
					
						
							| 
									
										
										
										
											2019-12-19 18:53:54 +08:00
										 |  |  | 						`if((!${ | 
					
						
							|  |  |  | 							RuntimeGlobals.hasOwnProperty | 
					
						
							|  |  |  | 						}(installedChunks, chunkId) || installedChunks[chunkId] === undefined) && ${ | 
					
						
							|  |  |  | 							hasJsMatcher === true ? "true" : hasJsMatcher("chunkId") | 
					
						
							|  |  |  | 						}) {`,
 | 
					
						
							| 
									
										
										
										
											2018-11-23 16:37:33 +08:00
										 |  |  | 						Template.indent([ | 
					
						
							| 
									
										
										
										
											2019-12-19 18:53:54 +08:00
										 |  |  | 							"installedChunks[chunkId] = null;", | 
					
						
							| 
									
										
										
										
											2020-08-25 19:20:29 +08:00
										 |  |  | 							linkPrefetch.call( | 
					
						
							|  |  |  | 								Template.asString([ | 
					
						
							|  |  |  | 									"var link = document.createElement('link');", | 
					
						
							| 
									
										
										
										
											2025-02-07 12:17:55 +08:00
										 |  |  | 									charset ? "link.charset = 'utf-8';" : "", | 
					
						
							| 
									
										
										
										
											2020-08-25 19:20:29 +08:00
										 |  |  | 									crossOriginLoading | 
					
						
							|  |  |  | 										? `link.crossOrigin = ${JSON.stringify( | 
					
						
							|  |  |  | 												crossOriginLoading | 
					
						
							| 
									
										
										
										
											2024-07-31 05:43:19 +08:00
										 |  |  | 											)};`
 | 
					
						
							| 
									
										
										
										
											2020-08-25 19:20:29 +08:00
										 |  |  | 										: "", | 
					
						
							|  |  |  | 									`if (${RuntimeGlobals.scriptNonce}) {`, | 
					
						
							|  |  |  | 									Template.indent( | 
					
						
							|  |  |  | 										`link.setAttribute("nonce", ${RuntimeGlobals.scriptNonce});` | 
					
						
							|  |  |  | 									), | 
					
						
							|  |  |  | 									"}", | 
					
						
							|  |  |  | 									'link.rel = "prefetch";', | 
					
						
							|  |  |  | 									'link.as = "script";', | 
					
						
							|  |  |  | 									`link.href = ${RuntimeGlobals.publicPath} + ${RuntimeGlobals.getChunkScriptFilename}(chunkId);` | 
					
						
							|  |  |  | 								]), | 
					
						
							|  |  |  | 								chunk | 
					
						
							|  |  |  | 							), | 
					
						
							| 
									
										
										
										
											2019-12-19 18:53:54 +08:00
										 |  |  | 							"document.head.appendChild(link);" | 
					
						
							| 
									
										
										
										
											2018-11-23 16:37:33 +08:00
										 |  |  | 						]), | 
					
						
							| 
									
										
										
										
											2019-05-20 20:46:31 +08:00
										 |  |  | 						"}" | 
					
						
							| 
									
										
										
										
											2024-07-31 05:43:19 +08:00
										 |  |  | 					])};`
 | 
					
						
							| 
									
										
										
										
											2018-11-23 16:37:33 +08:00
										 |  |  | 				: "// no prefetching", | 
					
						
							|  |  |  | 			"", | 
					
						
							| 
									
										
										
										
											2019-12-19 18:53:54 +08:00
										 |  |  | 			withPreload && hasJsMatcher !== false | 
					
						
							|  |  |  | 				? `${ | 
					
						
							|  |  |  | 						RuntimeGlobals.preloadChunkHandlers | 
					
						
							| 
									
										
										
										
											2024-07-31 05:43:19 +08:00
										 |  |  | 					}.j = ${runtimeTemplate.basicFunction("chunkId", [ | 
					
						
							| 
									
										
										
										
											2019-12-19 18:53:54 +08:00
										 |  |  | 						`if((!${ | 
					
						
							|  |  |  | 							RuntimeGlobals.hasOwnProperty | 
					
						
							|  |  |  | 						}(installedChunks, chunkId) || installedChunks[chunkId] === undefined) && ${ | 
					
						
							|  |  |  | 							hasJsMatcher === true ? "true" : hasJsMatcher("chunkId") | 
					
						
							|  |  |  | 						}) {`,
 | 
					
						
							|  |  |  | 						Template.indent([ | 
					
						
							|  |  |  | 							"installedChunks[chunkId] = null;", | 
					
						
							| 
									
										
										
										
											2020-08-25 19:20:29 +08:00
										 |  |  | 							linkPreload.call( | 
					
						
							|  |  |  | 								Template.asString([ | 
					
						
							|  |  |  | 									"var link = document.createElement('link');", | 
					
						
							| 
									
										
										
										
											2023-05-06 09:34:51 +08:00
										 |  |  | 									scriptType && scriptType !== "module" | 
					
						
							|  |  |  | 										? `link.type = ${JSON.stringify(scriptType)};` | 
					
						
							|  |  |  | 										: "", | 
					
						
							| 
									
										
										
										
											2025-02-07 12:17:55 +08:00
										 |  |  | 									charset ? "link.charset = 'utf-8';" : "", | 
					
						
							| 
									
										
										
										
											2020-08-25 19:20:29 +08:00
										 |  |  | 									`if (${RuntimeGlobals.scriptNonce}) {`, | 
					
						
							|  |  |  | 									Template.indent( | 
					
						
							|  |  |  | 										`link.setAttribute("nonce", ${RuntimeGlobals.scriptNonce});` | 
					
						
							|  |  |  | 									), | 
					
						
							|  |  |  | 									"}", | 
					
						
							| 
									
										
										
										
											2023-05-06 09:21:38 +08:00
										 |  |  | 									scriptType === "module" | 
					
						
							|  |  |  | 										? 'link.rel = "modulepreload";' | 
					
						
							|  |  |  | 										: 'link.rel = "preload";', | 
					
						
							|  |  |  | 									scriptType === "module" ? "" : 'link.as = "script";', | 
					
						
							| 
									
										
										
										
											2020-08-25 19:20:29 +08:00
										 |  |  | 									`link.href = ${RuntimeGlobals.publicPath} + ${RuntimeGlobals.getChunkScriptFilename}(chunkId);`, | 
					
						
							|  |  |  | 									crossOriginLoading | 
					
						
							| 
									
										
										
										
											2022-04-08 20:53:28 +08:00
										 |  |  | 										? crossOriginLoading === "use-credentials" | 
					
						
							|  |  |  | 											? 'link.crossOrigin = "use-credentials";' | 
					
						
							|  |  |  | 											: Template.asString([ | 
					
						
							|  |  |  | 													"if (link.href.indexOf(window.location.origin + '/') !== 0) {", | 
					
						
							|  |  |  | 													Template.indent( | 
					
						
							|  |  |  | 														`link.crossOrigin = ${JSON.stringify( | 
					
						
							|  |  |  | 															crossOriginLoading | 
					
						
							|  |  |  | 														)};`
 | 
					
						
							|  |  |  | 													), | 
					
						
							|  |  |  | 													"}" | 
					
						
							| 
									
										
										
										
											2024-07-31 05:43:19 +08:00
										 |  |  | 												]) | 
					
						
							| 
									
										
										
										
											2020-08-25 19:20:29 +08:00
										 |  |  | 										: "" | 
					
						
							|  |  |  | 								]), | 
					
						
							|  |  |  | 								chunk | 
					
						
							|  |  |  | 							), | 
					
						
							| 
									
										
										
										
											2019-12-19 18:53:54 +08:00
										 |  |  | 							"document.head.appendChild(link);" | 
					
						
							|  |  |  | 						]), | 
					
						
							|  |  |  | 						"}" | 
					
						
							| 
									
										
										
										
											2024-07-31 05:43:19 +08:00
										 |  |  | 					])};`
 | 
					
						
							| 
									
										
										
										
											2019-12-19 18:53:54 +08:00
										 |  |  | 				: "// no preloaded", | 
					
						
							|  |  |  | 			"", | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 			withHmr | 
					
						
							|  |  |  | 				? Template.asString([ | 
					
						
							|  |  |  | 						"var currentUpdatedModulesList;", | 
					
						
							|  |  |  | 						"var waitingUpdateResolves = {};", | 
					
						
							| 
									
										
										
										
											2022-03-25 22:16:04 +08:00
										 |  |  | 						"function loadUpdateChunk(chunkId, updatedModulesList) {", | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 						Template.indent([ | 
					
						
							| 
									
										
										
										
											2022-03-25 22:16:04 +08:00
										 |  |  | 							"currentUpdatedModulesList = updatedModulesList;", | 
					
						
							| 
									
										
										
										
											2019-08-27 02:21:07 +08:00
										 |  |  | 							`return new Promise(${runtimeTemplate.basicFunction( | 
					
						
							|  |  |  | 								"resolve, reject", | 
					
						
							|  |  |  | 								[ | 
					
						
							|  |  |  | 									"waitingUpdateResolves[chunkId] = resolve;", | 
					
						
							|  |  |  | 									"// start update chunk loading", | 
					
						
							|  |  |  | 									`var url = ${RuntimeGlobals.publicPath} + ${RuntimeGlobals.getChunkUpdateScriptFilename}(chunkId);`, | 
					
						
							| 
									
										
										
										
											2020-06-03 21:04:54 +08:00
										 |  |  | 									"// create error before stack unwound to get useful stacktrace later", | 
					
						
							|  |  |  | 									"var error = new Error();", | 
					
						
							|  |  |  | 									`var loadingEnded = ${runtimeTemplate.basicFunction("event", [ | 
					
						
							| 
									
										
										
										
											2019-08-27 02:21:07 +08:00
										 |  |  | 										"if(waitingUpdateResolves[chunkId]) {", | 
					
						
							|  |  |  | 										Template.indent([ | 
					
						
							|  |  |  | 											"waitingUpdateResolves[chunkId] = undefined", | 
					
						
							| 
									
										
										
										
											2020-06-03 21:04:54 +08:00
										 |  |  | 											"var errorType = event && (event.type === 'load' ? 'missing' : event.type);", | 
					
						
							|  |  |  | 											"var realSrc = event && event.target && event.target.src;", | 
					
						
							|  |  |  | 											"error.message = 'Loading hot update chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';", | 
					
						
							|  |  |  | 											"error.name = 'ChunkLoadError';", | 
					
						
							|  |  |  | 											"error.type = errorType;", | 
					
						
							|  |  |  | 											"error.request = realSrc;", | 
					
						
							|  |  |  | 											"reject(error);" | 
					
						
							| 
									
										
										
										
											2019-08-27 02:21:07 +08:00
										 |  |  | 										]), | 
					
						
							|  |  |  | 										"}" | 
					
						
							|  |  |  | 									])};`,
 | 
					
						
							| 
									
										
										
										
											2020-06-03 21:04:54 +08:00
										 |  |  | 									`${RuntimeGlobals.loadScript}(url, loadingEnded);` | 
					
						
							| 
									
										
										
										
											2019-08-27 02:21:07 +08:00
										 |  |  | 								] | 
					
						
							|  |  |  | 							)});`
 | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 						]), | 
					
						
							|  |  |  | 						"}", | 
					
						
							|  |  |  | 						"", | 
					
						
							| 
									
										
										
										
											2020-08-25 19:20:29 +08:00
										 |  |  | 						`${globalObject}[${JSON.stringify( | 
					
						
							|  |  |  | 							hotUpdateGlobal | 
					
						
							| 
									
										
										
										
											2019-08-27 02:21:07 +08:00
										 |  |  | 						)}] = ${runtimeTemplate.basicFunction( | 
					
						
							|  |  |  | 							"chunkId, moreModules, runtime", | 
					
						
							|  |  |  | 							[ | 
					
						
							|  |  |  | 								"for(var moduleId in moreModules) {", | 
					
						
							|  |  |  | 								Template.indent([ | 
					
						
							| 
									
										
										
										
											2019-12-02 22:59:37 +08:00
										 |  |  | 									`if(${RuntimeGlobals.hasOwnProperty}(moreModules, moduleId)) {`, | 
					
						
							| 
									
										
										
										
											2019-08-27 02:21:07 +08:00
										 |  |  | 									Template.indent([ | 
					
						
							|  |  |  | 										"currentUpdate[moduleId] = moreModules[moduleId];", | 
					
						
							|  |  |  | 										"if(currentUpdatedModulesList) currentUpdatedModulesList.push(moduleId);" | 
					
						
							|  |  |  | 									]), | 
					
						
							|  |  |  | 									"}" | 
					
						
							|  |  |  | 								]), | 
					
						
							|  |  |  | 								"}", | 
					
						
							|  |  |  | 								"if(runtime) currentUpdateRuntime.push(runtime);", | 
					
						
							|  |  |  | 								"if(waitingUpdateResolves[chunkId]) {", | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 								Template.indent([ | 
					
						
							| 
									
										
										
										
											2019-08-27 02:21:07 +08:00
										 |  |  | 									"waitingUpdateResolves[chunkId]();", | 
					
						
							|  |  |  | 									"waitingUpdateResolves[chunkId] = undefined;" | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 								]), | 
					
						
							|  |  |  | 								"}" | 
					
						
							| 
									
										
										
										
											2019-08-27 02:21:07 +08:00
										 |  |  | 							] | 
					
						
							|  |  |  | 						)};`,
 | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 						"", | 
					
						
							| 
									
										
										
										
											2020-04-15 16:51:03 +08:00
										 |  |  | 						Template.getFunctionContent( | 
					
						
							|  |  |  | 							require("../hmr/JavascriptHotModuleReplacement.runtime.js") | 
					
						
							|  |  |  | 						) | 
					
						
							|  |  |  | 							.replace(/\$key\$/g, "jsonp") | 
					
						
							|  |  |  | 							.replace(/\$installedChunks\$/g, "installedChunks") | 
					
						
							|  |  |  | 							.replace(/\$loadUpdateChunk\$/g, "loadUpdateChunk") | 
					
						
							|  |  |  | 							.replace(/\$moduleCache\$/g, RuntimeGlobals.moduleCache) | 
					
						
							|  |  |  | 							.replace(/\$moduleFactories\$/g, RuntimeGlobals.moduleFactories) | 
					
						
							|  |  |  | 							.replace( | 
					
						
							|  |  |  | 								/\$ensureChunkHandlers\$/g, | 
					
						
							|  |  |  | 								RuntimeGlobals.ensureChunkHandlers | 
					
						
							|  |  |  | 							) | 
					
						
							|  |  |  | 							.replace(/\$hasOwnProperty\$/g, RuntimeGlobals.hasOwnProperty) | 
					
						
							|  |  |  | 							.replace(/\$hmrModuleData\$/g, RuntimeGlobals.hmrModuleData) | 
					
						
							|  |  |  | 							.replace( | 
					
						
							|  |  |  | 								/\$hmrDownloadUpdateHandlers\$/g, | 
					
						
							|  |  |  | 								RuntimeGlobals.hmrDownloadUpdateHandlers | 
					
						
							|  |  |  | 							) | 
					
						
							|  |  |  | 							.replace( | 
					
						
							|  |  |  | 								/\$hmrInvalidateModuleHandlers\$/g, | 
					
						
							|  |  |  | 								RuntimeGlobals.hmrInvalidateModuleHandlers | 
					
						
							|  |  |  | 							) | 
					
						
							| 
									
										
										
										
											2024-07-31 05:43:19 +08:00
										 |  |  | 					]) | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 				: "// no HMR", | 
					
						
							|  |  |  | 			"", | 
					
						
							|  |  |  | 			withHmrManifest | 
					
						
							|  |  |  | 				? Template.asString([ | 
					
						
							| 
									
										
										
										
											2019-08-27 02:21:07 +08:00
										 |  |  | 						`${ | 
					
						
							|  |  |  | 							RuntimeGlobals.hmrDownloadManifest | 
					
						
							|  |  |  | 						} = ${runtimeTemplate.basicFunction("", [ | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 							'if (typeof fetch === "undefined") throw new Error("No browser support: need fetch API");', | 
					
						
							| 
									
										
										
										
											2019-08-27 02:21:07 +08:00
										 |  |  | 							`return fetch(${RuntimeGlobals.publicPath} + ${ | 
					
						
							|  |  |  | 								RuntimeGlobals.getUpdateManifestFilename | 
					
						
							|  |  |  | 							}()).then(${runtimeTemplate.basicFunction("response", [ | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 								"if(response.status === 404) return; // no update available", | 
					
						
							|  |  |  | 								'if(!response.ok) throw new Error("Failed to fetch update manifest " + response.statusText);', | 
					
						
							|  |  |  | 								"return response.json();" | 
					
						
							| 
									
										
										
										
											2019-08-27 02:21:07 +08:00
										 |  |  | 							])});`
 | 
					
						
							|  |  |  | 						])};`
 | 
					
						
							| 
									
										
										
										
											2024-07-31 05:43:19 +08:00
										 |  |  | 					]) | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 				: "// no HMR manifest", | 
					
						
							| 
									
										
										
										
											2018-11-23 16:37:33 +08:00
										 |  |  | 			"", | 
					
						
							| 
									
										
										
										
											2021-03-09 03:18:49 +08:00
										 |  |  | 			withOnChunkLoad | 
					
						
							|  |  |  | 				? `${ | 
					
						
							|  |  |  | 						RuntimeGlobals.onChunksLoaded | 
					
						
							| 
									
										
										
										
											2024-07-31 05:43:19 +08:00
										 |  |  | 					}.j = ${runtimeTemplate.returningFunction( | 
					
						
							| 
									
										
										
										
											2021-03-15 02:54:34 +08:00
										 |  |  | 						"installedChunks[chunkId] === 0", | 
					
						
							| 
									
										
										
										
											2021-03-09 23:16:15 +08:00
										 |  |  | 						"chunkId" | 
					
						
							| 
									
										
										
										
											2024-07-31 05:43:19 +08:00
										 |  |  | 					)};`
 | 
					
						
							| 
									
										
										
										
											2021-03-09 03:18:49 +08:00
										 |  |  | 				: "// no on chunks loaded", | 
					
						
							| 
									
										
										
										
											2018-11-23 16:37:33 +08:00
										 |  |  | 			"", | 
					
						
							| 
									
										
										
										
											2021-03-09 03:18:49 +08:00
										 |  |  | 			withCallback || withLoading | 
					
						
							| 
									
										
										
										
											2018-11-23 16:37:33 +08:00
										 |  |  | 				? Template.asString([ | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 						"// install a JSONP callback for chunk loading", | 
					
						
							| 
									
										
										
										
											2020-08-28 07:44:56 +08:00
										 |  |  | 						`var webpackJsonpCallback = ${runtimeTemplate.basicFunction( | 
					
						
							| 
									
										
										
										
											2020-12-07 16:27:07 +08:00
										 |  |  | 							"parentChunkLoadingFunction, data", | 
					
						
							| 
									
										
										
										
											2020-08-28 07:44:56 +08:00
										 |  |  | 							[ | 
					
						
							|  |  |  | 								runtimeTemplate.destructureArray( | 
					
						
							| 
									
										
										
										
											2021-03-09 03:18:49 +08:00
										 |  |  | 									["chunkIds", "moreModules", "runtime"], | 
					
						
							| 
									
										
										
										
											2020-08-28 07:44:56 +08:00
										 |  |  | 									"data" | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 								), | 
					
						
							| 
									
										
										
										
											2020-08-28 07:44:56 +08:00
										 |  |  | 								'// add "moreModules" to the modules object,', | 
					
						
							|  |  |  | 								'// then flag all "chunkIds" as loaded and fire callback', | 
					
						
							| 
									
										
										
										
											2021-03-09 03:18:49 +08:00
										 |  |  | 								"var moduleId, chunkId, i = 0;", | 
					
						
							| 
									
										
										
										
											2021-08-16 15:43:50 +08:00
										 |  |  | 								`if(chunkIds.some(${runtimeTemplate.returningFunction( | 
					
						
							|  |  |  | 									"installedChunks[id] !== 0", | 
					
						
							|  |  |  | 									"id" | 
					
						
							|  |  |  | 								)})) {`,
 | 
					
						
							| 
									
										
										
										
											2020-08-28 07:44:56 +08:00
										 |  |  | 								Template.indent([ | 
					
						
							| 
									
										
										
										
											2021-08-16 15:43:50 +08:00
										 |  |  | 									"for(moduleId in moreModules) {", | 
					
						
							|  |  |  | 									Template.indent([ | 
					
						
							|  |  |  | 										`if(${RuntimeGlobals.hasOwnProperty}(moreModules, moduleId)) {`, | 
					
						
							|  |  |  | 										Template.indent( | 
					
						
							|  |  |  | 											`${RuntimeGlobals.moduleFactories}[moduleId] = moreModules[moduleId];` | 
					
						
							|  |  |  | 										), | 
					
						
							|  |  |  | 										"}" | 
					
						
							|  |  |  | 									]), | 
					
						
							|  |  |  | 									"}", | 
					
						
							| 
									
										
										
										
											2023-05-19 23:55:47 +08:00
										 |  |  | 									`if(runtime) var result = runtime(${RuntimeGlobals.require});` | 
					
						
							| 
									
										
										
										
											2020-08-28 07:44:56 +08:00
										 |  |  | 								]), | 
					
						
							|  |  |  | 								"}", | 
					
						
							| 
									
										
										
										
											2020-12-07 16:27:07 +08:00
										 |  |  | 								"if(parentChunkLoadingFunction) parentChunkLoadingFunction(data);", | 
					
						
							| 
									
										
										
										
											2021-03-09 03:18:49 +08:00
										 |  |  | 								"for(;i < chunkIds.length; i++) {", | 
					
						
							|  |  |  | 								Template.indent([ | 
					
						
							|  |  |  | 									"chunkId = chunkIds[i];", | 
					
						
							|  |  |  | 									`if(${RuntimeGlobals.hasOwnProperty}(installedChunks, chunkId) && installedChunks[chunkId]) {`, | 
					
						
							|  |  |  | 									Template.indent("installedChunks[chunkId][0]();"), | 
					
						
							|  |  |  | 									"}", | 
					
						
							| 
									
										
										
										
											2021-10-08 15:46:00 +08:00
										 |  |  | 									"installedChunks[chunkId] = 0;" | 
					
						
							| 
									
										
										
										
											2021-03-09 03:18:49 +08:00
										 |  |  | 								]), | 
					
						
							| 
									
										
										
										
											2020-08-28 07:44:56 +08:00
										 |  |  | 								"}", | 
					
						
							| 
									
										
										
										
											2021-04-19 19:04:04 +08:00
										 |  |  | 								withOnChunkLoad | 
					
						
							|  |  |  | 									? `return ${RuntimeGlobals.onChunksLoaded}(result);` | 
					
						
							|  |  |  | 									: "" | 
					
						
							| 
									
										
										
										
											2020-08-28 07:44:56 +08:00
										 |  |  | 							] | 
					
						
							|  |  |  | 						)}`,
 | 
					
						
							| 
									
										
										
										
											2018-11-28 20:07:40 +08:00
										 |  |  | 						"", | 
					
						
							| 
									
										
										
										
											2020-08-25 19:20:29 +08:00
										 |  |  | 						`var chunkLoadingGlobal = ${chunkLoadingGlobalExpr} = ${chunkLoadingGlobalExpr} || [];`, | 
					
						
							| 
									
										
										
										
											2020-12-11 21:32:42 +08:00
										 |  |  | 						"chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));", | 
					
						
							| 
									
										
										
										
											2020-12-07 16:27:07 +08:00
										 |  |  | 						"chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));" | 
					
						
							| 
									
										
										
										
											2024-07-31 05:43:19 +08:00
										 |  |  | 					]) | 
					
						
							| 
									
										
										
										
											2021-03-09 03:18:49 +08:00
										 |  |  | 				: "// no jsonp function" | 
					
						
							| 
									
										
										
										
											2018-11-23 16:37:33 +08:00
										 |  |  | 		]); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | module.exports = JsonpChunkLoadingRuntimeModule; |