2013-01-31 01:49:25 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								/ *  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									MIT  License  http : //www.opensource.org/licenses/mit-license.php
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									Author  Tobias  Koppers  @ sokra 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								* /  
						 
					
						
							
								
									
										
										
										
											2018-07-30 23:08:51 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-01-19 11:09:33 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								"use strict" ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-25 05:17:47 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  WebpackError  =  require ( "./WebpackError" ) ;  
						 
					
						
							
								
									
										
										
										
											2018-10-25 16:47:52 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  makeSerializable  =  require ( "./util/makeSerializable" ) ;  
						 
					
						
							
								
									
										
										
										
											2017-03-25 05:17:47 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2025-03-27 08:07:25 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/** @typedef {import("./Dependency").SourcePosition} SourcePosition */  
						 
					
						
							
								
									
										
										
										
											2023-04-12 02:57:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/** @typedef {import("./serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/** @typedef {import("./serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-04-29 02:22:50 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								const  WASM _HEADER  =  Buffer . from ( [ 0x00 ,  0x61 ,  0x73 ,  0x6d ] ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-25 05:17:47 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								class  ModuleParseError  extends  WebpackError  {  
						 
					
						
							
								
									
										
										
										
											2018-06-04 16:10:23 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/ * * 
							 
						 
					
						
							
								
									
										
										
										
											2020-04-29 02:22:50 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 *  @ param  { string  |  Buffer }  source  source  code 
							 
						 
					
						
							
								
									
										
										
										
											2025-03-27 08:07:25 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 *  @ param  { Error  &  {  loc ? :  SourcePosition  } }  err  the  parse  error 
							 
						 
					
						
							
								
									
										
										
										
											2019-05-30 05:11:49 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 *  @ param  { string [ ] }  loaders  the  loaders  used 
							 
						 
					
						
							
								
									
										
										
										
											2020-04-29 02:22:50 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 *  @ param  { string }  type  module  type 
							 
						 
					
						
							
								
									
										
										
										
											2018-06-04 16:10:23 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									 * / 
							 
						 
					
						
							
								
									
										
										
										
											2020-04-29 02:22:50 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									constructor ( source ,  err ,  loaders ,  type )  { 
							 
						 
					
						
							
								
									
										
										
										
											2024-07-31 10:39:30 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										let  message  =  ` Module parse failed:  ${ err  &&  err . message } ` ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-07-31 06:15:03 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										let  loc ; 
							 
						 
					
						
							
								
									
										
										
										
											2018-10-25 16:47:52 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-04-29 02:22:50 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											( ( Buffer . isBuffer ( source )  &&  source . slice ( 0 ,  4 ) . equals ( WASM _HEADER ) )  || 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												( typeof  source  ===  "string"  &&  /^\0asm/ . test ( source ) ) )  && 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											! type . startsWith ( "webassembly" ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										)  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											message  += 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												"\nThe module seem to be a WebAssembly module, but module is not flagged as WebAssembly module for webpack." ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											message  += 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												"\nBREAKING CHANGE: Since webpack 5 WebAssembly is not enabled by default and flagged as experimental feature." ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											message  += 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												"\nYou need to enable one of the WebAssembly experiments via 'experiments.asyncWebAssembly: true' (based on async modules) or 'experiments.syncWebAssembly: true' (like webpack 4, deprecated)." ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											message  += 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												"\nFor files that transpile to WebAssembly, make sure to set the module type in the 'module.rules' section of the config (e. g. 'type: \"webassembly/async\"')." ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										}  else  if  ( ! loaders )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-06-13 17:22:00 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											message  += 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												"\nYou may need an appropriate loader to handle this file type." ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										}  else  if  ( loaders . length  >=  1 )  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-06-03 21:23:13 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											message  +=  ` \n File was processed with these loaders: ${ loaders 
							 
						 
					
						
							
								
									
										
										
										
											2025-07-17 00:13:14 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												. map ( ( loader )  =>  ` \n  *  ${ loader } ` ) 
							 
						 
					
						
							
								
									
										
										
										
											2019-06-03 21:23:13 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												. join ( "" ) } ` ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											message  += 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												"\nYou may need an additional loader to handle the result of these loaders." ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-05-30 05:11:49 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										}  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											message  += 
							 
						 
					
						
							
								
									
										
										
										
											2019-06-03 21:23:13 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												"\nYou may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders" ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-05-30 05:11:49 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2018-10-25 16:47:52 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-02-25 09:00:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										if  ( 
							 
						 
					
						
							
								
									
										
										
										
											2018-10-30 05:18:08 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											err  && 
							 
						 
					
						
							
								
									
										
										
										
											2018-02-25 09:00:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											err . loc  && 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											typeof  err . loc  ===  "object"  && 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											typeof  err . loc . line  ===  "number" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										)  { 
							 
						 
					
						
							
								
									
										
										
										
											2024-07-31 09:56:53 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											const  lineNumber  =  err . loc . line ; 
							 
						 
					
						
							
								
									
										
										
										
											2018-10-25 16:47:52 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-04-29 02:22:50 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											if  ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												Buffer . isBuffer ( source )  || 
							 
						 
					
						
							
								
									
										
										
										
											2025-07-02 20:10:54 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												// eslint-disable-next-line no-control-regex
 
							 
						 
					
						
							
								
									
										
										
										
											2020-04-29 02:22:50 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												/[\0\u0001\u0002\u0003\u0004\u0005\u0006\u0007]/ . test ( source ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											)  { 
							 
						 
					
						
							
								
									
										
										
										
											2018-02-25 09:00:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												// binary file
 
							 
						 
					
						
							
								
									
										
										
										
											2018-06-04 16:10:23 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												message  +=  "\n(Source code omitted for this binary file)" ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-01-19 11:09:33 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											}  else  { 
							 
						 
					
						
							
								
									
										
										
										
											2019-06-04 20:48:46 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												const  sourceLines  =  source . split ( /\r?\n/ ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2018-06-04 16:10:23 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												const  start  =  Math . max ( 0 ,  lineNumber  -  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												const  linesBefore  =  sourceLines . slice ( start ,  lineNumber  -  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												const  theLine  =  sourceLines [ lineNumber  -  1 ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												const  linesAfter  =  sourceLines . slice ( lineNumber ,  lineNumber  +  2 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2018-10-25 16:47:52 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-31 10:39:30 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												message  +=  ` ${ linesBefore 
							 
						 
					
						
							
								
									
										
										
										
											2025-07-17 00:13:14 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
													. map ( ( l )  =>  ` \n |  ${ l } ` ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													. join ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
														"" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
													) } \ n >  $ { theLine } $ { linesAfter . map ( ( l )  =>  ` \n |  ${ l } ` ) . join ( "" ) } ` ;
 
							 
						 
					
						
							
								
									
										
										
										
											2017-01-19 11:09:33 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											} 
							 
						 
					
						
							
								
									
										
										
										
											2018-10-25 16:47:52 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-07-14 03:30:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											loc  =  {  start :  err . loc  } ; 
							 
						 
					
						
							
								
									
										
										
										
											2018-10-30 05:18:08 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										}  else  if  ( err  &&  err . stack )  { 
							 
						 
					
						
							
								
									
										
										
										
											2024-07-31 10:39:30 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											message  +=  ` \n ${ err . stack } ` ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-03-20 15:38:28 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2018-06-04 16:10:23 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										super ( message ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										this . name  =  "ModuleParseError" ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										this . loc  =  loc ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-01-19 11:09:33 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										this . error  =  err ; 
							 
						 
					
						
							
								
									
										
										
										
											2013-01-31 01:49:25 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2018-10-25 16:47:52 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-04-12 02:57:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/ * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 *  @ param  { ObjectSerializerContext }  context  context 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 * / 
							 
						 
					
						
							
								
									
										
										
										
											2018-10-25 16:47:52 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									serialize ( context )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										const  {  write  }  =  context ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										write ( this . error ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										super . serialize ( context ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-04-12 02:57:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									/ * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 *  @ param  { ObjectDeserializerContext }  context  context 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									 * / 
							 
						 
					
						
							
								
									
										
										
										
											2018-10-25 16:47:52 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									deserialize ( context )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										const  {  read  }  =  context ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										this . error  =  read ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										super . deserialize ( context ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2013-01-31 01:49:25 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-10-25 16:49:51 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								makeSerializable ( ModuleParseError ,  "webpack/lib/ModuleParseError" ) ;  
						 
					
						
							
								
									
										
										
										
											2018-10-25 16:47:52 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-01-19 11:09:33 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								module . exports  =  ModuleParseError ;